设计思想

三个文件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. Java中阻塞队列的使用

    http://blog.csdn.net/qq_35101189/article/details/56008342 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如 ...

  2. MongoDB数据库CXX Driver编译

    最近项目需要,想要测试下MongoDB读写大量小图片的速度(单纯文件系统io效率比较低,想试试NoSQL能不能提速), 因为使用C++开发,所以使用MongoDB的CXX驱动,需要自己编译,下面记录整 ...

  3. js中关于假值和空数组的总结

    先上x==y运算符的算法细节: 如果x不是正常值(比如抛出一个错误),中断执行. 如果y不是正常值,中断执行. 如果Type(x)与Type(y)相同,执行严格相等运算x === y. 如果x是nul ...

  4. layui table 用法

    1.使用模板列 改变样式 获取嵌套数据{ field: '', width: '12%', title: '响应状态', sort: true, templet: function (d) { if ...

  5. Linux驱动学习(编写一个最简单的模块)

    在Linux中想做驱动开发,那么一定要先熟悉module的使用和编写 一.什么是module 从名字上看就是模块的意思,我个人的理解就是一个一个的小程序,可以进行动态的安装和卸载,而在这里面就实现一些 ...

  6. Vim---配置实用的.vimrc文件

    配置自己电脑的vim,配置一个根据个人习惯使用的.vimrc文件.我的有以下功能等,读者可以根据自己的 个人喜好去配置自己的vim. 1.自动插入文件头 ,新建C.C++源文件时自动插入表头:包括文件 ...

  7. 常见Linux的发行版有哪些?并描述不同发行版之间的联系与区别。

    一.按系列罗列linux的发行版,并描述不同发行版之间的联系和区别 Linux发行版=Linux内核+商业软件 linux的发行版: RedHat.Fedora.suse.红旗.debian.Ubun ...

  8. 【转载】最长回文字符串(manacher算法)

    原文转载自:http://blog.csdn.net/lsjseu/article/details/9990539 偶然看见了人家的博客发现这么一个问题,研究了一下午, 才发现其中的奥妙.Stupid ...

  9. elasticsearch 5.x 系列之七 基于索引别名的零停机升级服务

    一,写在前面的话,elasticsearch 建立索引时的Mapping 设置 建议你在设计索引的初期,就把索引的各个字段设计好,因为,elasticsearch 的各个字段,定义好类型后,就无法进行 ...

  10. mysql in和exists性能比较和使用【转】

    exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返回当前loop到的这条记录, ...