实验要求:
要求判断任课教师为王建民、刘立嘉、刘丹、封筠、韩培花五位教师的其中一位。
要求上课地点开头为“一教”、“二教”、“三教”、“基教”中的一种
实现数据存储功能。
程序设计思想:
先创建类模型,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 stub10 }11 public User() {12 ????// TODO Auto-generated constructor stub13 }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 ????@Override20 ????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 block48 ????????????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 @Override13 public void destroy() {14 ????// TODO Auto-generated method stub15 ????16 }17 18 @Override19 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {20 ????// TODO Auto-generated method stub21 ????request.setCharacterEncoding("utf-8"); ???22 ????request.setCharacterEncoding("encoding");23 ????chain.doFilter(request, response);24 }25 26 @Override27 public void init(FilterConfig filterConfig) throws ServletException {28 ????// TODO Auto-generated method stub29 ????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 block17 ????????????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 创建链接对象connection25 ?????????????connection = DriverManager.getConnection(url,user,password);26 ????????} catch (SQLException e) {27 ????????????// TODO Auto-generated catch block28 ????????????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 block42 ????????????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 block53 ????????????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 block64 ????????????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 stub12 ????}13 ????public UserException(String message, Throwable cause) {14 ????????super(message, cause);15 ????????// TODO Auto-generated constructor stub16 ????}17 18 ????public UserException(String message) {19 ????????super(message);20 ????????// TODO Auto-generated constructor stub21 ????}22 23 ????public UserException(Throwable cause) {24 ????????super(cause);25 ????????// TODO Auto-generated constructor stub26 ????}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 else25 {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 else37 {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 else49 {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的错误,当时确实特别懵逼,但是通过李志强及时看出了这个错误,让完成的时间减少了不少。
没完成的地方
就是关于地点的判断还达不到后缀有几零几。
心得:
希望完成这次博客园之后,找一些解决方案,对系统做进一步的分析。
网页版增加信息---添加
原文地址:http://www.cnblogs.com/lovema1210/p/7911200.html