软件工程概论课堂测试一————添加新课程(web)
设计思想
三个文件Class_add.java add.jsp addInput.jsp
Class_add.java : 内封装方法:连接数据库、向数据库添加课程信息、判断非合理的输入情况、判断添加的课程是否重复。
addInput.jsp : 完成显示输入界面,点击保存后跳转到addInput.jsp。
add.jsp : 处理输入的数据,并给出相应的交互提示。
源程序代码
Class_add.java :
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class Classe_add
{ private String className;
private String teacher;
private String classSpace; public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
public String getClassSpace() {
return classSpace;
}
public void setClassSpace(String classSpace) {
this.classSpace = classSpace;
} public Connection getConnection()
{
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundException e)
{
e.printStackTrace();
}
String user="SYH";
String password="q735415630q";
String url ="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Test";
Connection con=null;
try{
con=DriverManager.getConnection(url,user,password);
}catch(SQLException e)
{
e.printStackTrace();
}
return con;
}
public void addClass(String className,String teacher,String classSpace )
{
int judge=1;
Connection connection = getConnection();
String sql="select count(*) from class_add where className = ?"; PreparedStatement preparedStatement=null;
ResultSet resultSet=null; try {
preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1, className); resultSet = preparedStatement.executeQuery();
while(resultSet.next())
{
if (resultSet.getInt(1) > 0)
{
System.out.println("课程已存在,无法添加") ;
judge=0;
}
}
if(judge==1)
{
sql = "insert class_add (className,teacher,classSpace) values (?,?,?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1,className);
preparedStatement.setString(2,teacher);
preparedStatement.setString(3,classSpace);
preparedStatement.executeUpdate();
System.out.println("添加成功") ;
}
} catch (SQLException e)
{
// TODO 自动生成的 catch 块
e.printStackTrace();
}
finally
{
close(resultSet);
close(preparedStatement);
close(connection);
}
} public void close (Connection con)
{
try{
if(con!=null)
{
con.close();
}
}catch(SQLException e)
{
e.printStackTrace();
}
}
public void close (PreparedStatement preparedStatement)
{
try{
if(preparedStatement!=null)
{
preparedStatement.close();
}
}catch(SQLException e)
{
e.printStackTrace();
}
}
public void close(ResultSet resultSet)
{
try{
if(resultSet!=null)
{
resultSet.close();
}
}catch(SQLException e)
{
e.printStackTrace();
}
}
public boolean judgeInputNull(String className,String teacher,String classSpace)
{
boolean flag=false;
if(className==null||"".equals(className)&&teacher==null||"".equals(teacher)&&classSpace==null||"".equals(classSpace))
{
flag=true;
}
return flag;
}
public boolean judgeClassRepeat(String className,String teacher,String classSpace)
{ boolean flag=false; Connection connection = getConnection();
String sql="select * from class_add where className = ?"; PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
try {
preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1, className);
resultSet = preparedStatement.executeQuery();
while(resultSet.next())
{ if(teacher.equals(resultSet.getString("teacher"))&&classSpace.equals(resultSet.getString("classSpace")))
{
flag=true;
}
}
}catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
close(resultSet);
close(preparedStatement);
close(connection);
}
return flag;
}
public boolean judeInputTeacher(String teacher)
{
boolean flag=false;
if((!teacher.equals("王建民"))&&!teacher.equals("刘立嘉")&&!teacher.equals("刘丹")&&!teacher.equals("王辉")&&!teacher.equals("杨子光"))
{
flag=true;
} return flag;
}
public boolean judgeInputClassSpace(String space)
{
boolean flag=false;
if(!space.startsWith("一教")&&!space.startsWith("二教")&&!space.startsWith("三教")&&!space.startsWith("基教"))
{
flag=true;
}
return flag;
}
public static void main(String[] args)
{
Classe_add a=new Classe_add();
System.out.println(a.judgeClassRepeat("软件工程", "王建民", "基教405")); }
}
addInput.jsp :
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>课程添加页面 </title>
</head>
<body background="C:\Users\win8\workspace\Arithmetic\image\d602adc701a429f16a32aac5579f113e_7205982_162234868593_2.jpg">
<center style="color:white;font-family:楷体; font-size:20px">
<form action="add.jsp" method="get"> <br>
课程名称:
<input type="text" name="className" />
<br><br> 任课教师:
<input type="text" name="teacher" />
<br><br> 上课地点:
<input type="text" name="classSpace" />
<br><br> <input type="submit" value="保存" />
<input type="reset" value="重置" />
</form>
</center>
</body>
</html>
add.jsp :
<%@page import="util.Classe_add"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="util" class="util.Classe_add" scope="page" />
<% Classe_add a=new Classe_add(); String className=(String)request.getParameter("className");
String teacher=(String)request.getParameter("teacher");
String classSpace=(String)request.getParameter("classSpace");
if(util.judgeInputNull(className, teacher, classSpace))
{ out.print("<script language ='javaScript'> alert('输入不能为空,请输入');window.history.back(-1); </script>");
//response.setHeader("refresh", "0;url=addInput.jsp");
}
else if(util.judeInputTeacher(teacher))
{
out.print("<script language='javaScript'> alert('该老师不存在,重新输入');window.history.back(-1);</script>");
// response.setHeader("refresh", "0;url=addInput.jsp");
}
else if(util.judgeInputClassSpace(classSpace))
{
out.print("<script language='javaScript'> alert('教室不存在,重新输入');window.history.back(-1);</script>");
//response.setHeader("refresh", "0;url=addInput.jsp");
}
else if(util.judgeClassRepeat(className, teacher, classSpace))
{
out.print("<script language='javaScript'> alert('该课程已存在');window.history.back(-1);</script>");
// response.setHeader("refresh", "0;url=addInput.jsp");
}
else { util.addClass(className,teacher,classSpace);
out.print("<script language='javaScript'> alert('添加成功');</script>");
response.setHeader("refresh", "0;url=addInput.jsp");
} %>
</body>
</html>
运行结果截图
界面:
什么都不输入:
正常输入;
重复输入:
PSP0级记录开发过程
项目计划日志
时间记录日志
缺陷记录日志
软件工程概论课堂测试一————添加新课程(web)的更多相关文章
- RegisterUserFunc为测试对象添加新方法或重写已有方法
QTP中为了提高扩展性,提供了一个为测试对象添加一个新的自定义方法,或者重写测试对象已有的方法的函数RegisterUserFunc,在此给大家分享一下. RegisterUserFunc:为测试对象 ...
- java web 增加信息课堂测试00
按照图片要求设计添加新课程界面.(0.5分)在后台数据库中建立相应的表结构存储课程信息.(0.5分)实现新课程添加的功能.要求判断任课教师为王建民.刘立嘉.刘丹.王辉.杨子光五位教师的其中一位.(0. ...
- squid节点添加新域名测试
squid节点添加新域名 测试是否缓存成功 #!/bin/bash #-- clear #清屏 方便输出结果观看 url=* #需要测试的url array_node[]="*" ...
- Oracle 11g rac 添加新节点测试
[转]https://blog.csdn.net/shiyu1157758655/article/details/60877076 前期准备: 操作系统设置OS版本必须相同,检查内核参数,系统内存.C ...
- 2017-2018-1 20155330 《信息安全系统设计基础》第10周课堂测试&课下作业
2017-2018-1 20155330 <信息安全系统设计基础>第10周课堂测试&课下作业 stat命令的实现-mysate 学习使用stat(1),并用C语言实现 提交学习st ...
- 20145209刘一阳《JAVA程序设计》第六周课堂测试
第六周课堂测试 1.现有以下代码,哪些选项插入到第5行可以通过编译?(BDF) 1.import java.util.*; 2. 3.Class FindStuff { 4.public static ...
- 20145209刘一阳《JAVA程序设计》第一周课堂测试
第一周课堂测试 1.下列不属于Java后继技术的是(D) A .Android B .JSP C .XML D .Python 2.下列关于Java语言特点的描述,正确的一组是(C) A .面向过程: ...
- 【译】Meteor 新手教程:在排行榜上添加新特性
原文:http://danneu.com/posts/6-meteor-tutorial-for-fellow-noobs-adding-features-to-the-leaderboard-dem ...
- 一个新人如何学习在大型系统中添加新功能和Debug
文章背景: 今年七月份正式入职,公司主营ERP软件,楼主所在的组主要负责二次开发,使用的语言是Java. 什么叫二次开发呢?ERP软件的客户都是企业.而这些企业之间的情况都有所不同,一套标准版本的企业 ...
随机推荐
- C#中this保留字的用法
一.this保留字 this保留字一般只在构造函数.类的方法和类的实例中使用.它有以下含义: ?在类的构造函数中出现的this,则作为一个值类型,表示对正在构造的对象本身的引用. ?在类的方法中出现的 ...
- ES6初识-解构赋值
数组解构赋值 [a,b]=[1,2]; . 方法返回 function f(){ return [1,2] } let a,b; [a,b]=f();//a=1,b=2 function f1() ...
- 关于 Angular引用Material出现node_modules/@angular/material/button-toggle/typings/button-toggle.d.ts(154,104): error TS2315: Type 'ElementRef' is not generic.问题
百度了好久 ,,,最后谷歌出来了.. 该错误可能来自于您将@ angular / material设置为6.0.0, 但所有其他Angular包都是5.x.您应该始终确保Material主要版本与An ...
- Mysql: pt-table-checksum 和 pt-table-sync 检查主从一致性,实验过程
一.安装 percona 包 1.安装仓库的包 https://www.percona.com/doc/percona-repo-config/yum-repo.html sudo yum insta ...
- SQLSERVER 数据库恢复挂起的解决办法
如果你的数据库还处于挂起状态,请把我下面代码的test改为你的库名,然后执行完,刷新就正常了: USE masterGOALTER DATABASE test SET SINGLE_USERGOALT ...
- PHP continue和break的用法(深入理解)
对于刚入门的PHP童鞋们来说,在循环体中的continue和break的作用总是分不清到底是什么意思, 怎么用, 两者到底有什么区别? 接下来说几个例子,其实它们是很好区分的. <?php $t ...
- css 自动换行,超出省略号代替
overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; ...
- 时间轮算法的定时器(Delphi)
源码下载 http://files.cnblogs.com/lwm8246/uTimeWheel.rar D7,XE2 编译测试OK //时间轮算法的定时器 //-- : QQ unit uTimeW ...
- Linux相关常用命令
1.XShell中上传文件命令 首先需要安装rz文件上传工具: yum -y install lrzsz 然后执行以下命令,可打开本地系统的选择文件窗口:(或者直接把本地的文件拖动到SSH Shell ...
- python -- sftp的方式下载终端文件
可以通过paramiko模块进行远程连接,然后指定文件夹,进行下载. sf = paramiko.Transport((host, port) #创建链接对象,需要终端ip以及sftp使用的端口号 ...