第八周作业
Msg.java
1 package com.gd.bean; 2 3 import java.util.Date; 4 5 public class Msg { 6 7 private int msgid; 8 private String uname; 9 private String title; 10 private String msgcontent; 11 private int state; 12 private String sendto; 13 private Date msg_create_date; 14 15 public Msg(int msgid, String uname, String title, String msgcontent, 16 int state, String sendto, Date msg_create_date) { 17 super(); 18 this.msgid = msgid; 19 this.uname = uname; 20 this.title = title; 21 this.msgcontent = msgcontent; 22 this.state = state; 23 this.sendto = sendto; 24 this.msg_create_date = msg_create_date; 25 } 26 27 public Msg() { 28 29 } 30 31 public int getMsgid() { 32 return msgid; 33 } 34 35 public void setMsgid(int msgid) { 36 this.msgid = msgid; 37 } 38 39 public String getUname() { 40 return uname; 41 } 42 43 public void setUname(String uname) { 44 this.uname = uname; 45 } 46 47 public String getTitle() { 48 return title; 49 } 50 51 public void setTitle(String title) { 52 this.title = title; 53 } 54 55 public String getMsgcontent() { 56 return msgcontent; 57 } 58 59 public void setMsgcontent(String msgcontent) { 60 this.msgcontent = msgcontent; 61 } 62 63 public int getState() { 64 return state; 65 } 66 67 public void setState(int state) { 68 this.state = state; 69 } 70 71 public String getSendto() { 72 return sendto; 73 } 74 75 public void setSendto(String sendto) { 76 this.sendto = sendto; 77 } 78 79 public Date getMsg_create_date() { 80 return msg_create_date; 81 } 82 83 public void setMsg_create_date(Date msg_create_date) { 84 this.msg_create_date = msg_create_date; 85 } 86 87 }
Users.java
1 package com.gd.bean; 2 3 public class Users { 4 private String username; 5 private String password; 6 private String email; 7 8 9 public Users() { 10 11 } 12 public Users(String username, String password, String email) { 13 super(); 14 this.username = username; 15 this.password = password; 16 this.email = email; 17 } 18 public String getUsername() { 19 return username; 20 } 21 public void setUsername(String username) { 22 this.username = username; 23 } 24 public String getPassword() { 25 return password; 26 } 27 public void setPassword(String password) { 28 this.password = password; 29 } 30 public String getEmail() { 31 return email; 32 } 33 public void setEmail(String email) { 34 this.email = email; 35 } 36 37 }
BaseDao.java
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/mysql", "root", "root"); } 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(); } }
MsgDao.java
1 package com.gd.dao; 2 3 4 import java.sql.Connection; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 import java.sql.SQLException; 8 import java.util.ArrayList; 9 import java.util.Date; 10 import java.util.List; 11 12 13 import com.gd.bean.Msg; 14 15 public class MsgDao extends BaseDao { 16 // 根据登录用户获取收件列表 收件人=uname 17 public List<Msg> getReceive(String uname) { 18 List<Msg> list = new ArrayList<Msg>(); 19 Connection conn = getConnection(); 20 String sql = "SELECT * from msg where sendto=6"; 21 PreparedStatement ps; 22 try { 23 ps = conn.prepareStatement(sql); 24 ps.setString(1, uname); 25 ResultSet rs=ps.executeQuery(); 26 while(rs.next()){ 27 Msg m=new Msg();//读取一行,创建一个对象 28 m.setMsgid(rs.getInt(1)); 29 m.setUname(rs.getString(2)); 30 m.setTitle(rs.getString(3)); 31 m.setMsgcontent(rs.getString(4)); 32 m.setState(rs.getInt(5)); 33 m.setSendto(rs.getString(6)); 34 m.setMsg_create_date(rs.getDate(7)); 35 36 list.add(m);//添加到list列表中 37 38 } 39 40 41 42 } catch (SQLException e) { 43 // TODO Auto-generated catch block 44 e.printStackTrace(); 45 } 46 47 return list; 48 49 } 50 51 //把邮件对象m写入到数据库 52 public void writeMsg(Msg m){ 53 Connection conn=getConnection(); 54 String sql="insert into msg(username,title,msgcontent,state,sendto,msg_create_date) values('丽丽','再见','打折了','0','小白','2018-12-4')"; 55 PreparedStatement ps=null; 56 try { 57 ps = conn.prepareStatement(sql); 58 ps.setString(1, m.getUname()); 59 ps.setString(2, m.getTitle()); 60 ps.setString(3, m.getMsgcontent()); 61 ps.setString(5, m.getSendto()); 62 ps.setInt(4, 1);//1shi weidu 63 ps.setDate(6, new java.sql.Date(new Date().getTime())); 64 ps.executeUpdate(); 65 66 } catch (SQLException e) { 67 // TODO Auto-generated catch block 68 e.printStackTrace(); 69 }finally{ 70 closeAll(conn, ps, null); 71 } 72 73 } 74 75 //根据消息ID获取消息详情 76 public Msg getMsgById(int id){ 77 Msg m=new Msg(); 78 Connection conn = getConnection(); 79 String sql = "SELECT * from msg where msgid=2"; 80 PreparedStatement ps=null; 81 ResultSet rs=null; 82 try { 83 ps = conn.prepareStatement(sql); 84 ps.setInt(1, id); 85 rs=ps.executeQuery(); 86 while(rs.next()){ 87 88 m.setMsgid(rs.getInt(1)); 89 m.setUname(rs.getString(2)); 90 m.setTitle(rs.getString(3)); 91 m.setMsgcontent(rs.getString(4)); 92 m.setState(rs.getInt(5)); 93 m.setSendto(rs.getString(6)); 94 m.setMsg_create_date(rs.getDate(7)); 95 } 96 } catch (SQLException e) { 97 // TODO Auto-generated catch block 98 e.printStackTrace(); 99 }finally{ 100 closeAll(conn, ps, rs); 101 } 102 103 104 return m; 105 106 107 108 } 109 110 111 //根据ID删除消息 112 public void delMsg(int id){ 113 Connection con=getConnection(); 114 PreparedStatement ps=null; 115 String sql="delete from msg where msgid=3"; 116 try { 117 ps=con.prepareStatement(sql); 118 ps.setInt(1, id); 119 ps.executeUpdate(); 120 } catch (SQLException e) { 121 // TODO Auto-generated catch block 122 e.printStackTrace(); 123 }finally{ 124 closeAll(con, ps, null); 125 } 126 127 128 } 129 130 131 //修改邮件的已读状态 把1改0 132 public void updateMsg(int id){ 133 try { 134 Connection con = getConnection(); 135 String sql="update msg set state=0 where msgid=4"; 136 PreparedStatement ps = con.prepareStatement(sql); 137 ps.setInt(1, id);//给sql语句的问号赋值 138 ps.executeUpdate(); 139 closeAll(con, ps, null); 140 } catch (SQLException e) { 141 // TODO Auto-generated catch block 142 e.printStackTrace(); 143 } 144 145 146 147 } 148 149 150 }
UsersDao.java
1 package com.gd.dao; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 8 import com.gd.bean.Users; 9 10 public class UsersDao extends BaseDao { 11 12 //登录 13 public boolean login(String uname,String upwd){ 14 boolean f=false; 15 Connection conn=getConnection(); 16 String sql="select * from users where username='小红' and password='123456'"; 17 PreparedStatement ps=null; 18 ResultSet rs=null; 19 try { 20 ps=conn.prepareStatement(sql); 21 ps.setString(1, uname); 22 ps.setString(2, upwd); 23 rs=ps.executeQuery(); 24 if (rs.next()) { 25 f=true; 26 } 27 } catch (SQLException e) { 28 // TODO Auto-generated catch block 29 e.printStackTrace(); 30 } finally{ 31 closeAll(conn, ps, rs); 32 } 33 return f; 34 } 35 //注册,相当于添加一个用户 36 public int register(Users u){ 37 Connection conn=getConnection(); 38 String sql="insert into users values('df','1468', 'lanjia@163.com')"; 39 PreparedStatement ps=null; 40 int i=0; 41 try { 42 ps=conn.prepareStatement(sql); 43 ps.setString(1, u.getUsername()); 44 ps.setString(2, u.getPassword()); 45 ps.setString(3, u.getEmail()); 46 i=ps.executeUpdate();//返回受影响的行数 47 48 } catch (SQLException e) { 49 // TODO Auto-generated catch block 50 e.printStackTrace(); 51 } finally{ 52 closeAll(conn, ps, null); 53 } 54 return i; 55 } 56 57 public static void main(String[] args) { 58 Users u=new Users("haha", "123456", "haha@163.com"); 59 UsersDao ud=new UsersDao(); 60 //System.out.println(ud.register(u)); 61 System.out.println(ud.login("kit243ty", "777")); 62 63 }//修改个人信息 64 65 }
login.jsp
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>My JSP 'login.jsp' starting page</title> 13 14 <meta http-equiv="pragma" content="no-cache"> 15 <meta http-equiv="cache-control" content="no-cache"> 16 <meta http-equiv="expires" content="0"> 17 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 18 <meta http-equiv="description" content="This is my page"> 19 <!-- 20 <link rel="stylesheet" type="text/css" href="styles.css"> 21 --> 22 23 </head> 24 25 <body> 26 <form action="dologin.jsp" method="post"> 27 用户名:<input type="text" name="uname" value="ls" /><Br> 28 密码 :<input type="password" name="upwd" value="456"/><br> 29 30 <input type="submit" value="登录"> 31 <a href="register.jsp" >注册</a> 32 33 </form> 34 </body> 35 </html>
dologin.jsp
1 <%@page import="com.gd.dao.UsersDao"%> 2 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 3 <% 4 request.setCharacterEncoding("utf-8"); 5 String uname=request.getParameter("uname"); 6 String upwd=request.getParameter("upwd"); 7 UsersDao ud=new UsersDao(); 8 if(ud.login(uname, upwd)){ 9 session.setAttribute("uname", uname); 10 request.getRequestDispatcher("main.jsp").forward(request, response); 11 }else{ 12 response.sendRedirect("no.jsp"); 13 } 14 15 16 %>
dodel.jsp
1 <%@page import="com.gd.dao.MsgDao"%> 2 <%@page import="com.gd.bean.Users"%> 3 <%@page import="com.gd.dao.UsersDao"%> 4 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 5 <% 6 request.setCharacterEncoding("utf-8"); 7 int mid=Integer.parseInt(request.getParameter("mid")); 8 MsgDao md=new MsgDao(); 9 md.delMsg(mid); 10 request.getRequestDispatcher("main.jsp").forward(request, response); 11 12 13 %>
doreg.jsp
1 <%@page import="com.gd.bean.Users"%> 2 <%@page import="com.gd.dao.UsersDao"%> 3 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 4 <% 5 request.setCharacterEncoding("utf-8"); 6 String uname=request.getParameter("username"); 7 String upwd=request.getParameter("password"); 8 String email=request.getParameter("email"); 9 10 UsersDao ud=new UsersDao(); 11 Users u=new Users(uname,upwd,email); 12 ud.register(u); 13 response.sendRedirect("login.jsp"); 14 15 16 %>
dowrite.lsp
1 <%@page import="com.gd.dao.MsgDao"%> 2 <%@page import="com.gd.bean.Msg"%> 3 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 4 <% 5 request.setCharacterEncoding("utf-8"); 6 String title = request.getParameter("title"); 7 String content = request.getParameter("content"); 8 String receiver = request.getParameter("sendto"); 9 String sender = (String) session.getAttribute("uname"); 10 11 Msg m = new Msg(); 12 m.setSendto(receiver); 13 m.setUname(sender); 14 m.setTitle(title); 15 m.setMsgcontent(content); 16 17 MsgDao md = new MsgDao(); 18 md.writeMsg(m); 19 request.getRequestDispatcher("main.jsp").forward(request, response); 20 %>
main.jsp
1 <%@page import="com.gd.bean.Msg"%> 2 <%@page import="com.gd.dao.MsgDao"%> 3 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 4 <% 5 String path = request.getContextPath(); 6 String basePath = request.getScheme() + "://" 7 + request.getServerName() + ":" + request.getServerPort() 8 + path + "/"; 9 %> 10 11 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 12 <html> 13 <head> 14 <base href="<%=basePath%>"> 15 16 <title>My JSP 'login.jsp' starting page</title> 17 18 <meta http-equiv="pragma" content="no-cache"> 19 <meta http-equiv="cache-control" content="no-cache"> 20 <meta http-equiv="expires" content="0"> 21 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 22 <meta http-equiv="description" content="This is my page"> 23 <!-- 24 <link rel="stylesheet" type="text/css" href="styles.css"> 25 --> 26 27 </head> 28 29 <body> 30 <% 31 MsgDao md = new MsgDao(); 32 String uname = (String) session.getAttribute("uname"); 33 List<Msg> list = md.getReceive(uname); 34 %> 35 欢迎你<%=uname%> <a href="write.jsp">写邮件</a> 36 <table border="1"> 37 <tr> 38 39 <td>标题 </td> 40 41 <td>是否已读</td> 42 <td>发件人</td> 43 <td>时间</td> 44 <td>操作</td> 45 <td>操作</td> 46 </tr> 47 <%for(int i=0;i<list.size();i++){ %> 48 <tr> 49 50 <td><a href="readMsg.jsp?mid=<%=list.get(i).getMsgid()%>"><%=list.get(i).getTitle() %></a></td> 51 52 <td><%int x=list.get(i).getState(); 53 if(x==0){%> 54 <img src="images/sms_readed.png"> 55 <%}else{ %> 56 <img src="images/sms_unReaded.png"> 57 <%} %> 58 </td> 59 <td><%=list.get(i).getUname() %></td> 60 <td><%=list.get(i).getMsg_create_date() %></td> 61 <td><a href="dodel.jsp?mid=<%=list.get(i).getMsgid()%>">删除</a></td> 62 <td><a href="write.jsp?reply=<%=list.get(i).getUname()%>">回复</td> 63 64 65 </tr> 66 67 <%} %> 68 69 70 </table> 71 72 73 74 </body> 75 </html>
no.jsp
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>My JSP 'login.jsp' starting page</title> 13 14 <meta http-equiv="pragma" content="no-cache"> 15 <meta http-equiv="cache-control" content="no-cache"> 16 <meta http-equiv="expires" content="0"> 17 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 18 <meta http-equiv="description" content="This is my page"> 19 <!-- 20 <link rel="stylesheet" type="text/css" href="styles.css"> 21 --> 22 23 </head> 24 25 <body> 26 登录失败。 27 </body> 28 </html>
readMsg.jsp
1 <%@page import="com.gd.bean.Msg"%> 2 <%@page import="com.gd.dao.MsgDao"%> 3 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 4 5 <html> 6 <head> 7 <title>读短消息</title> 8 </head> 9 <body> 10 <div id="main"> 11 <div class="mainbox"> 12 <div class="title readMessage png"></div> 13 <div class="menu"> 14 <span>当前用户:<a href="main.jsp">${sessionScope.loginuser}</a></span> 15 <span><a href="UserServlet?action=findUsers">发短消息</a></span> 16 <span><a href="UserServlet?action=logout">退出</a></span> 17 </div> 18 <div class="content"> 19 <div class="message"> 20 <% 21 int mid=Integer.parseInt(request.getParameter("mid")); 22 MsgDao md=new MsgDao(); 23 Msg m=md.getMsgById(mid); 24 md.updateMsg(mid); 25 %> 26 27 發件人<%=m.getUname() %><br> 28 发件时间<%=m.getMsg_create_date() %><br> 29 标题:<%=m.getTitle() %><br> 30 详情:<%=m.getMsgcontent() %><br> 31 </div> 32 <a href="write.jsp?reply=<%=m.getUname()%>">回复</a> 33 <a href="main.jsp">返回首页</a> 34 </div> 35 </div> 36 </div> 37 </body> 38 </html>
register.jsp
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <head> 9 10 <title>学士后 在线短信平台</title> 11 <link type="text/css" rel="stylesheet" href="css/sms.css" /> 12 <script type="text/javascript" src="scripts/jquery.js"></script> 13 </head> 14 <script type="text/javascript"> 15 function check(){ 16 var username = document.getElementById("username"); 17 var password = document.getElementById("password"); 18 var affirm = document.getElementById("affirm"); 19 var email = document.getElementById("email"); 20 if(username.value == ""){ 21 alert("用户名不能为空!"); 22 return false; 23 }else if(password.value == ""){ 24 alert("密码不能为空!"); 25 return false; 26 }else if(password.value != affirm.value){ 27 alert("两次密码不同!"); 28 return false; 29 }else if(email.value == ""){ 30 alert("邮箱不能为空!"); 31 return false; 32 } 33 return true; 34 } 35 </script> 36 <body> 37 <div id="regTitle" class="png"></div> 38 <div id="regForm" class="userForm png"> 39 40 <form action="doreg.jsp" method="post"> 41 <dl> 42 43 <dt>用 户 名:</dt> 44 <dd><input type="text" name="username" /></dd> 45 <dt>密 码:</dt> 46 <dd><input type="password" name="password" /></dd> 47 <dt>确认密码:</dt> 48 <dd><input type="password" name="affirm" /></dd> 49 <dt>邮 箱:</dt> 50 <dd><input type="text" name="email" /></dd> 51 </dl> 52 <div class="buttons"> 53 <input type="submit" name="register" value="注册 " /><input type="reset" name="reset" value="重置 " /> 54 </div> 55 <div class="goback"><a href="index.jsp" class="png">返回登录页</a></div> 56 </form> 57 </div> 58 </body> 59 </html>
regok.jsp
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>My JSP 'login.jsp' starting page</title> 13 14 <meta http-equiv="pragma" content="no-cache"> 15 <meta http-equiv="cache-control" content="no-cache"> 16 <meta http-equiv="expires" content="0"> 17 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 18 <meta http-equiv="description" content="This is my page"> 19 <!-- 20 <link rel="stylesheet" type="text/css" href="styles.css"> 21 --> 22 23 </head> 24 25 <body> 26 注册成功,<a href="login.jsp">返回到登录页面</a> 27 </body> 28 </html>
write.jsp
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>My JSP 'login.jsp' starting page</title> 13 14 <meta http-equiv="pragma" content="no-cache"> 15 <meta http-equiv="cache-control" content="no-cache"> 16 <meta http-equiv="expires" content="0"> 17 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 18 <meta http-equiv="description" content="This is my page"> 19 <!-- 20 <link rel="stylesheet" type="text/css" href="styles.css"> 21 --> 22 23 </head> 24 25 <body> 26 <form action="dowrite.jsp" method="post"> 27 收件人:<input type="text" name="sendto" value="<%=request.getParameter("reply") %>" ><br> 28 主题:<input type="text" name="title"><br> 29 内容:<textarea name="content"></textarea> 30 <input type="submit" value="发送"> 31 32 33 </form> 34 35 36 </body> 37 </html>