12.16
- Servlet 层(控制层 + 权限校验)
(1)LoginServlet.java(统一登录入口)
java
运行
package com.company.detection.controller;
import com.company.detection.entity.User;
import com.company.detection.service.UserService;
import com.company.detection.service.impl.UserServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private UserService userService = new UserServiceImpl();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String userId = request.getParameter("userId");
String userPwd = request.getParameter("userPwd");
// 登录验证
User user = userService.login(userId, userPwd);
if (user == null) {
request.setAttribute("errorMsg", "账号或密码错误!");
request.getRequestDispatcher("/login.jsp").forward(request, response);
return;
}
// 存储登录状态,按角色跳转
HttpSession session = request.getSession();
session.setAttribute("loginUser", user);
int category = user.getUserCategory();
if (category == 0) { // 检测员
response.sendRedirect(request.getContextPath() + "/inspector/index.jsp");
} else if (category == 1) { // 项目经理
response.sendRedirect(request.getContextPath() + "/manager/index.jsp");
} else if (category == 2) { // 公司总监
response.sendRedirect(request.getContextPath() + "/director/index.jsp");
} else { // 委托客户(默认其他类别为客户)
response.sendRedirect(request.getContextPath() + "/client/index.jsp");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
(2)ClientServlet.java(委托客户功能)
java
运行
package com.company.detection.controller;
import com.company.detection.entity.Task;
import com.company.detection.entity.User;
import com.company.detection.service.TaskService;
import com.company.detection.service.impl.TaskServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;
@WebServlet("/client/*")
public class ClientServlet extends HttpServlet {
private TaskService taskService = new TaskServiceImpl();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String pathInfo = request.getPathInfo();
HttpSession session = request.getSession();
User loginUser = (User) session.getAttribute("loginUser");
// 权限校验:未登录跳转登录页
if (loginUser == null) {
response.sendRedirect(request.getContextPath() + "/login.jsp");
return;
}
// 提交委托申请
if ("/submitTask".equals(pathInfo)) {
Task task = new Task();
task.setClientName(request.getParameter("clientName"));
task.setItemName(request.getParameter("itemName"));
task.setItemContent(request.getParameter("itemContent"));
int result = taskService.addTask(task);
if (result > 0) {
request.setAttribute("successMsg", "委托申请提交成功!");
} else {
request.setAttribute("errorMsg", "提交失败,请重试!");
}
request.getRequestDispatcher("/client/submitTask.jsp").forward(request, response);
}
// 查看进度(客户提交的所有任务)
else if ("/viewProgress".equals(pathInfo)) {
List<Task> tasks = taskService.queryTasksByRole(loginUser.getUserId(), 3, 0, null);
request.setAttribute("tasks", tasks);
request.getRequestDispatcher("/client/viewProgress.jsp").forward(request, response);
}
// 查询结果(仅已完成任务)
else if ("/queryResult".equals(pathInfo)) {
String taskId = request.getParameter("taskId");
Task task = taskService.queryTaskDetail(taskId);
if (task != null && "已完成".equals(task.getState())) {
request.setAttribute("task", task);
} else {
request.setAttribute("errorMsg", "任务未完成,暂无法查看结果!");
}
request.getRequestDispatcher("/client/queryResult.jsp").forward(request, response);
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
(3)InspectorServlet.java(检测员功能)
java
运行
package com.company.detection.controller;
import com.company.detection.entity.Task;
import com.company.detection.entity.User;
import com.company.detection.service.TaskService;
import com.company.detection.service.impl.TaskServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;
@WebServlet("/inspector/*")
public class InspectorServlet extends HttpServlet {
private TaskService taskService = new TaskServiceImpl();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String pathInfo = request.getPathInfo();
HttpSession session = request.getSession();
User loginUser = (User) session.getAttribute("loginUser");
if (loginUser == null || loginUser.getUserCategory() != 0) {
response.sendRedirect(request.getContextPath() + "/login.jsp");
return;
}
// 浏览任务
if ("/browseTasks".equals(pathInfo)) {
String state = request.getParameter("state");
List<Task> tasks = taskService.queryTasksByRole(loginUser.getUserId(), 0, loginUser.getGroupNo(), state);
request.setAttribute("tasks", tasks);
request.getRequestDispatcher("/inspector/browseTasks.jsp").forward(request, response);
}
// 填写检测单
else if ("/fillTaskForm".equals(pathInfo)) {
Task task = new Task();
task.setId(request.getParameter("taskId"));
task.setClassType(request.getParameter("classType"));
task.setMethod(request.getParameter("method"));
task.setSampleName(request.getParameter("sampleName"));
task.setDryDensity(Double.parseDouble(request.getParameter("dryDensity")));
task.setMoistDensity(Double.parseDouble(request.getParameter("moistDensity")));
int result = taskService.updateTaskForm(task);
if (result > 0) {
request.setAttribute("successMsg", "检测单填写成功!");
} else {
request.setAttribute("errorMsg", "填写失败,请重试!");
}
response.sendRedirect(request.getContextPath() + "/inspector/browseTasks.jsp");
}
// 修改检测单
else if ("/updateTaskForm".equals(pathInfo)) {
// 逻辑同填写检测单,复用updateTaskForm方法
fillTaskForm(request, response);
}
// 删除检测单
else if ("/deleteTaskForm".equals(pathInfo)) {
String taskId = request.getParameter("taskId");
int result = taskService.deleteTaskForm(taskId);
if (result > 0) {
request.setAttribute("successMsg", "检测单删除成功!");
} else {
request.setAttribute("errorMsg", "删除失败,请重试!");
}
response.sendRedirect(request.getContextPath() + "/inspector/browseTasks.jsp");
}
// 提交审核(状态改为经理待审核)
else if ("/submitAudit".equals(pathInfo)) {
String taskId = request.getParameter("taskId");
taskService.approveTask(taskId, "经理待审核", null);
response.sendRedirect(request.getContextPath() + "/inspector/browseTasks.jsp");
}
}
private void fillTaskForm(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Task task = new Task();
task.setId(request.getParameter("taskId"));
task.setClassType(request.getParameter("classType"));
task.setMethod(request.getParameter("method"));
task.setSampleName(request.getParameter("sampleName"));
task.setDryDensity(Double.parseDouble(request.getParameter("dryDensity")));
task.setMoistDensity(Double.parseDouble(request.getParameter("moistDensity")));
int result = taskService.updateTaskForm(task);
if (result > 0) {
request.setAttribute("successMsg", "检测单修改成功!");
} else {
request.setAttribute("errorMsg", "修改失败,请重试!");
}
response.sendRedirect(request.getContextPath() + "/inspector/browseTasks.jsp");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}

浙公网安备 33010602011771号