zoukankan      html  css  js  c++  java
  • 第一个PSP0级

     1.计划:

    需求描述:

    按照图片要求设计添加新课程界面。(0.5分)

    在后台数据库中建立相应的表结构存储课程信息。(0.5分)

    实现新课程添加的功能。 要求判断任课教师为王建民、刘立嘉、刘丹、王辉、杨子光五位教师的其中一位。(0.5分)

    要求上课地点开头为“一教、二教、三教、基教”中的一种。(0.5分)

    实现数据存储功能。(3分)

    估计开发时间:2个小时;

    填写的项目数据:

    课堂名称;

    课堂老师;

    课堂地点;

    填写时间记录日志:

    上午9:10-9:50        进行题目的解析,制定解题思路,进行编码;

    上午10:10-10:30     设计判断输入的是否符合要求(设计算法);

    上午10-30-11:10       解决问题中的缺陷,问题,不足;

    2.开发

    设计程序:

     在Input.jsp中创建一个表格里边分别是课程名称,任课老师,教学地点,并分别用三个文本框来接受输入的三个属性,

    并传到另外的Jsp页面中,又来接受三个数据,并判断传来的教师,与教室地点是否符合题目要求,若不符合,则设置

    一个Error,返回到第一个JSP中,并显示在JSP中,允许重新输入,若符合要求,就想数据库中保存输入的是三个属性。

    程序实现:

    连接数据库的源代码:

    复制代码
    package com.jaovo.msg.Util;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class DBUtil {
        
        public  static  Connection getConnection() {
            try {
            
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
            } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            String user = "sa";
            String password = "123456";
            String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=jaovo_msg";
            Connection connection = null;
            try {
                
                 connection = DriverManager.getConnection(url,user,password);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return connection;
        }
        
    
        public static void close(Connection connection ) {
            try {
                if (connection != null) {
                    connection.close();
                }
                
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        public static void close(PreparedStatement preparedStatement ) {
            try {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        public static void close(ResultSet resultSet ) {
            try {
                if (resultSet != null) {
                    resultSet.close();
                }
                
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
    }
    复制代码

    自己创建的类的源代码:

    复制代码
    package com.jaovo.msg.model;
    
    public class User {
        
        
        private String  name;
        private String  teacher;
        private String  place;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getTeacher() {
            return teacher;
        }
        public void setTeacher(String teacher) {
            this.teacher= teacher;
        }
        public String getPlace() {
            return place;
        }
        public void setPlace(String place) {
            this.place = place;
        }
        
        
        
    }
    复制代码

    向数据库添加数据的源代码:

    复制代码
    import com.jaovo.msg.Util.DBUtil;
    //import com.jaovo.msg.Util.UserException;
    import com.jaovo.msg.model.User;
    
    public class UserDaoImpl 
    {
        
        public void add(User user) {
            
            Connection connection = DBUtil.getConnection();
            
    
    
            PreparedStatement preparedStatement = null;
    
                try{
                String sql = "insert into t_teacher(name,teacher,place) values (?,?,?)";
                preparedStatement = connection.prepareStatement(sql);
                preparedStatement.setString(1, user.getName());
                preparedStatement.setString(2, user.getTeacher());
                preparedStatement.setString(3, user.getPlace());
                preparedStatement.executeUpdate();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                
                //DBUtil.close(resultSet);
                DBUtil.close(preparedStatement);
                DBUtil.close(connection);
            }
            
        }
        
    
        
    
    }
    复制代码

    刚开始输入时的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>
    <%
    String s=(String)request.getAttribute("Error");
    if("".equals(s)||s==null)
    {
        s="";
    }
    %>
    <%=s %>
    <form action="LoginInput.jsp" method="get">
            <table align="center" border="1">
    <tr>
    <td colspan="2">
    课程名称
     <input type="text" name="name"/>
    </td>
    </tr>
    <tr>
       <td colspan="2">
        任课教师
     <input type="text" name="teacher"/>
       </td>
      </tr>
      <tr>
       <td colspan="2">
        上课地点
     <input type="text" name="place"/>
       </td>
      </tr>
     
      <tr>
      <td align="center" colspan="2">
       <input type="submit" value="保存"/></td>
      </tr>
      </table>
      </form>
    </body>
    </html>
    复制代码

    结束数据并判断是否符合要求的JSP:

    复制代码
    <%@page import="com.jaovo.msg.dao.UserDaoImpl"%>
    <%@page import="com.jaovo.msg.model.User"%>
    <%@ 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">
    <%
             int i=0;
             boolean flag=true;
             boolean flag1=true;
             String s[]={"王建民","刘丹","刘立嘉","杨子光","王辉"};
             String s1[]={"基教","一教","二教","三教"};
             String name=request.getParameter("name");
             String teacher=request.getParameter("teacher");
             String place=request.getParameter("place");
            while(i<s.length)
             {
            if(!s[i].equals(teacher))
         {
          flag=false;
         }
            else
                {
                flag=true;
                break;
                }
          i++;
         }%>
         <%
         if(!flag)
         {
             request.setAttribute("Error", "老师不对");
         
         %>
         <jsp:forward page="Login.jsp"></jsp:forward>
           <% 
         }
         i=0;
         String s3=place.substring(0,2);
     
         while(flag==true&&i<s1.length)
         {
            
        if(!s1[i].equals(s3))
             {
                 flag1=false;
              }
             else
            {
            flag1=true;
            break;
            }
              i++;
           }
         if(!flag1)
         {
             request.setAttribute("Error", "教室不对");
         
         %>
         <jsp:forward page="Login.jsp"></jsp:forward>
           <% 
         }
            UserDaoImpl userdao=new UserDaoImpl();
             User user=new User();
             user.setName(name);
             user.setTeacher(teacher);
             user.setPlace(place);
             userdao.add(user);
             System.out.println(teacher);
    %>
    
    <<jsp:forward page="Login.jsp"></jsp:forward>

    编译程序,修复并记录所发现的缺陷,并填写缺陷记录日志

    在编译程序中,出现的变异问题是向数据库中存储数据时,课程名称与课程地点都可以保存进数据库,但是Teacher一列表示为空,没有存进数据库。

    修复:在自定义的类中teacher中的Set函数中,语句应该是this.teacher=teacher;而我的源程序为teacher=teacher;因此没有向数据库中保存错误。

    学生:刘金玉

    日期:2017.11.28

    老师:王建民

    程序号:1

    日期

    编号

    类型

    引入阶段

    排除阶段

    修复时间

    修复缺陷

    11/28

    1

    20

    编码

    编译

    10min

    在自定义的类中的Teacher变量的Set函数中丢失了一个this

    测试程序,修复并记录所出现的缺陷,并填写缺陷记录日志:

    学生:刘金玉

    日期:2017.11.28

    老师:王建民

    程序号:1

    日期

    编号

    类型

    引入阶段

    排除阶段

    修复时间

    修复缺陷

    11/28

    2

    20

    编码

    编译

    10min

    在判断输入的数据是否符合要求是判断条件写的错误,丢失了flag==true

    3.总结:在该程序中,从开始到完成程序,共用了2个小时,在编写程序过程中共出现了两个缺陷,一个是teacher属性不能向数据库中保存,另外一个是不能正确判断是否

    输入的复合要求,现在初学Java web对其的使用并不是熟练,所以在编程过程中花费的时间过多,在排除缺陷方面还有待提高。

  • 相关阅读:
    XSS漏洞攻击
    String 是值类型还是引用类型
    客户端验证不能代表服务器端验证
    PowerDesigner参照(Reference)笔记
    LazyAllocate(缓分配)与PreAllocate(预分配)
    我在delphi7下调用微软的Web Services的心得.(可以返回数据集)
    C Dungeon Master
    TimeQuest笔记
    XPStyle Button
    对XML文件的CRUD(添加,读取,搜索,修改,删除)的例子
  • 原文地址:https://www.cnblogs.com/ljysy/p/7911407.html
Copyright © 2011-2022 走看看