第八周作业

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>
原文地址:https://www.cnblogs.com/gwz-1314/p/14758110.html