软件工程概论课堂测试一————添加新课程(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级记录开发过程

项目计划日志

时间记录日志

缺陷记录日志

时间: 2024-10-27 18:41:07

软件工程概论课堂测试一————添加新课程(web)的相关文章

软件工程概论课堂测试一(设计添加新课程界面)

设计思想: 源代码: 1 package com.jaovo.msg.dao; 2 import java.sql.Connection; 3 import java.sql.PreparedStatement; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 import java.util.List; 7 import java.util.ArrayList; 8 9 10 import com.jaovo.msg

软件工程概论——课堂测试1

设计思想:1.用1个页面,实现课程录入,提交后直接返回课程界面.2.应用html表单属性进行数据的提交.3.用servlet进行写入数据库和验证输入. 源代码: <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%><%String path = request.getContextPath();String b

软工概论-课堂练习:添加信息

题目要求: 设计思路: 对于该设计,主要使用两个jsp页面编码,一个java文件,其余java文件是定义相关变量与方法的,具体可参考下述代码.对于该设计首先使用jsp进行编码设计,设计出基本的框架,对"保存"按钮类型定义成submit,进行页面的跳转,跳转到接收上述文本框输入的内容jsp页面,在这个页面接收文字信息,并且使用这些文字信息(即将要添加到数据库的)进行数据库的插入操作,首先按照要求判断是否符合题目要求(注意使用Str.equals()而不是用==),具体判断用到了字符串取字

软件工程概论课堂作业1

1.网站系统开发需要掌握的技术 (1)数据库链接技术 (2)JavaBean技术 (3)Servlet技术 (4)流行框架与流行XML技术 2.本次课堂测试的源程序代码 <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><!DOCTYPE html PUBLIC "-//W3C//DTD H

软件概论课堂测试

课题: 编写教师开设课程的网页 代码: package pers.sun.DataBase; import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException; public class Data {     public static Connection getConn

软件工程概论课堂作业3

题目:返回一个整数数组中最大子数组的和 要求: 输入一个一维整形数组,数组里有正数也有负数. 一维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值. 设计思想: 用户自定义数组长度并依次输入数组元素,设一个全局变量初始化为零的数组a[N],N=10000: 1.因为该数组首尾相接可视作一个环,那么我们需要在一个合适的位置断开,把数组元素展成一条笔直的带子. (1).设用户自定义数组长度为m,输入数组各元素值a[1

软件工程开学课堂测试

这个测试给我的总体感受挺头大的,对于上学期本来就没怎么学好的我,无疑是一个艰难的过程,这次与以往测试不同的是这次给了一个模板,要求也算是利用这个模板的前提下,进行相应的编写,编写的过程也是遇到各种问题,如登录界面验证码的问题,验证码实现不了验证的功能,是不是听起来很滑稽[/哭笑],后来又弄了好一会呢,然后用的模板吗,好多东西看着难,也不好找,JavaScript没怎么学过,然后就不会...  还需要很大的努力呀,我没觉得自己厉害,然后现实自己的菜比我想象的菜还要菜,加油吧 原文地址:https:

第一次被要求连接数据库的课堂测试

1.     题目要求 按照图片要求设计添加新课程界面.(0.5分) 在后台数据库中建立相应的表结构存储课程信息.(0.5分) 实现新课程添加的功能. 要求判断任课教师为王建民.刘立嘉.刘丹.王辉.杨子光五位教师的其中一位.(0.5分) 要求上课地点开头为"一教.二教.三教.基教"中的一种.(0.5分) 实现数据存储功能.(3分) 将课堂练习设计思想,源程序代码.运行结果截图的开发过程,并按照PSP0级的要求记录开发过程中的项目计划日志.时间记录日志.缺陷记录日志. 课堂练习的源代码上

软件工程概论第五周进度条

所花时间:软件工程概论上课时间(1h5min),web应用技术开发课程(接近4h)课余时间练习(2h)       共计约8h 代码量:登录界面开发292行(web),四则运算代码160行. 博客量:软件工程概论作业01 学习到的知识点:通过Jdbc连接数据库.