期末考试题解5
web.xml
点击查看代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<welcome-file-list>
<welcome-file>login.html</welcome-file>
</welcome-file-list>
</web-app>
登录界面.html
点击查看代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
<style>
body {
font-family: 'Arial', sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
#loginDiv {
background-color: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
width: 300px;
}
#loginMsg {
text-align: center;
color: #333;
margin-bottom: 20px;
}
input[type="text"],
input[type="password"] {
width: 100%;
padding: 10px;
margin-bottom: 10px;
border: 1px solid #ddd;
border-radius: 4px;
}
input[type="submit"] {
width: 100%;
padding: 10px;
background-color: #5cb85c;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
input[type="submit"]:hover {
background-color: #4cae4c;
}
#subDiv {
display: flex;
justify-content: space-between;
align-items: center;
}
a {
color: #337ab7;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<div id="loginDiv">
<form action="/EndTest/LoginServlet" method="post" id="form">
<h1 id="loginMsg">欢迎使用差旅费报销管理信息系统</h1>
<p>用户名:<input id="UserID" name="UserID" type="text"></p>
<p>密码:<input id="Password" name="Password" type="password"></p>
<div id="subDiv">
<input type="submit" class="button" value="登录">
<a href="register.html">没有账号?点击注册</a>
</div>
</form>
</div>
</body>
</html>
注册.html
点击查看代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>欢迎注册</title>
</head>
<body>
<div class="form-div">
<div class="reg-content">
<h1>欢迎注册</h1>
<a href="login.html">已有帐号?登录</a>
</div>
<form id="reg-form" action="/EndTest/RegisterServlet" method="post">
<table>
<tr>
<td>用户名</td>
<td class="inputs">
<input name="username" type="text" id="username">
<br>
<span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span>
</td>
</tr>
<tr>
<td>密码</td>
<td class="inputs">
<input name="password" type="password" id="password">
<br>
<span id="password_err" class="err_msg" style="display: none">密码格式有误</span>
</td>
</tr>
</table>
<div class="buttons">
<input value="注 册" type="submit" id="reg_btn">
</div>
<br class="clear">
</form>
</div>
</body>
</html>
LoginServlet
点击查看代码
package com.QixunQiu.web;
import com.QixunQiu.pojo.User;
import com.QixunQiu.service.UserService;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private UserService userService = new UserService();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String UserID = request.getParameter("UserID");
String Password = request.getParameter("Password");
User user =userService.selectUser(UserID, Password);
response.setContentType("text/html;charset=utf-8");
PrintWriter writer = response.getWriter();
//3. 判断user释放为null
if(user != null){
// 登陆成功
writer.write("登陆成功");
HttpSession session = request.getSession();
session.setAttribute("user", user);
request.getRequestDispatcher("/index.jsp").forward(request,response);
}else {
// 登陆失败
writer.write("登陆失败");
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
RegisterServlet
点击查看代码
package com.QixunQiu.web;
import com.QixunQiu.pojo.User;
import com.QixunQiu.service.UserService;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
private UserService userService = new UserService();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
String userID = generateID();
User user = new User();
user.setUsername(username);
user.setPassword(password);
user.setUserID(userID);
userService.addUser(user);
request.getRequestDispatcher("/login.html").forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
private int sequenceNumber = 1;
public synchronized String generateID() {
// 获取当前日期
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
String dateStr = sdf.format(now);
// 读取或初始化sequenceNumber
if (sequenceNumber == 1) {
File file = new File("sequenceNumberHouse.txt");
if (file.exists()) {
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = reader.readLine();
sequenceNumber = Integer.parseInt(line);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 组合房产编号
String sequenceStr = String.format("%04d", sequenceNumber++);
String houseID = dateStr + sequenceStr;
// 更新sequenceNumber到文件
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("sequenceNumberHouse.txt"));
writer.write(String.valueOf(sequenceNumber));
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
return houseID;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能