GJM~

导航

Jsp第九次作业(带验证码的email)

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;
import java.util.List;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class BaseDao {
//经常用 所以建一个获取关闭
    //获取连接
    protected Connection getConnection(){
        Connection conn=null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
                // 2.建立连接
                conn = DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/user", "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

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{
    
        // 发送,回复---insert操作
        public void addMsg(Msg msg) {
            try {
                Connection con = getConnection();
                String sql = "insert into msg(username,title,msgcontent,state,sendto,msg_create_date) values(?,?,?,?,?,?);";
                PreparedStatement ps = con.prepareStatement(sql);
                ps.setString(1, msg.getUsername());// 给sql语句的问号赋值
                ps.setString(2, msg.getTitle());
                ps.setString(3, msg.getMsgcontent());
                ps.setInt(4, 0);// 刚插入的邮件为未读邮件,直接赋值0
                ps.setString(5, msg.getSendto());
                ps.setDate(6, new java.sql.Date(new Date().getTime()));
                ps.executeUpdate();
                closeAll(con, ps, null);
            } catch (SQLException ex) {
                ex.printStackTrace();
            }

        }

        // 邮件列表 --select * from msg where username=....
        public List<Msg> getMailByReceiver(String receiverName) {
            List<Msg> list = new ArrayList<Msg>();

            try {
                Connection con = getConnection();// 获取连接
                String sql = "select * from msg where sendto=?";// 编写sql语句
                PreparedStatement ps = con.prepareStatement(sql);
                ps.setString(1, receiverName);// //给sql问号赋值
                ResultSet rs = ps.executeQuery();// 执行查询
                // 处理查询结果
                while (rs.next()) {
                    // 循环读取rs结果集,每一行作为一个msg对象,放入list集合中
                    Msg msg = new Msg();
                    msg.setMsgid(rs.getInt("msgid"));
                    msg.setMsgcontent(rs.getString("msgcontent"));
                    msg.setMsg_create_date(rs.getDate("msg_create_date"));
                    msg.setSendto(rs.getString("sendto"));
                    msg.setState(rs.getInt("state"));
                    msg.setTitle(rs.getString("title"));
                    msg.setUsernname(rs.getString("username"));
                    list.add(msg);
                }
                closeAll(con, ps, rs);

            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            return list;
        }

        // 根据id查内容 select
        public Msg getMailById(int id) {
            Msg msg = new Msg();
            try {

                Connection con = getConnection();// 获取连接
                String sql = "select * from msg where msgid=?";// 编写sql语句
                PreparedStatement ps = con.prepareStatement(sql);
                ps.setInt(1, id);// //给sql问号赋值
                ResultSet rs = ps.executeQuery();// 执行查询
                // 处理查询结果
                while (rs.next()) {
                    // 循环读取rs结果集,每一行作为一个msg对象,放入list集合中

                    msg.setMsgid(rs.getInt("msgid"));
                    msg.setMsgcontent(rs.getString("msgcontent"));
                    msg.setMsg_create_date(rs.getDate("msg_create_date"));
                    msg.setSendto(rs.getString("sendto"));
                    msg.setState(rs.getInt("state"));
                    msg.setTitle(rs.getString("title"));
                    msg.setUsername(rs.getString("username"));

                }
                closeAll(con, ps, rs);

            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return msg;
        }

        public static void main(String[] args) {
            MsgDao md = new MsgDao();
            
            md.delMsg(14);
        }

        // 阅读状态改变,,,未读 已读 update
        public  void alterMsg(int id){
            
            try {
                Connection con=getConnection();
                String sql="update msg set state=1 where msgid=?";
                PreparedStatement ps = con.prepareStatement(sql);
                ps.setInt(1, id);
                ps.executeUpdate();
                closeAll(con, ps, null);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            
        }
        
        
        

        // 删除邮件 delete
        public  void delMsg(int id){
            try {
                Connection con=getConnection();
                String sql="delete from msg where msgid=?";
                PreparedStatement ps = con.prepareStatement(sql);
                ps.setInt(1, id);
                ps.executeUpdate();
                closeAll(con, ps, null);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            
        }
}

UsersDao.java

package com.gd.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.gd.entity.Users;

public class UsersDao extends BaseDao {
    // 登录功能
    public boolean login(String uname, String upwd) throws SQLException {
        // 获取连接
        Connection conn = getConnection();
        // 编写sql语句
        String sql = "select * from users where username=? and password=?";
        // 执行sql语句
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, uname);
        ps.setString(2, upwd);
        ResultSet rs = ps.executeQuery();
        if (rs.next()) {
            closeAll(conn, ps, rs);
            return true;
        } else {
            closeAll(conn, ps, rs);
            return false;

        }
    }
    public void addUsers(Users users) {
        try {
            Connection con = getConnection();
            String sql = "insert into users(username,password,email) values(?,?,?);";
            PreparedStatement ps = con.prepareStatement(sql);
            ps.setString(1, users.getUsername());
            ps.setString(2, users.getPassword());
            ps.setString(3, users.getEmail());
            ps.executeUpdate();
            closeAll(con, ps, null);
        } catch (SQLException ex) {
            ex.printStackTrace();
        }

    }


}

Msg.java

package com.gd.entity;

import java.sql.Date;

public class Msg {
    private int msgid;
    private String username;
    private String title;
    private String msgcontent;
    private int state;
    private String sendto;
    Date msg_create_date;
    

    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;
    }

    public int getMsgid() {
        return msgid;
    }

    public void setMsgid(int msgid) {
        this.msgid = msgid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String usernname) {
        this.username = usernname;
    }

    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;
    }

}

Users.java

package com.gd.entity;

public class Users {
    String username;
    String password;
    String email;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }

}

delete.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    
    <%@page import="com.gd.entity.Users"%>
<%@page import="com.gd.entity.Msg"%>
<%@page import="com.gd.dao.MsgDao"%>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<%
    int id = Integer.parseInt(request.getParameter("delid"));

    MsgDao md = new MsgDao();
    md.delMsg(id);
    request.getRequestDispatcher("main.jsp").forward(request, response);
%>
</html>

detail.jsp

<%@page import="com.gd.entity.Msg"%>
<%@page import="com.gd.dao.MsgDao"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    
 <%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
    <%
        int id = Integer.parseInt(request.getParameter("id"));
        MsgDao md = new MsgDao();
        Msg m = md.getMailById(id);
        md.alterMsg(m.getMsgid());
    %>
    <p>
        题目:<%=m.getTitle()%></p>
    <p>
        来自:<%=m.getUsername()%></p>
    <p>
        时间:<%=m.getMsg_create_date()%></p>
    <p>
        内容:<%=m.getMsgcontent()%></p>
回复   <a href="main.jsp">返回</a>
</body>
</html>

do.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    
    <%@page import="com.gd.entity.Users"%>
<%@page import="com.gd.entity.Msg"%>
<%@page import="com.gd.dao.MsgDao"%>
<%@page import="com.gd.dao.UsersDao"%>
    <%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
  <%
  request.setCharacterEncoding("utf-8");
Users a=new Users();
    String uname = request.getParameter("uname");
    String upwd = request.getParameter("upwd");
    String email = request.getParameter("uemail");

    a.setUsername(uname);
    a.setPassword(upwd);
    a.setEmail(email);

    UsersDao as=new UsersDao();
    as.addUsers(a);
    request.getRequestDispatcher("index.jsp").forward(request, response);
%>

  </body>
</html>

dologin.jsp

<%@page import="com.gd.entity.Users"%>
<%@page import="com.gd.dao.UsersDao"%>
<%@ 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">
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<%
    request.setCharacterEncoding("utf-8");
    String uname = request.getParameter("uname");
    String upwd = request.getParameter("upwd");
    UsersDao ud = new UsersDao();
    if(request.getParameter("validationCode1").equals(request.getParameter("validationCode")))            
{            
    if (ud.login(uname, upwd)){        
    //登录成功,创建User对象,并放入session
        Users u=new Users();
        u.setUsername(uname);
        u.setPassword(upwd);
        session.setAttribute("user", u);
        request.getRequestDispatcher("main.jsp").forward(request, response);
    }
    else{
        response.sendRedirect("index.jsp");
        }
        }
        else{            
response.sendRedirect("index.jsp");            
}        

%>

</html>

dowrite.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    
<%@page import="com.gd.entity.Users"%>
<%@page import="com.gd.entity.Msg"%>
<%@page import="com.gd.dao.MsgDao"%>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<%
    Users u = (Users) session.getAttribute("user");
    String uname = request.getParameter("sjr");
    String title = request.getParameter("title");
    String content = request.getParameter("content");
    Msg m = new Msg();
    m.setUsername(u.getUsername());//发件人  登陆者
    m.setSendto(uname);//收件人: 上一页面填写的
    m.setTitle(title);
    m.setMsgcontent(content);
    MsgDao md = new MsgDao();
    md.addMsg(m);
    request.getRequestDispatcher("main.jsp").forward(request, response);
%>
</html>

index.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
 <script type="text/javascript">
   function mycheck() {
 
//判断验证码是否为空
 if (form1.validationCode.value==""){
alert("验证码不能为空,请输入验证码!");
 form1.validationCode.focus();
 return;
 }
 //判断验证码是否正确
 if (form1.validationCode.value != form1.validationCode1.value) {
 alert("请输入正确的验证码!!");
 form1.validationCode.focus();
 return;
 }
 form1.submit1();
 }
 </script>
  <body>
   <form action="dologin.jsp" method="post">
用户名:<input type="text" name="uname" value="kitty" /><Br>
密码 :<input type="password" name="upwd" value="777"/><br>
 <br>
 验证码:<input type="text" name="validationCode" 
 onKeyDown="if(event.keyCode==13){form1.submit.focus();}" size="6">
 <%
 int intmethod1 = (int) ((((Math.random()) * 7)) - 1);
 int intmethod2 = (int) ((((Math.random()) * 7)) - 1);
 int intmethod3 = (int) ((((Math.random()) * 7)) - 1);
 int intmethod4 = (int) ((((Math.random()) * 7)) - 1);
 //将得到的随机数进行连接
  String intsum=intmethod1+""+intmethod2+intmethod3+intmethod4;
   %> 
   <input type="hidden" name="validationCode1" value="<%=intsum%>">
   <img style="height:20px;weight:20px" src="images/<%=intmethod1 %>.png">
   <img style="height:20px;weight:20px" src="images/<%=intmethod2 %>.png">
   <img style="height:20px;weight:20px" src="images/<%=intmethod3 %>.png">
   <img style="height:20px;weight:20px" src="images/<%=intmethod4 %>.png">
 <br>
<input type="submit" value="登录">
<a href="register.jsp">注册</a>
</form>
  </body>
</html>

logout.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    
<%@page import="com.gd.entity.Users"%>
<%@page import="com.gd.entity.Msg"%>
<%@page import="com.gd.dao.MsgDao"%>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<%
    session.removeAttribute("user");
    request.getRequestDispatcher("index.jsp").forward(request, response);
%>
</html>

main.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <%@page import="java.sql.SQLException"%>
    
<%@page import="com.gd.entity.Msg"%>
<%@page import="com.gd.dao.MsgDao"%>
<%@page import="com.gd.entity.Users"%>
<%@page import="java.util.List"%>
<%@page import="com.gd.dao.BaseDao"%>
<%@page import="com.gd.entity.Msg"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Connection"%>

<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
    欢迎页面!!!欢迎你!!!<%
    Users u = (Users) session.getAttribute("user");
    out.print(u.getUsername());
    MsgDao md = new MsgDao();
    List<Msg> list = md.getMailByReceiver(u.getUsername());
    out.print(list.size());
%>
    <a href="write.jsp">写邮件</a>
    <a href="logout.jsp">退出</a>
    <table border="1" width="1000">
        <tr>
            <td>邮件id</td>
            <td>发件人</td>
            <td>标题</td>
            <td>收件人</td>
            <td>状态</td>
            <td>时间</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>

        <%
            for (int i = 0; i < list.size(); i++) {
        %>
        <tr>
            <td><%=list.get(i).getMsgid()%></td>
            <td><%=list.get(i).getUsername()%></td>
            <td><a href="detail.jsp?id=<%=list.get(i).getMsgid()%>"><%=list.get(i).getTitle()%></a>
            </td>
            <td><%=list.get(i).getSendto()%></td>
            <td>
                <%
                    if (list.get(i).getState() == 0) {
                %> <img
                src="images/sms_unReaded.png"></img> <%
     } else {
 %> <img
                src="images/sms_readed.png"></img> <%
     }
 %>
            </td>
            <!-- 0已读,1未读 -->
            <td><%=list.get(i).getMsg_create_date()%></td>
            
            <td><a href="write.jsp?mailto=<%=list.get(i).getUsername() %>">回复</a>
            </td>
            <td> <a href="delete.jsp?delid=<%=list.get(i).getMsgid()%>">   删除</a>
            </td>

        </tr>

        <%
            }
        %>

    </table>


</body>
</html>

register.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    
    <%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'register.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
   <form action="do.jsp" method="post">
用户名:<input type="text" name="uname"  /><Br>
密码 :<input type="password" name="upwd" /><br>
email:<input type="text" name="uemail" /><br>
<input type="submit" value="确认">
</form>
  </body>
</html>

write.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@page import="com.gd.entity.Msg"%>
<%@page import="com.gd.dao.MsgDao"%>

<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
</head>

<body>
    <form action="dowrite.jsp" method="post">
        <p>
            收件人:<input type="text" name="sjr" value=<%=request.getParameter("mailto") %> />
        </p>
        <p>
            标题:<input type="text" name="title" />
        </p>
        <p>
            内容:<input type="text" name="content" />
        </p>
        <input type="submit" value="发送">
    </form>
    
    <a href="main.jsp">返回</a>
</body>
</html>

 

 

 

 

 

posted on 2020-05-22 12:27  GJM~  阅读(176)  评论(0编辑  收藏  举报