目录

一.创建实体类

二.连接数据库以及相关操作

三.登录

四.注册

五.登陆失败

六.登陆成功

七.写邮件以及回复邮件

八.查看邮件

九.删除邮件

十.数据库表结构


一.创建实体类


public class mail {private Integer id;private String Sender;private String addressee;private String title;private String content;private String time;private Integer state;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getSender() {return Sender;}public void setSender(String sender) {Sender = sender;}public String getAddressee() {return addressee;}public void setAddressee(String addressee) {this.addressee = addressee;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}public Integer getState() {return state;}public void setState(Integer state) {this.state = state;}@Overridepublic String toString() {return "mail{" +"id=" + id +", Sender='" + Sender + '\'' +", addressee='" + addressee + '\'' +", title='" + title + '\'' +", content='" + content + '\'' +", time='" + time + '\'' +", state=" + state +'}';}
}

public class MailUsers {private int id;private String username;private String password;public int getId() {return id;}public void setId(int id) {this.id = id;}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;}@Overridepublic String toString() {return "MailUsers{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +'}';}
}

二.连接数据库以及相关操作


import java.sql.*;public class mail_BaseDao {protected Connection getConnection() {Connection conn = null;try {Class.forName("com.mysql.cj.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mailbox", "root", "123456");} 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();}}
}

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class mail_UserDao extends mail_BaseDao{//--------------------用户登录---------------------public boolean login(String name, String pwd) {boolean f = false;Connection conn = getConnection();String sql = "select * from tb_user where username=? and password=?";PreparedStatement ps = null;ResultSet rs = null;try {ps = conn.prepareStatement(sql);ps.setString(1, name);ps.setString(2, pwd);rs = ps.executeQuery();if (rs.next())f = true;} catch (SQLException e) {e.printStackTrace();} finally {closeAll(conn, ps, rs);}return f;}//--------------------用户注册--------------------public void reg(String username, String password) {Connection conn = getConnection();PreparedStatement ps = null;try {String sql = "insert into tb_user(username,password) values(?,?)";ps = conn.prepareStatement(sql);ps.setString(1, username);ps.setString(2, password);ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {closeAll(conn, ps, null);}}
}

import com.own.mywebdemo.Week5_Login_connecor.BaseDao;
import org.jetbrains.annotations.NotNull;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;public class MailDao extends mail_BaseDao {//--------------------查询所有邮件--------------------public List<mail> getMailByReceiver(String name){List<mail> list=new ArrayList<mail>();Connection conn=getConnection();String sql="select * from tb_mail where addressee=?";PreparedStatement ps=null;ResultSet rs=null;try {ps = conn.prepareStatement(sql);ps.setString(1, name);rs=ps.executeQuery();while(rs.next()){mail m=new mail();m.setId(rs.getInt(1));m.setSender(rs.getString(2));m.setAddressee(rs.getString(3));m.setTitle(rs.getString(4));m.setContent(rs.getString(5));m.setTime(rs.getString(6));m.setState(rs.getInt(7));list.add(m);}} catch (SQLException e) {e.printStackTrace();}finally{closeAll(conn, ps, rs);}return list;}// --------------------插入邮件--------------------public void addMail(mail m) {Connection conn = getConnection();String sql = "insert into tb_mail(Sender,addressee,title,content,time,state) values(?,?,?,?,?,?)";PreparedStatement ps = null;try {ps = conn.prepareStatement(sql);ps.setString(1, m.getSender());ps.setString(2, m.getAddressee());ps.setString(3, m.getTitle());ps.setString(4, m.getContent());ps.setDate(5, new java.sql.Date(new Date().getTime()));// 系统当前时间ps.setInt(6, 0);ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {closeAll(conn, ps, null);}}// --------------------删除邮件--------------------public void deleteMail(int id) {Connection conn = getConnection();String sql = "delete from tb_mail where id=?";PreparedStatement ps = null;try {ps = conn.prepareStatement(sql);ps.setInt(1, id);ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{closeAll(conn, ps, null);}}//--------------------更新邮件状态--------------------public void updataMail(int id){Connection conn = getConnection();String sql = "update tb_mail set state=1 where id=?";PreparedStatement ps = null;try {ps = conn.prepareStatement(sql);ps.setInt(1, id);ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{closeAll(conn, ps, null);}}}

三.登录

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>登录</title>
</head>
<body>
<script type="text/javascript">function check() {if (login.account.value==""){alert("请输入账号!");return;}else if(login.psw.value=="") {alert("请输入密码!");return;}login.submit();}
</script>
<form action="checkLog.jsp" method="post" name="login">账号:<input type="text" name="account"><br>密码:<input type="password" name="psw"><br><input type="button" value="登录" onclick="check()">
</form><br>
<form action="Register.jsp" method="post"><input type="submit" value="立即注册账户">
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<%String account=request.getParameter("account");String psw=request.getParameter("psw");mail_UserDao mail_userDao = new mail_UserDao();if (mail_userDao.login(account,psw)){session.setAttribute("account",account);request.getRequestDispatcher("LogSuccess.jsp").forward(request,response);}else {request.getRequestDispatcher("LogFail.jsp").forward(request,response);}
%>
</body>
</html>

 


四.注册

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>注册</title>
</head>
<body>
<script type="text/javascript">function check() {if (login.account.value==""){alert("请输入账号!");return;}else if(login.psw.value=="") {alert("请输入密码!");return;}else if(login.psw1.value=="") {alert("请再次输入密码!");return;}var pwd = document.getElementById("pwd").value;var pwd1 = document.getElementById("pwd1").value;if (pwd==pwd1){alert("注册成功!");login.submit();}else {alert("两次输入密码不一样!");return;}}
</script>
<form action="checkReg.jsp" method="post" name="login">请输入账号:<input type="text" name="account"><br>请输入密码:<input type="password" name="psw" id="pwd"><br>请再次输入密码:<input type="password" name="psw1" id="pwd1"><br><input type="button" value="注册" onclick="check()">
</form>
<form action="Login.jsp" method="post"><input type="submit" value="已有账号?前往登录">
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<%String account=request.getParameter("account");String psw=request.getParameter("psw");String psw1=request.getParameter("psw1");if (psw.equals(psw1)) {mail_UserDao mail_userDao = new mail_UserDao();mail_userDao.reg(account,psw);request.getRequestDispatcher("Login.jsp").forward(request,response);} else {request.getRequestDispatcher("Register.jsp").forward(request,response);}
%>
</body>
</html>

 


五.登陆失败

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>登陆失败</title>
</head>
<body>
<h1>登陆失败</h1>
</body>
</html>


六.登陆成功后的主界面,显示该用户所有邮件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>我的邮件</title>
</head>
<body>
<%String account = (String) session.getAttribute("account");MailDao mailDao = new MailDao();List<mail> mails = mailDao.getMailByReceiver(account);
%>
<h1>欢迎!<%=account%>
</h1>
<form action="write.jsp" method="post"><input type="submit" value="写邮件">
</form>
<table border="1"><tr><td>发件人</td><td>标题</td><td>状态</td><td> </td><td> </td><td> </td><td>时间</td></tr><%for (int i = 0; i < mails.size(); i++) {mail m = mails.get(i);%><tr><td><%out.print(m.getSender());%></td><td><%out.print(m.getTitle());%></td><td><%if (m.getState() == 1) {out.print("已读");} else {out.print("未读");}%></td><td><a href="DetailMail.jsp?sender=<%=m.getSender()%>&title=<%=m.getTitle()%>&content=<%=m.getContent()%>&time=<%=m.getTime()%>&mailId=<%=m.getId()%>">查看</a></td><td><a href="write.jsp?reply=<%=m.getSender()%>">回复</a></td><td><a href="DeleteMail.jsp?mailId=<%=m.getId()%>">删除</a></td><td><%out.print(m.getTime());%></td></tr><%}%>
</table>
</body>
</html>


七.写邮件以及回复邮件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>写邮件</title>
</head>
<body>
<%String account = (String) session.getAttribute("account");
%>
<h1>欢迎!<%=account%></h1>
<form action="checkWrite.jsp" method="post">收件人:<input type="text" name="receiver"  value="<%=request.getParameter("reply")%>"><br>主题: <input  type="text" name="title" ><br>内容 <textarea rows="6" cols="20" name="content"></textarea><br><input type="submit" value="发送">
</form></body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><%String sender = (String) session.getAttribute("account");String addressee=request.getParameter("receiver");String title=request.getParameter("title");String content=request.getParameter("content");mail m = new mail();m.setSender(sender);m.setAddressee(addressee);m.setTitle(title);m.setContent(content);MailDao md = new MailDao();md.addMail(m);out.print("发送成功!3秒后返回");response.setHeader("refresh", "3;url=LogSuccess.jsp");%>
</body>
</html>

 


八.查看邮件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>邮件内容</title>
</head>
<body>
<%int mailId=Integer.parseInt(request.getParameter("mailId"));String sender = request.getParameter("sender");String title = request.getParameter("title");String content = request.getParameter("content");String time = request.getParameter("time");MailDao md = new MailDao();md.updataMail(mailId);
%>发件人:<%out.print(sender);%><br>
主题:<%out.print(title);%><br>
内容:<%out.print(content);%><br>
时间:<%out.print(time);%><br><a href="LogSuccess.jsp">返回主界面</a>
</body>
</html>


九.删除邮件(点击删除按钮即可删除)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<%int mailId=Integer.parseInt(request.getParameter("mailId"));MailDao md = new MailDao();md.deleteMail(mailId);response.sendRedirect("LogSuccess.jsp");
%>
</body>
</html>

十.数据库表结构

1 .用户表

2.邮件表

[JavaWeb]简单的邮件系统相关推荐

  1. Python django实现简单的邮件系统发送邮件功能

    Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...

  2. python写邮箱系统_Python django实现简单的邮件系统发送邮件功能

    本文实例讲述了Python django实现简单的邮件系统发送邮件功能.分享给大家供大家参考,具体如下: django邮件系统 Django发送邮件官方中文文档 总结如下: 1.首先这份文档看三两遍是 ...

  3. javaweb简单的外卖平台系统(一)

    因为需要上交数据库作业,所以打算运用所学的Javaweb知识进行编写一个外卖平台系统,时间比较赶,所以只做完了用户模块和购物车模块. 数据库使用mysql数据库 服务器上使用tomcat 数据库使用m ...

  4. javaweb简单小项目-投票系统

    这次给大家带来一个课堂基础作业,简单的javaweb投票系统. 当然也设计了添加投票人的接口,只是list页面没有直接导航过去. 如页面显示,可以增加和减少相应的票数.同时id是利用数据库该字段作为主 ...

  5. javaweb简单的登录增删改查系统_利用python操作小程序云数据库实现简单的增删改查!

    不止python,你可以利用任何语言那实现通过http请求来操作你自己的小程序云数据库了 背景 也是在最近吧,小程序更新了云开发 HTTP API 文档,提供了小程序外访问云开发资源的能力,使用 HT ...

  6. javaweb简单的登录增删改查系统_国产化之路统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作...

    引言 经过前期的准备工作,.net core 3.1的运行环境和WEB服务器已经搭建完毕,这里需要注意一下,达梦DM8数据库对于Entity Framework Core 3.1 的驱动在NuGet官 ...

  7. JavaWeb简单案例——文件的上传

    简单介绍: 首先获取文件上传需要的jar包,在官网中找到:Apache Commons FileUpload 和 Apache Commons IO两个jar包下载后,解压,得到两个jar包,并复制到 ...

  8. javaWeb 简单注册登录(含数据库连接) -- (一)页面

    说在前面: 自己尝试下写了这个, 最近web学的东西都在里面了, 虽然还是很渣, 但也算第一步了, 我姑且算它为一个"项目", 咳咳 今天刚看到十年前一位学长的毕业设计报告(AOJ ...

  9. 【javaweb简单教程】1.搭建Web环境、初识JSP

    1.搭建Web环境.初识JSP 程序架构 C/S (Client/Server)结构,即客户机和服务器结构. B/S(Browser/Server)结构,即浏览器和服务器结构. (B/S架构采用请求/ ...

  10. JavaWeb简单的单点登录、验证码校验功能实现

    前言 最近项目刚刚告一段落,后期有时间会慢慢分解整理出来给大家分享.本文主要提供思路和核心代码,建立在有一定后台基础读者上.(相信没有基础的同学只要认真细读也是可以理解的) 技术原理 1.单点登录(S ...

最新文章

  1. 主题模型(topic models)解释及评估
  2. android tcp tcp阻塞 线程不运行,Android tcp优化
  3. python练习_如何使用Logzero在Python中练习记录
  4. 廖雪峰讲python高阶函数求导公式_高阶函数 - 廖雪峰 Python 2.7 中文教程
  5. java手动分页工具类
  6. oxm java_使用JAXB2.0实现OXM
  7. IIS设置HTTP To HTTPS
  8. 尴尬……无人车美国赌城上路不到一小时就撞了
  9. 21.策略模式(Strategy Pattern)
  10. 【对讲机的那点事】维修对讲机你会拆卸电路板上的集成电路块吗?
  11. H264三种码率控制方法(CBR, VBR, CVBR)
  12. linux 播放wav文件,Java音频无法在Linux中播放wav文件
  13. 微信开发者工具 设置wxml属性换行
  14. UE4 Gameplay
  15. 资深技术布道师的 5 个秘密武器
  16. z370完美黑苹果_完工!搞掂i5-8600K 华硕PRIME Z370-P GTX 1060黑苹果安装
  17. flv.js php,flv.js的使用详解
  18. 短信接口抓包_[实战] 实现抢票小工具amp;短信通知提醒
  19. pointpillars--kitti训练
  20. Git与GitFlow工具介绍

热门文章

  1. 1个div,你能用CSS常规属性绘制:正3、4、5、6、7、8边形吗?
  2. 跨域问题很难吗?来!教你使用 Nginx 反向代理轻松解决
  3. 关于APP广告位的设计与优化(下)
  4. POJ 2528 线段树离散化
  5. 国内市场有哪些T+0基金可以买卖? | T+0基金
  6. 已知半径和两圆相交面积求圆心距
  7. Linux下释放权限,Linux-权限管理命令
  8. Swift — UIKit 之(11)—— 持久层|SQLite 图片的存取
  9. 虚拟光驱文件之间的转换(bin/cue/ios)
  10. 原来这就是我们买不起房的原因!