

学生:陈天时
教师:王建民
日期:20171128
项目计划总结
|
任务 日期 |
听课 |
编写程序 |
日总计 |
||||
|
周二 11.28 |
60 |
165 |
225 |
时间记录日志
|
日期 |
开始时间 |
结束时间 |
中断时间 |
净时(分钟) |
活动 |
备注 |
|
11.28 |
10:00 |
11:00 |
60 |
听课 |
||
|
11:15 |
12:00 |
45 |
编程 |
套用之前使用的框架 |
||
|
16:40 |
17;40 |
60 |
编程 |
编写判断语句 |
缺陷记录日志
|
日期 |
编号 |
类型 |
引入阶段 |
排除阶段 |
修复阶段 |
修复缺陷 |
|
11.28 |
1 |
编码 |
编译 |
20min |
||
|
描述:漏掉了<% |
||||||
|
2 |
编码 |
编译 |
30 |
|||
|
描述: addInput.jsp 缺少<%=request.getAttribute("error") %> |
||||||
|
3 |
||||||
package com.jaovo.msg.dao;
import java.util.List;
import com.jaovo.msg.model.Student;
public interface IStudentDao
{
public void add(Student user);
public List<Student> load();
}
package com.jaovo.msg.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.jaovo.msg.Util.DBUtil;
import com.jaovo.msg.Util.UserException;
import com.jaovo.msg.model.Student;
public class StudentDaoImpl implements IStudentDao
{
//向数据库添加的方法
@SuppressWarnings("resource")
public void add(Student user)
{
//获得连接对象
Connection connection=DBUtil.getConnection();
//准备sql语句
String sql="select count(*) from t_student where name=?";
if(connection!=null)
{
System.out.print("连接成功");
}
else
{
System.out.print("连接失败");
}
// 查询数据的条数 条件:username=传进来的参数
//创建语句传输对象
PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
try
{
preparedStatement= connection.prepareStatement(sql);
preparedStatement.setString(1, user.getName());
//写几个问号, 1234,第几个问号
//接收结果集(数据条数)
resultSet =preparedStatement.executeQuery();
//遍历结果集
while(resultSet.next())
{
if(resultSet.getInt(1)>0)
//结果集的条数。获取结果集的第一条数据(这里只要一条)
{
throw new UserException("用户已存在");
}
}
sql="insert into t_student(name,teacher,place) value(?,?,?)";
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 自动生成的 catch 块
e.printStackTrace();
}
finally
{
//关闭资源
DBUtil.close(resultSet);
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}
}
public List<Student> load()
{
Connection connection=DBUtil.getConnection();
//准备sql语句
String sql="selet * from t_student";
//selet * 获取数据库所有的列
//创建语句传输对象
PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
//集合中只能放入user对象
List<Student> users=new ArrayList<Student>();
Student user=null;
try
{
preparedStatement=connection.prepareStatement(sql);
resultSet=preparedStatement.executeQuery();
while(resultSet.next())
{
user=new Student();
user.setId(resultSet.getInt("id"));
user.setName(resultSet.getString("name"));
user.setTeacher(resultSet.getString("teacher"));
user.setPlace(resultSet.getString("place"));
users.add(user);
}
}
catch (SQLException e)
{
// TODO 自动生成的 catch 块
e.printStackTrace();
}
finally
{
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}
return users;
}
}
package com.jaovo.msg.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharFilter implements Filter
{
String encoding=null;
//初始化
@Override
public void init(FilterConfig filterConfig) throws ServletException
{
// TODO 自动生成的方法存根
//获取初始化的参数
encoding=filterConfig.getInitParameter("encoding");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
// TODO 自动生成的方法存根
// request.setCharacterEncoding("utf-8");
request.setCharacterEncoding(encoding);
System.out.println(encoding);
chain.doFilter(request, response);
//调用下一个过滤器
}
@Override
public void destroy()
{
// TODO 自动生成的方法存根
}
}
package com.jaovo.msg.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.jaovo.msg.model.Student;
public class Loginfilter implements Filter{
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
//首先获取session
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
HttpSession session = req.getSession();
Student user = (Student) session.getAttribute("loginUser");
if (user == null) {
resp.sendRedirect(req.getContextPath()+"/LoginInput.jsp");
return ;
}
chain.doFilter(req, resp);
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO 自动生成的方法存根
}
}
package com.jaovo.msg.model;
public class Student
{
private int id;
private String name;
private String teacher;
private String place;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
}
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.mysql.jdbc.Driver").newInstance();
}
catch(InstantiationException|IllegalAccessException | ClassNotFoundException e)
{
e.printStackTrace();
}
String user="root";
String password="root";
String url="jdbc:mysql://localhost:3306/jaovo_msg";
Connection connection=null;
try
{
//2 创建连接对象
connection=DriverManager.getConnection(url, user, password);
}
catch (SQLException e)
{
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return connection;
}
//关闭资源方法
public static void close(Connection connection)
{
try
{
if(connection!=null)
{
connection.close();
}
}
catch (SQLException e)
{
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
public static void close(PreparedStatement PreparedStatement)
{
try
{
if(PreparedStatement!=null)
{
PreparedStatement.close();
}
}
catch (SQLException e)
{
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
public static void close(ResultSet resultSet)
{
try
{
if(resultSet!=null)
{
resultSet.close();
}
}
catch (SQLException e)
{
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
package com.jaovo.msg.Util;
@SuppressWarnings("serial")
public class UserException extends RuntimeException
{
public UserException()
{
super();
// TODO 自动生成的构造函数存根
}
public UserException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)
{
super(message, cause, enableSuppression, writableStackTrace);
// TODO 自动生成的构造函数存根
}
public UserException(String message, Throwable cause)
{
super(message, cause);
// TODO 自动生成的构造函数存根
}
public UserException(String message)
{
super(message);
// TODO 自动生成的构造函数存根
}
public UserException(Throwable cause)
{
super(cause);
// TODO 自动生成的构造函数存根
}
}
package com.jaovo.msg.Util;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
public class ValidateUtil
//验证信息是否为空
{
public static boolean validateNull(HttpServletRequest request,String[] fileds)
{
boolean validate =true;
//map对象用来装载不同的错误信息
@SuppressWarnings({ "unchecked", "rawtypes" })
Map<String, String> errorMsg= new HashMap();
//map容器 <>泛型
for(String filed:fileds)
{
//获取从客户端传递过来的参数
String value=request.getParameter(filed);
if(value==null||"".equals(value.trim()))
{
validate=false;
errorMsg.put(filed, filed+"不能为空");
}
if(!validate)
{
request.setAttribute("errormsg", errorMsg);
}
}
return validate;
}
public static String showError(HttpServletRequest request , String filed) {
@SuppressWarnings("unchecked")
Map<String, String> errorMsg = (Map<String,String>)request.getAttribute("errormsg");
if (errorMsg == null)
{
return "";
}
String msg = errorMsg.get(filed);
if (msg == null)
{
return "";
}
return msg;
}
}
<%@page import="com.jaovo.msg.dao.StudentDaoImpl"%>
<%@page import="com.jaovo.msg.model.Student"%>
<%@page import="com.jaovo.msg.Util.ValidateUtil"%>
<%@page import="com.jaovo.msg.Util.UserException"%>
<%@ 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>
<%
//接收客户端传递过来的参数
String name = request.getParameter("name");
String teacher = request.getParameter("teacher");
String place = request.getParameter("place");
boolean validate = ValidateUtil.validateNull(request, new String[]{"name","teacher","place"});
if(teacher.equals("王建民")||teacher.equals("刘立嘉")||teacher.equals("刘丹")||teacher.equals("王辉")||teacher.equals("杨子光"))
{
}
else
{
request.setAttribute("error", "教师姓名错误");
%>
<jsp:forward page="addInput.jsp"></jsp:forward>
<%
}
if(place.startsWith("一教")||place.startsWith("二教")||place.startsWith("三教")||place.startsWith("基教"))
{
}
else
{
request.setAttribute("error", "上课地点错误");
%>
<jsp:forward page="addInput.jsp"></jsp:forward>
<%
}
Student user = new Student();
user.setName(name);
user.setTeacher(teacher);
user.setPlace(place);
StudentDaoImpl userDao = new StudentDaoImpl();
try
{
userDao.add(user);
out.print("添加成功");
//重定向
}catch(UserException e)
{
%>
<h2 style="color:red ; font-size:50px">发生错误 : <%=e.getMessage() %></h2>
<%
}
%>
</html>
<%@page import="com.jaovo.msg.Util.ValidateUtil"%>
<%@page import="java.util.Map"%>
<%@ 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>
<title>课程表</title>
</head>
<body>
<form action="add.jsp" method="get">
<%=request.getAttribute("error") %>
<table>
<tr>
<td>课程名称: </td>
<td>
<input type="text" name="name" />
<%
// if(errorMsg != null){
// if(errorMsg.get("username") != null){
// out.println( errorMsg.get("username"));
// }
// }
%>
<%=ValidateUtil.showError(request, "name") %>
</td>
</tr>
<tr>
<td>任课教师:</td>
<td>
<input type="text" name="teacher" />
<%
// if(errorMsg != null){
// if(errorMsg.get("password") != null){
// out.println( errorMsg.get("password"));
// }
// }
%>
<%=ValidateUtil.showError(request, "teacher") %>
</td>
</tr>
<tr>
<td>上课地点:</td>
<td>
<input type="text" name="place" />
<%
// if(errorMsg != null){
// if(errorMsg.get("nickname") != null){
// out.println( errorMsg.get("nickname"));
// }
// }
%>
<%=ValidateUtil.showError(request, "place") %>
</td>
</tr>
<tr align="center">
<td colspan="2">
<input type="submit" value="提交" />
<input type="reset" value="重置" />
</td>
</tr>
</table>
</form>
</body>
</html>

