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

}

Msg.java

package com.gd.entity;

import java.util.Date;

public class Msg {
    int msgid;
    String usernname;
    String title;
    String msgcontent;
    int state;
    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 getUsernname() {
        return usernname;
    }
    public void setUsernname(String usernname) {
        this.usernname = 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;
    }
}

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 {
    //获取连接
    public Connection getConnection(){
        Connection conn=null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
                // 2.建立连接
                conn = DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/jdbc", "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();
        }
    }

}

UsersDao.java

package com.gd.dao;

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

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

}

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.List;

import com.gd.entity.Msg;

public class MsgDao extends BaseDao{
    // 发送,回复---insert操作
    public boolean insertmail(String senderName,String receiverName,String title,String content){
        try {
            Connection con=getConnection();
            String sql="insert into msg(title,msgcontent,username,sendto,msg_create_date) values(?,?,?,?,now())";
            PreparedStatement ps=con.prepareStatement(sql);
            ps.setString(1, title);
            ps.setString(2, content);
            ps.setString(3, senderName);
            ps.setString(4, receiverName);
            int result=ps.executeUpdate();
            if(result!=0) {
                closeAll(con, ps, null);
                return true;
            }else {
                closeAll(con, ps, null);
                return false;
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return false;
    }

        // 邮件列表 --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;
        }

//        public static void main(String[] args) {
//            MsgDao md=new MsgDao();
//            List<Msg> list=md.getMailByReceiver("小白");
//            System.out.println(list.size());
//        }
        // 根据id查内容 select
        public Msg getMailById(int id){
            Msg msg=new Msg();
            try {
                
                Connection con = getConnection();//获取连接
                String sql = "select * from msg where id=?";//编写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;
        }

        // 阅读状态改变,,,未读 已读 update

        // 删除邮件 delete

}

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" 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" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="dologin.jsp" method="post">
用户名:<input type="text" name="uname" value="小白" /><br>
密码 :<input type="password" name="upwd" value="88888"/><br>

<input type="submit" value="登录">

</form>

</body>
</html>

dologin.jsp

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

<!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>
<%
    request.setCharacterEncoding("utf-8");
    String uname = request.getParameter("uname");
    String upwd = request.getParameter("upwd");
    UsersDao ud=new UsersDao();
    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");
    }
%>
</html>

main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*"
    pageEncoding="UTF-8"%>
<%@page import="com.gd.entity.Msg"%>
<%@page import="com.gd.dao.MsgDao"%>
<%@page import="com.gd.entity.Users"%>
<!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>
<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).getUsernname() %></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()==1){ %>
<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="">回复</a></td>
  <td><a href="">删除</a></td>
 
 </tr>
 
 
 
 <%} %>


</talbe>


</body>
</html>

write.jsp

<%@ 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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="dowrite.jsp" method="post">
收件人<input type="text" name="usersname"><br>
标题<input type="text" name="title" ><br>
内容<textarea cols="20"rews="10" name="content"></textarea><br>
<input type="submit" value="发送"> <a href="main.jsp"><input type="button" value="返回"></a>

</form>
</body>
</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.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>数据处理页</title>
</head>
<body>
<%
    request.setCharacterEncoding("utf-8");
    Users u=(Users) session.getAttribute("user");
    String title = request.getParameter("title");
    String senderName = u.getUsername();
    String receiverName = request.getParameter("usersname");
    String content = request.getParameter("content");
    MsgDao md = new MsgDao();
    if(md.insertmail(senderName, receiverName, title, content)){
%>
        <script>
            alert("发送成功");
        </script>
<%
    request.getRequestDispatcher("write.jsp").forward(request, response);
    }else{%>
        <script>
            alert("发送失败");
        </script>
<%
response.sendRedirect("write.jsp");
    }
    
%>
</body>
</html>