• 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>

     

     

  • 相关阅读:
    文件操作
    python中的函数递归和迭代问题
    函数的闭包与装饰器
    函数的名称空间和作用域
    python学习之路(四) ---函数
    python __name__问题
    浅谈python中的引用和拷贝问题
    Python中的缩进问题
    粘包现象
    socket编程
  • 原文地址:https://www.cnblogs.com/gjm717/p/12936441.html
Copyright © 2020-2023  润新知