网页版增加信息---添加

实验要求:

要求判断任课教师为王建民、刘立嘉、刘丹、封筠、韩培花五位教师的其中一位。

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

实现数据存储功能。

程序设计思想:

先创建类模型,user

再通过DBUtil和数据库连接

然后在UserDaoImple中实现添加功能

再addInput.jsp文件中实现页面的构建

在add.jsp文件中实现网页添加和判断的功能。

源代码:

 package com.jaovo.msg.model;
 2 
 3 public class User {
 4    private int id;
 5    private String lesson;
 6    private String teacher;
 7    private String status;
 8 public User(int int1, String string, String string2, String string3) {
 9     // TODO Auto-generated constructor stub
10 }
11 public User() {
12     // TODO Auto-generated constructor stub
13 }
14 public int getId() {
15     return id;
16 }
17 public void setId(int id) {
18     this.id = id;
19 }
20 public String getLesson() {
21     return lesson;
22 }
23 public void setLesson(String lesson) {
24     this.lesson = lesson;
25 }
26 public String getTeacher() {
27     return teacher;
28 }
29 public void setTeacher(String teacher) {
30     this.teacher = teacher;
31 }
32 public String getStatus() {
33     return status;
34 }
35 public void setStatus(String status) {
36     this.status =status;
37 }
38    
39 }
1 package com.jaovo.msg.dao;
2 import com.jaovo.msg.model.User;
3 import java.util.List;
4 public interface IUserDao {
5     public void add(User user);//添加用户
6 }
 1 package com.jaovo.msg.dao;
 2 
 3 import java.sql.Connection;
 4 import java.sql.PreparedStatement;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.util.ArrayList;
 8 import java.util.List;
 9 
10 
11 import com.jaovo.msg.Util.DBUtil;
12 import com.jaovo.msg.Util.UserException;
13 import com.jaovo.msg.model.User;
14 
15 import sun.net.www.content.text.plain;
16 
17 public class UserDaoImpl implements IUserDao {
18 
19     @Override
20     public void add(User user) {
21         //获得链接对象
22         Connection connection = DBUtil.getConnection();
23         //准备sql语句
24         String sql = "select count(*) from t_user where lesson = ?";
25         //创建语句传输对象
26         PreparedStatement preparedStatement = null;
27         ResultSet resultSet = null;
28         try {
29             preparedStatement = connection.prepareStatement(sql);
30             preparedStatement.setString(1, user.getLesson());
31             //接收结果集
32             resultSet = preparedStatement.executeQuery();
33             //遍历结果集
34             while(resultSet.next()) {
35                 if (resultSet.getInt(1) > 0) {
36                     throw new UserException("用户已存在") ;
37                 }
38             }
39             
40             sql = "insert into t_user(lesson,teacher,status) value (?,?,?)";
41             preparedStatement = connection.prepareStatement(sql);
42             preparedStatement.setString(1, user.getLesson());
43             preparedStatement.setString(2, user.getTeacher());
44             preparedStatement.setString(3, user.getStatus());
45             preparedStatement.executeUpdate();
46         } catch (SQLException e) {
47             // TODO Auto-generated catch block
48             e.printStackTrace();
49         }finally {
50             //关闭资源
51             DBUtil.close(resultSet);
52             DBUtil.close(preparedStatement);
53             DBUtil.close(connection);
54         }
55         
56     }
57 }
 1 package com.jaovo.msg.filter;
 2 import java.io.IOException;
 3 
 4 import javax.servlet.Filter;
 5 import javax.servlet.FilterChain;
 6 import javax.servlet.FilterConfig;
 7 import javax.servlet.ServletException;
 8 import javax.servlet.ServletRequest;
 9 import javax.servlet.ServletResponse;
10 public class CharFilter implements Filter{
11    String encoding=null;
12 @Override
13 public void destroy() {
14     // TODO Auto-generated method stub
15     
16 }
17 
18 @Override
19 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
20     // TODO Auto-generated method stub
21     request.setCharacterEncoding("utf-8");    
22     request.setCharacterEncoding("encoding");
23     chain.doFilter(request, response);
24 }
25 
26 @Override
27 public void init(FilterConfig filterConfig) throws ServletException {
28     // TODO Auto-generated method stub
29     encoding = filterConfig.getInitParameter("encoding");
30 }
31    
32 }
1 package com.jaovo.msg.Util;
2 
3 import com.jaovo.msg.dao.UserDaoImpl;
4 
5 public class DaoFactory {
6    public static UserDaoImpl getDaoImpl() {
7        return new UserDaoImpl();
8    }
9 }
 1 package com.jaovo.msg.Util;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 
 9 public class DBUtil {
10     
11     public  static  Connection getConnection() {
12         try {
13             //1 加载驱动
14             Class.forName("com.mysql.jdbc.Driver").newInstance();
15         } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
16             // TODO Auto-generated catch block
17             e.printStackTrace();
18         }
19         String user = "root";
20         String password = "root";
21         String url = "jdbc:mysql://localhost:3306/jaovo_msg";
22         Connection connection = null;
23         try {
24             //2 创建链接对象connection
25              connection = DriverManager.getConnection(url,user,password);
26         } catch (SQLException e) {
27             // TODO Auto-generated catch block
28             e.printStackTrace();
29         }
30         return connection;
31     }
32     
33     //关闭资源的方法
34     public static void close(Connection connection ) {
35         try {
36             if (connection != null) {
37                 connection.close();
38             }
39             
40         } catch (SQLException e) {
41             // TODO Auto-generated catch block
42             e.printStackTrace();
43         }
44     }
45     public static void close(PreparedStatement preparedStatement ) {
46         try {
47             if (preparedStatement != null) {
48                 preparedStatement.close();
49             }
50             
51         } catch (SQLException e) {
52             // TODO Auto-generated catch block
53             e.printStackTrace();
54         }                                                 
55     }
56     public static void close(ResultSet resultSet ) {
57         try {
58             if (resultSet != null) {
59                 resultSet.close();
60             }
61             
62         } catch (SQLException e) {
63             // TODO Auto-generated catch block
64             e.printStackTrace();
65         }
66     }
67     
68 }
 1 package com.jaovo.msg.Util;
 2 
 3 public class UserException extends RuntimeException{
 4 
 5     public UserException() {
 6         super();
 7         // TODO Auto-generated constructor stub
 8     }
 9     public UserException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
10         super(message, cause, enableSuppression, writableStackTrace);
11         // TODO Auto-generated constructor stub
12     }
13     public UserException(String message, Throwable cause) {
14         super(message, cause);
15         // TODO Auto-generated constructor stub
16     }
17 
18     public UserException(String message) {
19         super(message);
20         // TODO Auto-generated constructor stub
21     }
22 
23     public UserException(Throwable cause) {
24         super(cause);
25         // TODO Auto-generated constructor stub
26     }
27     
28 }
ValidateUtil
1
package com.jaovo.msg.Util; 2 import java.util.HashMap; 3 import java.util.Map; 4 import javax.servlet.http.HttpServletRequest; 5 public class ValidateUtil { 6 public static boolean validateNull(HttpServletRequest request,String[] fileds) 7 { 8 boolean validate=true; 9 //map对象用来装载不同的错误信息 10 Map<String,String> errorMsg=new HashMap(); 11 for(String filed:fileds) 12 { 13 String value=request.getParameter(filed); 14 if(value==null||"".equals(value.trim())) 15 { 16 validate=false; 17 errorMsg.put(filed,filed+"不能为空"); 18 } 19 } 20 return validate; 21 } 22 public static String showError(HttpServletRequest request,String filed) 23 { 24 Map<String,String> errorMsg=(Map<String,String>)request.getAttribute("errormsg"); 25 if(errorMsg==null) 26 { 27 return ""; 28 } 29 String msg=errorMsg.get(filed); 30 if(msg==null) 31 { 32 return ""; 33 } 34 return msg; 35 } 36 }
add.jsp 
1
<%@page import="com.jaovo.msg.Util.UserException"%> 2 <%@page import="com.jaovo.msg.dao.UserDaoImpl"%> 3 <%@page import="com.jaovo.msg.model.User"%> 4 <%@ page language="java" contentType="text/html; charset=UTF-8" 5 pageEncoding="UTF-8"%> 6 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 7 <html> 8 <% 9 //接收客户端传递过来的参数 10 String lesson = request.getParameter("lesson"); 11 String teacher = request.getParameter("teacher"); 12 String status = request.getParameter("status"); 13 if(lesson == null || "".equals(lesson.trim())){ 14 request.setAttribute("error", "用户名不能为空"); 15 //} 16 %> 17 <jsp:forward page="addInput.jsp"></jsp:forward> 18 <% 19 } 20 if(lesson!=null&&(lesson.equals("软件工程概论")||lesson.equals("统一建模")||lesson.equals("数据结构")||lesson.equals("离散数学")||lesson.equals("马克思原理"))) 21 { 22 23 } 24 else 25 { 26 request.setAttribute("error", "课程信息不在范围里"); 27 //} 28 %> 29 <jsp:forward page="addInput.jsp"></jsp:forward> 30 <% 31 } 32 if(teacher!=null&&(teacher.equals("刘丹")||teacher.equals("王建民")||teacher.equals("封筠")||teacher.equals("韩培花")||teacher.equals("刘力嘉"))) 33 { 34 35 } 36 else 37 { 38 request.setAttribute("error", "教师姓名不在范围里"); 39 //} 40 %> 41 <jsp:forward page="addInput.jsp"></jsp:forward> 42 <% 43 } 44 if(status!=null&&(status.equals("基教")||status.equals("二教")||status.equals("三教")||status.equals("九教")||status.equals("学院楼"))) 45 { 46 47 } 48 else 49 { 50 request.setAttribute("error", "任课地点不在范围里"); 51 //} 52 %> 53 <jsp:forward page="addInput.jsp"></jsp:forward> 54 <% 55 } 56 User user = new User(); 57 user.setLesson(lesson); 58 user.setTeacher(teacher); 59 user.setStatus(status); 60 61 UserDaoImpl userDao = new UserDaoImpl(); 62 try{ 63 userDao.add(user); 64 %> 65 用户保存成功!!<br> 66 <a href="addInput.jsp">继续添加</a><br> 67 <a href="#">用户列表</a> 68 <% 69 }catch(UserException e){ 70 %> 71 <h2 style="color:red ; font-size:50px">发生错误 : <%=e.getMessage() %></h2> 72 <% 73 } 74 %> 75 </html>
addInput.jsp
1
<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <title>用户添加页面</title> 7 </head> 8 <body> 9 <%=request.getAttribute("error") %> 10 <form action="add.jsp" method="get"> 11 <table align="center" border="1" width="500"> 12 <tr> 13 <td>课程名称 : </td> 14 <td> 15 <input type="text" name="lesson" /> 16 </td> 17 </tr> 18 <tr> 19 <td>任课教师:</td> 20 <td> 21 <input type="text" name="teacher" /> 22 </td> 23 </tr> 24 <tr> 25 <td>任课地点:</td> 26 <td> 27 <input type="text" name="status" /> 28 </td> 29 </tr> 30 <tr align="center"> 31 <td colspan="2"> 32 <input type="submit" value="提交" /> 33 <input type="reset" value="重置" /> 34 </td> 35 </tr> 36 </table> 37 </form> 38 </body> 39 </html>

运行结果截图:

出现的错误分析:

出错的最基本点还是在特别容易连不上数据库,因为一些小的问题系统就出错误,而且在添加判断的时候,由于对html语言不太熟悉,因为一个花括号加错了一个位置,而出现了整个程序就出了问题,直接网页出现404的错误,当时确实特别懵逼,但是通过李志强及时看出了这个错误,让完成的时间减少了不少。

没完成的地方

就是关于地点的判断还达不到后缀有几零几。

心得:

希望完成这次博客园之后,找一些解决方案,对系统做进一步的分析。

原文地址:https://www.cnblogs.com/lovema1210/p/7911200.html