<%@page import="com.gd.entity.Msg"%>
<%@page import="com.gd.dao.MsgDao"%>
<%@ page language="java" import="java.util.*" 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">
<html>
<head>
<base href="<%=basePath%>">
 
<title>My JSP 'index.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="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>
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.setUsernname(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();
        }
        
        
    }

}
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/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();
    }
    }

}
 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(); } } }
<%@ page language="java" import="java.util.*" 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">
<html>
  <head>
    <base href="<%=basePath%>">  
    <title>注册</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>
<input type="submit" value="注册">
</form>
  </body>
</html>
<%@ page language="java" import="java.util.*" 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">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>登录</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>
  <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="logincheck.jsp" name="form1" method="post">
   用户名:<input type="text" name="userName" size="18"><br>
   密    码:<input type="password" name="password" size="19"><br>
   验证码:<input type="text" name="validationCode" onKeyDown="if(event.keyCode==13){form1.submit.focus();}"size="4">
  <%
  int intmethod1=(int)((((Math.random())*5))+1);
  int intmethod2=(int)((((Math.random())*5))+1);
  int intmethod3=(int)((((Math.random())*5))+1);
  int intmethod4=(int)((((Math.random())*5))+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>
<%@ page language="java" import="java.util.*" 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">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>登录</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>
  <%
  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>