电子邮件管理系统除了必要的列出并查看邮件之外,还需要能够删除、修改邮件等等,邮件功能为添加、保存邮件;→删除、修改邮件;→查看、搜索邮件;
技术实现
JavaWeb最基本的三要素Html5、CSS与JavaScript实现项目设计
设计思想
邮件管理系统实现的功能就是让用户登陆,通过判断用户输入的用户名和密码与用户选择的登陆身份与数据库中的数据是否匹配来验证用户,其功能与我们日常生活中使用的QQ邮箱类似。其中比较有特色的功能就是修改密码功能,该功能仅限于注册用户使用。。
具体实现
数据库管理
用户数据库
public User() {
//加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
//建立连接
try {
connection = DriverManager.getConnection(url, username, password);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
//执行SQL对象
try {
statement = connection.createStatement();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
//判断登录
public boolean signIn(String username, String password) throws SQLException {
sql = "SELECT Psd FROM userlist WHERE UserName='"+username+"'";
ResultSet resultSet = statement.executeQuery(sql);
final StringBuilder builder = new StringBuilder();
while (resultSet.next()) {
builder.append(resultSet.getString(1));
}
String allResults = builder.toString();
if(allResults.equals(password)){
return true;
}else{
return false;
}
}
//用户注册
public void register(String username, String password) throws SQLException {
sql = "INSERT INTO userlist(UserName,Psd ) VALUE ('" + username + "' , '" + password + "')";
int i = statement.executeUpdate(sql);
}
//修改密码
public int changePassword(String username, String password) throws SQLException {
sql1="SELECT Psd FROM userlist WHERE UserName='"+username+"'";
ResultSet resultSet = statement.executeQuery(sql1);
final StringBuilder builder = new StringBuilder();
while (resultSet.next()) {
builder.append(resultSet.getString(1));
}
String allResults = builder.toString();
if(allResults.equals(password)){
return 1;
}else{
sql = "UPDATE userlist " + "SET Psd = '" + password + "' WHERE UserName = '" + username + "'";
int i = statement.executeUpdate(sql);
return 2;
}
}
public static void main(String[] args) {
// User user = new User();
// try {
// System.out.println(user.changePassword("www@123.com","666666"));
// } catch (SQLException throwables) {
// throwables.printStackTrace();
// }
}
}
邮件数据库
public Emile() {
//加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
//建立连接
try {
connection = DriverManager.getConnection(url,username,password);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
//执行SQL对象
try {
statement = connection.createStatement();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
//写邮件
public void writeEmile(String from,String text){
sql="INSERT INTO mail(Fromer,Date,Text) VALUE('"+from+"',NOW(),'"+text+"' )";
try {
int i = statement.executeUpdate(sql);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
//读邮件
public void readEmile(String from){
sql="SELECT * FROM mail WHERE Fromer='"+from+"'";
try {
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()){
System.out.println(resultSet.getString(1));
System.out.println(resultSet.getString(2));
System.out.println(resultSet.getString(3));
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
public static void main(String[] args) {
// Emile emile = new Emile();
}
}
登录界面设计
<html>
<head>
<title>用户登录</title>
<script type="text/javascript">
function reg(){
window.location.href='register.jsp'
}
</script>
</head>
<body>
<center>
<div style="text-align: center">
<br><br><br><br><br><br>
<p>
<form action="LoginFrame" method="post" name="sign">
邮箱:<input type="email" name="username" placeholder="请输入你的邮箱" required><br>
密码:<input type="password " name="password" placeholder="请输入你的密码"><br>
<br><br>
<input type="submit" value="登录" name="sign">
</form>
<button onclick="reg()">注册</button>
</p>
</div>
</center>
</body>
</html>
<script>
//取出传回来的参数error并与yes比较
var errori ='<%=request.getParameter("error")%>';
if(errori=='yes'){
alert("登陆失败,请重试!");
}
</script>
登录界面逻辑处理
public class LoginFrame extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
String username = req.getParameter("username");
String password = req.getParameter("password");
HttpSession session = req.getSession();
session.setAttribute("msg",username);
String sessionId = session.getId();
try {
boolean b = new User().signIn(username, password);
System.out.println(b);
if(b==true){
req.getRequestDispatcher("index.jsp").forward(req, resp);
}
if(b==false){
session.invalidate();
String obj="登陆失败,请重新登陆";
resp.sendRedirect("Login.jsp?error=yes");
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
注册界面设计
<script>
//取出传回来的参数error并与yes比较
var code =<%=request.getParameter("code")%>;
if(code==1){
alert("注册成功,请登录!");
}
</script>
<html>
<head>
<title>账号注册</title>
<script type="text/javascript">
function sign(){
window.location.href='Login.jsp'
}
</script>
</head>
<body>
<form action="Register" method="post">
请输入账号:<input name="username" type="email" required ><br>
请输入密码:<input name="password" type="p " required><br>
<input type="submit" value="注册">
</form>
<hr>
<button type="button" onclick="sign()">立即登录</button>
</body>
</html>
用户注册实现
public class Register extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
User user = new User();
try {
user.register(username,password);
} catch (SQLException throwables) {
}
req.getRequestDispatcher("register.jsp?code=1").forward(req,resp);
}
}
主界面设计
<script type="text/javascript" hidden>
function writein(){
window.location.href='Inbox.jsp'
}
</script>
<script type="text/javascript" hidden>
function changepsd(){
window.location.href='ChangePassword.jsp'
}
</script>
<script type="text/javascript" hidden>
function mail(){
window.location.href='mail.jsp'
}
</script>
<html>
<head>
<title>我的邮箱</title>
</head>
<body>
<%-- 顶部标签--%>
<div class="continer" >
<h2>欢迎<%=(String) session.getAttribute("msg")%>登录</h2>
<div class="continer continer-"></div>
<p>
<%-- <jsp:forward page="mail.jsp">--%>
<%-- <jsp:param name="username" value="user"/>--%>
<%-- </jsp:forward>--%
<%-- <button class="btn btn-large btn-primary" type="button" onclick="mail()">收件箱</button>--%>
<a href="mail.jsp?id=<%=(String) session.getAttribute("msg")%>"><button>收件箱</button></a>
<button class="btn btn-large btn-primary" type="button" onclick="writein()">写邮件</button>
<button class="btn btn-large btn-primary" type="button" onclick="changepsd()">修改密码</button>
</p>
</div>
</body>
</html>
修改密码界面设计
<script>
//取出传回来的参数error并与yes比较
var code =<%=request.getParameter("code")%>;
if(code==1){
alert("新密码请勿与旧密码重复!");
}
if(code==2){
alert("修改成功,请登录!");
}
</script>
<html>
<head>
<title>修改密码</title>
<script type="text/javascript">
function login(){
window.location.href='index.jsp'
}
</script>
</head>
<body>
<form action="changePassword" method="post" name="change">
邮箱: <input type="text" name="username" ><br>
新密码:<input type="password" name="password" ><br>
<input type="submit" name="修改" value="修改">
<%-- <% response.sendRedirect("Login.jsp");%>--%>
</form>
</body>
<hr>
<%--<% request.getRequestDispatcher("Login.jsp").forward(request,response);%>--%>
<button type="button" onclick="login()">返回界面</button>
</html>
修改密码功能实现
public class changePassword extends HttpServlet {
int i;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
User user = new User();
try {
i=user.changePassword(username,password);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
if(i==1){
req.getRequestDispatcher("ChangePassword.jsp?code=1").forward(req,resp);
}else{
req.getRequestDispatcher("ChangePassword.jsp?code=2").forward(req,resp);
}
}
public static void main(String[] args) {
}
}
邮件发送界面设计
<script>
//取出传回来的参数error并与yes比较
var code =<%=request.getParameter("code")%>;
if(code==1){
alert("发送成功!");
}
</script>
<html>
<head>
<title>写邮件</title>
<script type="text/javascript">
function sign(){
window.location.href='Login.jsp'
}
</script>
</head>
<body>
<div class="message" >
<form action="Write" method="post" name="邮件编辑">
收件人: <input type="email" name="writeemile" size="14" required><br>
邮件内容:<br><textarea name="emiletext" cols="60" rows="10"></textarea><br>
<input type="submit" value="发送">
</form>
<hr>
<button type="button" onclick="sign()">立即登录</button>
</div>
</body>
</html>
发送邮件功能实现
public class Write extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String emile = req.getParameter("writeemile");
String text = req.getParameter("emiletext");
Emile emile1 = new Emile();
emile1.writeEmile(emile,text);
req.getRequestDispatcher("Inbox.jsp?code=1").forward(req,resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
收件箱页面设计
<html>
<head>
<title> 我的邮箱</title>
</head>
<body>
<% try{
String username=request.getParameter("id");
Class.forName("com.mysql.jdbc.Driver");
Connection con= DriverManager.getConnection("jdbc:mysql://localhost:3306/mailbox","user","123456");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("SELECT * From mail WHERE Fromer = '" + username + "'");
%>
<tabel border="1">
<tr>
<td width="10">收件人</td>
<td width="10">时间</td>
<td width="10">内容</td>
</tr>
<%
while (rs.next()){
out.print("<tr>");
out.print("<td>"+rs.getString("Fromer")+"</td>");
out.print("\n\n\n");
out.print("<td>"+rs.getString("Date")+"</td>");
out.print("\n\n\n");
out.print("<td>"+rs.getString("Text")+"</td>");
out.print("\n\n\n");
out.print("</tr>");
}
con.close();
}catch(Exception e){
out.print(("连接失败"));
}
%>
</tabel>
</body>
</html>
需要完整项目文件加扣扣2957782929免费获取