jsp第十二周作业
1.实现 删除 回复邮件
2.实现阅读邮件功能:在main.jsp中点击任意邮件的标题,进入到detail.jsp显示邮件详情,包括发件人,主题,内容,时间。同时需要把邮件状态修改为已读。
一
package Email.entityPackage; import java.util.Date; public class Email { private int eid; //id private String ename; //收件人 private String etitle; //标题 private String econtent; //内容 private int estate; //状态 private String efa; //发件人 private Date etime; //时间 public int getEid() { return eid; } public void setEid(int eid) { this.eid = eid; } public String getEname() { return ename; } public void setEname(String ename) { this.ename = ename; } public String getEtitle() { return etitle; } public void setEtitle(String etitle) { this.etitle = etitle; } public String getEcontent() { return econtent; } public void setEcontent(String econtent) { this.econtent = econtent; } public int getEstate() { return estate; } public void setEstate(int estate) { this.estate = estate; } public String getEfa() { return efa; } public void setEfa(String efa) { this.efa = efa; } public Date getEtime() { return etime; } public void setEtime(Date etime) { this.etime = etime; } }
package Email.entityPackage; public class Users { private int uid; private String uname; private String upwd; public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } 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 Email.daoPackage; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class BaseDao { //连接数据库 public Connection getConnection(){ Connection con=null; try { Class.forName("com.mysql.jdbc.Driver"); con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456"); } catch (Exception e) { e.printStackTrace(); } return con; } //关闭数据库 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 (Exception e) { e.printStackTrace(); } } }
package Email.daoPackage; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.Date; import java.util.List; import Email.entityPackage.Email; public class EmailDao extends BaseDao{ // 关于邮件的增删改查 // 1.添加邮件(写邮件,回复邮件都调用,邮件状态为0(未读),时间为系统当前时间) public void addEmail(Email email){ Connection con=getConnection(); String sql="insert into email(ename,etitle,econtent,estate,efa,etime) values(?,?,?,0,?,?)"; PreparedStatement ps=null; try { ps=con.prepareStatement(sql); ps.setString(1, email.getEname()); ps.setString(2, email.getEtitle()); ps.setString(3, email.getEcontent()); ps.setString(4, email.getEfa()); ps.setDate(5, new java.sql.Date(new Date().getTime())); ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally{ closeAll(con, ps, null); } } public static void main(String[] args) { EmailDao ed=new EmailDao(); //ed.delEmail(6); } // 2.根据id删除邮件 public void delEmail(int id){ Connection con=getConnection(); String sql="delete from email where eid="+id; PreparedStatement ps=null; try { ps=con.prepareStatement(sql); ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally{ closeAll(con, ps, null); } } // 3.修改邮件状态 public void GauBian(int id){ Connection con=getConnection(); String sql="update email set estate='1' where eid=?"; PreparedStatement ps=null; try { ps=con.prepareStatement(sql); ps.setInt(1, id); ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally{ closeAll(con, ps, null); } } // 4.按照接收者查询全部邮件 public List<Email> getAllEmail(String name){ List<Email> EmailList=new ArrayList<Email>(); Connection con=getConnection(); String sql="select * from email where ename=?"; PreparedStatement ps=null; ResultSet rs=null; try { ps=con.prepareStatement(sql); ps.setString(1, name); rs=ps.executeQuery(); while(rs.next()){ Email em=new Email(); em.setEid(rs.getInt(1)); em.setEname(rs.getString(2)); em.setEtitle(rs.getString(3)); em.setEcontent(rs.getString(4)); em.setEstate(rs.getInt(5)); em.setEfa(rs.getString(6)); em.setEtime(rs.getDate(7)); EmailList.add(em); } } catch (Exception e) { e.printStackTrace(); }finally{ closeAll(con, ps, rs); } return EmailList; } // 5.查看一封邮件 public Email getOneEmail(int id){ Connection con=getConnection(); String sql="select eid,ename,etitle,econtent,efa,etime from email where eid=?"; PreparedStatement ps=null; ResultSet rs=null; try { ps=con.prepareStatement(sql); ps.setInt(1, id); rs=ps.executeQuery(); while (rs.next()) { Email em=new Email(); em.setEid(rs.getInt(1)); em.setEname(rs.getString(2)); em.setEtitle(rs.getString(3)); em.setEcontent(rs.getString(4)); em.setEfa(rs.getString(5)); em.setEtime(rs.getDate(6)); return em; } } catch (Exception e) { e.printStackTrace(); }finally{ closeAll(con, ps, rs); } return null; } }
package Email.daoPackage; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; public class UsersDao extends BaseDao{ //登录 public boolean DengLu(String name,String pwd) { boolean f=false; Connection con=getConnection(); String sql="select * from users where uname=? and upwd=?"; PreparedStatement ps=null; ResultSet rs=null; try { ps=con.prepareStatement(sql); ps.setString(1, name); ps.setString(2, pwd); rs=ps.executeQuery(); if(rs.next()) f=true; } catch (Exception e) { e.printStackTrace(); }finally{ closeAll(con, ps, rs); } return f; } //注册 public int ZhuCe(String name,String pwd){ int i=-1; Connection con=getConnection(); String sql="insert into users(uname,upwd) values(?,?)"; PreparedStatement ps=null; try { ps=con.prepareStatement(sql); ps.setString(1, name); ps.setString(2, pwd); i=ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally{ closeAll(con, ps, null); } return i; } }
二
登录
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Email1.jsp</title> </head> <body> <form action="panduan1.jsp" method="post" name="one"> 请输入用户名:<input name="name" type="text"><br> 请输入密码: <input name="password" type="password"><br> <input type="button" value="登录" onclick="denglu()"> <a href="Email2.jsp">注册新用户 </a> <script type="text/javascript"> function denglu() { if (one.name.value == "") { alert("用户名不能为空!"); return; } if (one.password.value == "") { alert("密码不能为空!"); return; } one.submit(); } </script> </form> </body> </html>
注册
<%@page import="Email.daoPackage.UsersDao"%> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>panduan1.jsp</title> </head> <body> <% request.setCharacterEncoding("utf-8"); String uname = request.getParameter("name"); String upassword = request.getParameter("password"); UsersDao ud = new UsersDao(); if (ud.DengLu(uname, upassword)) { session.setAttribute("user", uname); request.getRequestDispatcher("main.jsp").forward(request,response); } else { out.print("登陆失败,3秒后返回登录页!"); response.setHeader("refresh", "3;url=Email1.jsp"); } %> </body> </html>
<%@page import="Email.daoPackage.UsersDao"%> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>panduan2.jsp</title> </head> <body> <% request.setCharacterEncoding("utf-8"); String uname = request.getParameter("name"); String upassword1 = request.getParameter("password1"); UsersDao ud = new UsersDao(); int i = ud.ZhuCe(uname, upassword1); if (i > 0) { out.print("注册成功,3秒后跳转登录页!"); response.setHeader("refresh", "3;url=Email1.jsp"); } else { out.print("注册失败,3秒后返回注册页!"); response.setHeader("refresh", "3;url=Email2.jsp"); } %> </body> </html>
主页
<%@page import="Email.entityPackage.Email"%> <%@page import="Email.daoPackage.EmailDao"%> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>main.jsp</title> </head> <body> <% EmailDao mail=new EmailDao(); String user=(String) session.getAttribute("user"); List<Email> MailList=mail.getAllEmail(user); %> 欢迎你:<%=user %> <a href="Write.jsp">写邮件</a> <br><br> <table border="1px" cellpadding="15px" align="center"> <tr> <td>编号</td> <td>收件人</td> <td>标题</td> <td>状态</td> <td>发件人</td> <td>时间</td> <td>操作</td> <td>操作</td> </tr> <%for(int i=0;i<MailList.size();i++){ %> <tr> <td><%out.print(MailList.get(i).getEid()); %></td> <td><%out.print(MailList.get(i).getEname());%></td> <td><a href="Look.jsp?id=<%=MailList.get(i).getEid()%>"><%out.print(MailList.get(i).getEtitle()); %></a></td> <td> <%if(MailList.get(i).getEstate()==0){ %> <img src="../images/weidu.png"/> <%}else{ %> <img src="../images/yidu.png"/> <%} %> </td> <td><%out.print(MailList.get(i).getEfa()); %></td> <td><%out.print(MailList.get(i).getEtime()); %></td> <td><a href="Write.jsp?reply=<%=MailList.get(i).getEfa()%>">回复</a></td> <td><a href="Del.jsp?id=<%=MailList.get(i).getEid()%>">删除</a></td> </tr> <%} %> </table> <br><a href="bye.jsp">退出登录</a> </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 'Write.jsp' starting page</title> </head> <body> <form action="Wpanduan.jsp" method="post" > 收件人:<input type="text" name="shou" value="<%=request.getParameter("reply")%>"><br> 主 题: <input type="text" name="head"><br> 内 容:<br> <textarea rows="10" cols="30" name="body"></textarea> <br> <input type="submit" value="发送邮件"> <a href="main.jsp">返回</a> </form> </body> </html>
<%@page import="Email.daoPackage.EmailDao"%> <%@page import="Email.entityPackage.Email"%> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Wpanduan.jsp</title> </head> <body> <% request.setCharacterEncoding("utf-8"); String name=(String)session.getAttribute("user");// 发件人在session中获取 String shou=request.getParameter("shou"); //收件人 String title=request.getParameter("head"); String content=request.getParameter("body"); Email e=new Email(); e.setEfa(name); e.setEtitle(title); e.setEcontent(content); e.setEname(shou); EmailDao ed=new EmailDao(); ed.addEmail(e); out.print("发送成功,即将跳转到首页!"); response.setHeader("refresh", "3;url=main.jsp"); %> </body> </html>
查
<%@page import="Email.entityPackage.Email"%> <%@page import="Email.daoPackage.EmailDao"%> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'Look.jsp' starting page</title> </head> <body> <% String id = request.getParameter("id"); int eid = Integer.parseInt(id); EmailDao ed = new EmailDao(); ed.GauBian(eid); Email email = ed.getOneEmail(eid); %> <h3>邮件详情</h3> <table border="1px" cellpadding="15px"> <tr> <td>发件人:</td> <td><%=email.getEfa()%></td> </tr> <tr> <td>主题:</td> <td><%=email.getEtitle()%></td> </tr> <tr> <td>内容:</td> <td><%=email.getEcontent()%></td> </tr> <tr> <td>时间:</td> <td><%=email.getEtime()%></td> </tr> </table><br> <a href="main.jsp">返回</a> </body> </html>
删
<%@page import="Email.daoPackage.EmailDao"%> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Del.jsp</title> </head> <body> <% request.setCharacterEncoding("utf-8"); int emailId=Integer.parseInt(request.getParameter("id")); EmailDao ed=new EmailDao(); ed.delEmail(emailId); response.sendRedirect("main.jsp"); %> </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 'bye.jsp' starting page</title> </head> <body> <% out.print("退出成功,3秒后返回登录页!"); session.invalidate(); response.setHeader("refresh", "3;url=Email1.jsp"); %> </body> </html>