软件工程概论课堂测试一————添加新课程(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# for语句
一.C# for语句 for语句是C#语言中使用频率最高的循环语句. 1. for语句 语法格式如下: for(initializer; condition; iterator){ embedd ...
- MySQL事务隔离级别 解决并发问题
MySQL事务隔离级别 1. 脏读: 骗钱的手段, 两个窗口或线程分别调用数据库转账表,转账后未提交,对方查看到账后,rollback,实际钱没转. 演示方法: mysql默认的事务隔离级别为repe ...
- 微信小程序清除默认样式
1.清除button的默认样式 button::after{border:none;}input{outline:none;border:none;list-style: none;}
- pip命令小结
pip的另一种调用方式 python -m pip通过指定python的名字来指定特定的pip pip freeze > 项目目录/requirements.txt导出pip中下载的包目录 pi ...
- 批量更新python库
import pip from subprocess import call for dist in pip.get_installed_distributions(): try: call(&quo ...
- 将 cmd 中命令输出内容保存为 TXT 文本文件
如果执行的命令输出内容较多,那么 cmd 控制台将会自动清除前面的内容,那么如何将屏幕的所有内容导出到文本文件? 下面给出简单的演示例子 ping百度,不会自动结束,按 Ctrl+C 强制结束,pin ...
- 近年来爆发的CVE漏洞编号
1.Office漏洞 Office漏洞是大部分APT组织最喜爱的漏洞,Office在个人办公电脑使用量大,对针对性目标是最佳的外网入口,效果也是最直接的. CVE编号 漏洞类型 使用组织 CVE-2 ...
- VM虚拟机里的Ubuntu系统怎么设置屏幕分辨率
说白了就是安装VMWare tools工具,步骤如下: 1)在VMWare中启动ubuntu虚拟机 2)在VMWare中:右键单击启动虚拟机,点击[安装vmware tools] 3)在ubuntu中 ...
- 【Python 2 到 3 系列】 此整型非彼整型
v2.2 (2.x)以后,python支持不会溢出的 long 型. v3.0后,确切的讲, int 型(依赖运行环境C编译器中long型的精度)消失了,long型替代 int 型,成为新的.不依赖运 ...
- tcl之正则表达式