第十三周jsp作业
package com.gd.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BaseDao {
//获取连接
protected Connection getConnection(){
Connection conn=null;
try {
Class.forName("com.mysql.jdbc.Driver");
// 2.建立连接
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test", "root", "123456");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
//关闭连接
protected void closeAll(Connection con,PreparedStatement ps,ResultSet rs){
try {
if(rs != null)
rs.close();
if(ps != null)
ps.close();
if(con != null)
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
package com.gd.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.gd.entity.Msg; public class MsgDao extends BaseDao { //根据收件人查看全部邮件 public List<Msg> getMailByReceiver(String name){ List<Msg> list=new ArrayList<Msg>(); Connection con=getConnection(); String sql="select * from msg where sendto=?"; PreparedStatement ps=null; ResultSet rs=null; try { ps = con.prepareStatement(sql); ps.setString(1, name); rs=ps.executeQuery(); while(rs.next()){ //每读取一行,创建一个msg对象,对象放到集合中 Msg m=new Msg(); m.setMsgid(rs.getInt(1)); m.setUsername(rs.getString(2)); m.setTitle(rs.getString(3)); m.setMsgcontent(rs.getString(4)); m.setState(rs.getInt(5)); m.setSendto(rs.getString(6)); m.setMsg_create_date(rs.getDate(7)); list.add(m); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ closeAll(con, ps, rs); } return list; } //关于邮件的增删改查 //添加邮件(写邮件,回复邮件都调用,邮件状态为1(未读),时间为系统当前时间) public void addMsg(Msg m){ Connection conn=getConnection(); String sql="insert into msg(username,title,msgcontent,state,sendto,msg_create_date) values(?,?,?,1,?,?)"; PreparedStatement ps=null; try { ps=conn.prepareStatement(sql); ps.setString(1, m.getUsername()); ps.setString(2, m.getTitle()); ps.setString(3, m.getMsgcontent()); ps.setString(4, m.getSendto()); ps.setDate(5, new java.sql.Date(new Date().getTime())); ps.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ closeAll(conn, ps, null); } } //根据id删除邮件 public void delMsg(int id){ Connection con=getConnection(); String sql="delete from msg where msgid="+id; PreparedStatement ps=null; try { ps=con.prepareStatement(sql); ps.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ closeAll(con, ps, null); } } public void updateMsg(int id) { Connection con = getConnection(); String sql = "update msg set state='0' where msgid=?"; PreparedStatement pred = null; try { pred = con.prepareStatement(sql); pred.setInt(1, id); pred.executeUpdate(); } catch (SQLException e1) { e1.printStackTrace(); } finally { closeAll(con, pred, null); } } public Msg read(int id) { Connection con = getConnection(); String sql = "select msgid,username,sendto,title,msgcontent,msg_create_date from msg where msgid=?"; PreparedStatement ps = null; ResultSet rs = null; try { ps = con.prepareStatement(sql); ps.setInt(1, id); rs = ps.executeQuery(); while (rs.next()) { Msg m = new Msg(); m.setMsgid(rs.getInt("msgid")); m.setUsername(rs.getString("username")); m.setTitle(rs.getString("title")); m.setMsgcontent(rs.getString("msgcontent")); m.setSendto(rs.getString("sendto")); m.setMsg_create_date(rs.getDate("msg_create_date")); return m; } } catch (SQLException e) { e.printStackTrace(); } finally { closeAll(con, ps, rs); } return null; } }
package com.gd.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UsersDao extends BaseDao {
// 登陆
public boolean login(String uname, String upwd) {
boolean f = false;
Connection conn = getConnection();
String sql = "select * from users where uname=? and upwd=?";
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, uname);// 第一个?赋值为name
ps.setString(2, upwd);
rs = ps.executeQuery();
if (rs.next())// 查到结果了
f = true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
closeAll(conn, ps, rs);
}
return f;
}
// 注册
public int reg(String uname,String upwd){
int i=-1;
PreparedStatement pred=null;
Connection con=getConnection();
String sql="insert into users(uname,upwd)values(?,?)";
try {
pred= con.prepareStatement(sql);
pred.setString(1, uname);
pred.setString(2, upwd);
i=pred.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(con, pred, null);
}
return i;
}
}
package com.gd.entity;
import java.util.Date;
public class Msg {
private Integer msgid;
private String username;
private String title;
private String msgcontent;
private int state;
private String sendto;
private Date msg_create_date;
public Msg() {
super();
// TODO Auto-generated constructor stub
}
public Msg(Integer msgid, String username, String title, String msgcontent,
int state, String sendto, Date msg_create_date) {
super();
this.msgid = msgid;
this.username = username;
this.title = title;
this.msgcontent = msgcontent;
this.state = state;
this.sendto = sendto;
this.msg_create_date = msg_create_date;
}
public Integer getMsgid() {
return msgid;
}
public void setMsgid(Integer msgid) {
this.msgid = msgid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getMsgcontent() {
return msgcontent;
}
public void setMsgcontent(String msgcontent) {
this.msgcontent = msgcontent;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
public String getSendto() {
return sendto;
}
public void setSendto(String sendto) {
this.sendto = sendto;
}
public Date getMsg_create_date() {
return msg_create_date;
}
public void setMsg_create_date(Date msg_create_date) {
this.msg_create_date = msg_create_date;
}
}
package com.gd.entity;
public class Users {
private Integer id;
private String uname;
private String upwd;
public Users() {
super();
// TODO Auto-generated constructor stub
}
public Users(Integer id, String uname, String upwd) {
super();
this.id = id;
this.uname = uname;
this.upwd = upwd;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpwd() {
return upwd;
}
public void setUpwd(String upwd) {
this.upwd = upwd;
}
}
package com.gd.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.gd.dao.UsersDao; public class RegServlet extends HttpServlet { /** * Constructor of the object. */ public RegServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to * post. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); String uname = request.getParameter("uname"); String upwd = request.getParameter("upwd"); UsersDao ud = new UsersDao(); int i = ud.reg(uname, upwd); if (i > 0) { out.print("注册成功,即将跳到登录页....."); response.setHeader("refresh", "2;url=denglu.jsp"); } else { out.print("注册失败,即将跳回注册页....."); response.setHeader("refresh", "2;url=reg.jsp"); } } /** * Initialization of the servlet. <br> * * @throws ServletException * if an error occurs */ public void init() throws ServletException { // Put your code here } }
package com.gd.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.gd.dao.UsersDao; public class LoginServlet extends HttpServlet { /** * Constructor of the object. */ public LoginServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); HttpSession session=request.getSession(); PrintWriter out = response.getWriter(); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); String uname = request.getParameter("uname"); String upwd = request.getParameter("upwd"); UsersDao ud = new UsersDao(); if (ud.login(uname, upwd)) { session.setAttribute("uname", uname); request.getRequestDispatcher("main.jsp").forward(request, response); } else { out.print("登录失败,即将跳回登录页....."); response.setHeader("refresh", "5;url=denglu.jsp"); } } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }
package com.gd.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.gd.dao.MsgDao; import com.gd.entity.Msg; public class WriteServlet extends HttpServlet { /** * Constructor of the object. */ public WriteServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); HttpSession session=request.getSession(); String uname=(String)session.getAttribute("uname");// 发件人在session中获取 String sendto=request.getParameter("sendto"); String title=request.getParameter("title"); String content=request.getParameter("content"); Msg m=new Msg(); m.setTitle(title); m.setMsgcontent(content); m.setUsername(uname); m.setSendto(sendto); MsgDao md=new MsgDao(); md.addMsg(m); out.print("发送成功,即将跳回首页....."); response.setHeader("refresh", "3;url=main.jsp"); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }
package com.gd.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.gd.dao.MsgDao; import com.gd.entity.Msg; public class AnswerServlet extends HttpServlet { /** * Constructor of the object. */ public AnswerServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); String uname=request.getParameter("rely"); String sendto=request.getParameter("sendto"); String title=request.getParameter("title"); String content=request.getParameter("content"); Msg m=new Msg(); m.setTitle(title); m.setMsgcontent(content); m.setUsername(uname); m.setSendto(sendto); MsgDao md=new MsgDao(); md.addMsg(m); out.print("发送成功,即将跳回首页....."); response.setHeader("refresh", "3;url=main.jsp"); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'reg.jsp' starting page</title> </head> <body> <h1>注册</h1> <script> function yz() { if (form.uname.value == "") { alert('用户名不能为空'); return; } if (form.upwd.value == "") { alert('密码不能为空'); return; } form.submit(); } </script> <form action="RegServlet" method="post" name="form"> <table> <tr> <td>用户名</td> <td><input type="text" name="uname"></td> </tr> <tr> <td>密码</td> <td><input type="password" name="upwd" value="123456"></td> </tr> <tr> <td><input type="button" value="注册" onclick="yz()"></td> <td><a href="denglu.jsp">登录</a></td> </tr> </table> </form> </body> </html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'denglu.jsp' starting page</title> </head> <body> <h1>登录</h1> <script type="text/javascript"> function validate() { if (loginForm.uname.value == "") { alert("账号不能为空!"); return; } if (loginForm.upwd.value == "") { alert("密码不能为空!"); return; } loginForm.submit(); } </script> <form action="LoginServlet" method="post" name="loginForm"> <table> <tr> <td>用户名</td> <td><input type="text" name="uname"></td> </tr> <tr> <td>密码</td> <td><input type="password" name="upwd" value="123456"></td> </tr> <tr> <td><input type="button" value="登录" onClick="validate()"></td> <td><a href="reg.jsp">立即注册</a></td> </tr> </table> </form> </body> </html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="com.gd.entity.Msg"%> <%@page import="com.gd.dao.MsgDao"%> <% request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'main.jsp' starting page</title> </head> <body> <% MsgDao md = new MsgDao(); String uname = (String) session.getAttribute("uname"); List<Msg> list = md.getMailByReceiver(uname); %> 欢迎你<%=uname%> <a href="write.jsp">写邮件</a> <a href="exit.jsp">退出登录</a> <table border="1"> <tr> <td>发件人</td> <td>主题</td> <td>状态</td> <td>时间</td> <td>操作</td> <td>操作</td> </tr> <% for (int i = 0; i < list.size(); i++) { %> <tr> <td><%=list.get(i).getUsername()%></td> <td><a href="detail.jsp?id=<%=list.get(i).getMsgid()%>"> <%out.print(list.get(i).getTitle().toString());%> </a> </td> <td> <% if (list.get(i).getState() == 1) { %> <img src="images/sms_unReaded.png" /> <% } else { %> <img src="images/sms_readed.png" /> <% } %> </td> <td><%=list.get(i).getMsg_create_date()%></td> <td><a href="answer.jsp?rely=<%=list.get(i).getUsername()%>">回复</a> </td> <td><a href="del.jsp?id=<%=list.get(i).getMsgid()%>">删除</a> </td> </tr> <% } %> </table> </body> </html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'write.jsp' starting page</title> </head> <body> <form action="WriteServlet" method="post" name="form"> <table> <tr> <td>收件人</td> <td><input type="text" name="sendto"> </td> </tr> <tr> <td>主题</td> <td><input type="text" name="title"> </td> </tr> <tr> <td>内容</td> <td><textarea rows="6" cols="20" name="content"></textarea> </td> </tr> <tr> <td><input type="submit" value="发送"> </td> </tr> </table> </form> </body> </html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="com.gd.dao.MsgDao"%> <%@page import="com.gd.entity.Msg"%> <% request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> </head> <body> <% request.setCharacterEncoding("utf-8"); String msgid = request.getParameter("id"); int idd = Integer.parseInt(msgid); MsgDao md = new MsgDao(); md.updateMsg(idd); Msg m = md.read(idd); %> <table> <tr> <td>发件人:</td> <td><input type="text" name="username" style="border: none" value="<%=m.getUsername()%>"></td> </tr> <tr> <td>主题:</td> <td><input type="text" name="title" style="border: none" value="<%=m.getTitle()%>"></td> </tr> <tr> <td>时间:</td> <td><input type="text" name="msg_create_date" style="border: none" value="<%=m.getMsg_create_date()%>"></td> </tr> <tr> <td>收件人:</td> <td><input type="text" name="sendto" style="border: none" value="<%=m.getSendto()%>"></td> </tr> <tr> <td>内容:</td> <td><div style="border: none;outline: none;overflow: inherit;"> <%=m.getMsgcontent()%></div></td> </tr> </table> <a href="main.jsp">返回</a> </body> </html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="com.gd.entity.Msg"%> <%@page import="com.gd.dao.MsgDao"%> <%@page import="com.gd.dao.UsersDao"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'del.jsp' starting page</title> </head> <body> <% request.setCharacterEncoding("utf-8"); int id=Integer.parseInt(request.getParameter("id")); MsgDao md=new MsgDao(); md.delMsg(id); out.print("删除成功、、、、、、、"); response.sendRedirect("main.jsp"); %> </body> </html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'answer.jsp' starting page</title> </head> <body> <form action="AnswerServlet" method="post" name="form"> <table> <tr> <td>收件人</td> <td><input type="text" name="sendto" value="<%=request.getParameter("rely") %>"> </td> </tr> <tr> <td>主题</td> <td><input type="text" name="title"> </td> </tr> <tr> <td>内容</td> <td><textarea rows="6" cols="20" name="content"></textarea> </td> </tr> <tr> <td><input type="submit" value="发送"> </td> </tr> </table> </form> </body> </html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'exit.jsp' starting page</title> </head> <body> <% session.invalidate(); response.sendRedirect("denglu.jsp"); %> </body> </html>