设计思想

三个文件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)的更多相关文章

  1. RegisterUserFunc为测试对象添加新方法或重写已有方法

    QTP中为了提高扩展性,提供了一个为测试对象添加一个新的自定义方法,或者重写测试对象已有的方法的函数RegisterUserFunc,在此给大家分享一下. RegisterUserFunc:为测试对象 ...

  2. java web 增加信息课堂测试00

    按照图片要求设计添加新课程界面.(0.5分)在后台数据库中建立相应的表结构存储课程信息.(0.5分)实现新课程添加的功能.要求判断任课教师为王建民.刘立嘉.刘丹.王辉.杨子光五位教师的其中一位.(0. ...

  3. squid节点添加新域名测试

    squid节点添加新域名 测试是否缓存成功 #!/bin/bash #-- clear #清屏 方便输出结果观看 url=* #需要测试的url array_node[]="*" ...

  4. Oracle 11g rac 添加新节点测试

    [转]https://blog.csdn.net/shiyu1157758655/article/details/60877076 前期准备: 操作系统设置OS版本必须相同,检查内核参数,系统内存.C ...

  5. 2017-2018-1 20155330 《信息安全系统设计基础》第10周课堂测试&课下作业

    2017-2018-1 20155330 <信息安全系统设计基础>第10周课堂测试&课下作业 stat命令的实现-mysate 学习使用stat(1),并用C语言实现 提交学习st ...

  6. 20145209刘一阳《JAVA程序设计》第六周课堂测试

    第六周课堂测试 1.现有以下代码,哪些选项插入到第5行可以通过编译?(BDF) 1.import java.util.*; 2. 3.Class FindStuff { 4.public static ...

  7. 20145209刘一阳《JAVA程序设计》第一周课堂测试

    第一周课堂测试 1.下列不属于Java后继技术的是(D) A .Android B .JSP C .XML D .Python 2.下列关于Java语言特点的描述,正确的一组是(C) A .面向过程: ...

  8. 【译】Meteor 新手教程:在排行榜上添加新特性

    原文:http://danneu.com/posts/6-meteor-tutorial-for-fellow-noobs-adding-features-to-the-leaderboard-dem ...

  9. 一个新人如何学习在大型系统中添加新功能和Debug

    文章背景: 今年七月份正式入职,公司主营ERP软件,楼主所在的组主要负责二次开发,使用的语言是Java. 什么叫二次开发呢?ERP软件的客户都是企业.而这些企业之间的情况都有所不同,一套标准版本的企业 ...

随机推荐

  1. ImportError: No module named images

    [问题] 在使用学习wxPython时,一个Dem抱有如题所示错误 [解决] images 只不过是wxpython自带demo中的一个文件 体验wxpython IN action的时候Import ...

  2. 流形(Manifold)初步

    原文链接 欧几里得几何学(Euclidean Geometry) 两千三百年前,古希腊数学家欧几里得著成了<几何原本>,构建了被后世称为“欧几里得几何学”的研究图形的方法.欧几里得创立了当 ...

  3. using System.Security.Cryptography

    这个命名空间主要是用来进行加密的一些类. 加密服务: 公共网络(如 Internet)不提供实体之间安全通信的方式. 此类网络上的通信易被读取或甚至被未经授权的第三方修改. 加密有助于防止数据被查看, ...

  4. Excle 常用函数

    1. 查找函数VLOOKUP 使用示例: =VLOOKUP(A1,$C$1:$D$19,2,0) 表示以A1单元格为基准,匹配C1开始到D19的范围数据,在公式行显示D单元格文本,也就是匹配范围的第二 ...

  5. react事件绑定的三种常见方式以及解决Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state问题思路

    在 React 组件中,每个方法的上下文都会指向该组件的实例,即自动绑定 this 为当前组件. 而且 React 还会对这种引用进行缓存,以达到 CPU 和内存的优化.在使用 ES6 classes ...

  6. 解决mysql远程连接失败的问题

    问题描述 在我远程连接我的服务器数据库的时候,navicat给我提示了这么一个错误: ERROR : Host 'xxx' is not allowed to connect to thisMySQL ...

  7. 用python画小猪佩奇(非原创)

    略作改动: # coding:utf-8 import turtle as t t.screensize(400, 300, "blue") t.pensize(4) # 设置画笔 ...

  8. expect配合shell 实现自动分发秘钥文件

    expect使用场景 有时候需要批量地执行一些操作,或者执行自动化的操作的时候,有些指令需要交互式地进行这就会有很多麻烦,linux下有一个程序交expect,它可以模拟键盘输入文本,省去人工干预交互 ...

  9. 3、springboot配置文件占位符

    RandomValuePropertySource:配置文件中可以使用随机数 ${random.value}.${random.int}.${random.long}.${random.int(10) ...

  10. [BZOJ3714]Kuglarz(最小生成树)

    Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,-,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品.花费\(C_{i,j}\)元,魔术师就会告诉 ...