UserMapper
点击查看代码
package com.Moonbeams.mapper;import com.Moonbeams.pojo.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;public interface UserMapper {/*** 根据用户名和密码查询用户对象* @param username* @param password* @return*/@Select("select *from ft_user where username = #{username} and password = #{password}")@ResultMap("UserResultMap")User select(@Param("username") String username, @Param("password") String password);/*** 根据用户名查询用户对象** @param username* @return*/@Select("select *from ft_user where username = #{username}")@ResultMap("UserResultMap")User selectByUsername(@Param("username") String username);/*** 添加用户* @param user*/@Insert("insert into ft_user values(null,#{username},#{password},#{identify})")@ResultMap("UserResultMap")void add(User user);/*** 修改密码* @param user*/@Update("update ft_user set password = #{password} where username = #{username}")@ResultMap("UserResultMap")void modifyPassword(User user);/*** 重置密码为123456* @param user*/@Update("update ft_user set password = '123456' where username = #{username}")@ResultMap("UserRe" +"sultMap")void resetPassword(User user);@Update("update ft_user set identify = #{identify} where username = #{username}")@ResultMap("UserResultMap")void modifyIdentify(User user);
}
CheckCodeServlet
点击查看代码
package com.Moonbeams.web;import com.Moonbeams.service.UserService;
import com.Moonbeams.util.CheckCodeUtil;import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
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("/checkCodeServlet")
public class CheckCodeServlet extends HttpServlet {private UserService service = new UserService();@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//生成验证码ServletOutputStream os = response.getOutputStream();String checkCode = CheckCodeUtil.outputVerifyImage(100,50,os,4);//存入sessionHttpSession session = request.getSession();session.setAttribute("checkCodeGen",checkCode);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
点击查看代码
package com.Moonbeams.web;import com.Moonbeams.pojo.User;
import com.Moonbeams.service.UserService;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
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("/loginServlet")
public class LoginServlet extends HttpServlet {private UserService service = new UserService();@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取用户名和密码String username = request.getParameter("username");String password = request.getParameter("password");//获取复选框数据String remembe = request.getParameter("remembe");//2.调用Service查询User user = service.login(username, password);//3.判断if (user != null) {//登录成功,存储用户信息到会话//判断用户是否勾选记住我if(("1".equals(remembe))) {//勾选了,发送cookie//1. 创建cookie 对象//Cookie cookie = new Cookie("uname",URLEncoder.encode(uname,"UTF-8")); 创建时设置字符集Cookie c_username = new Cookie("username", username);Cookie c_password = new Cookie("password", password);//设置cookie存活时间c_username.setMaxAge(60*60*24*7);c_password.setMaxAge(60*60*24*7);//2. 发送response.addCookie(c_username);response.addCookie(c_password);}//将登陆成功后的User对象,存储到sessionHttpSession session = request.getSession();session.setAttribute("user", user);String contextPath = request.getContextPath();response.sendRedirect(contextPath + "/personalHome.jsp");} else{//登录失败//存储错误信息到requestrequest.setAttribute("login_msg", "用户名或密码错误");//跳转到login.jsprequest.getRequestDispatcher("/login.jsp").forward(request, response);}}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}}
点击查看代码
package com.Moonbeams.web;import com.Moonbeams.pojo.User;
import com.Moonbeams.service.UserService;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.Random;@WebServlet("/registerServlet")
public class RegisterServlet extends HttpServlet {private UserService service = new UserService();@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");//1. 获取对应用户名和密码数据String username = request.getParameter("username");String password = request.getParameter("password");String identify = request.getParameter("identify");//获取用户输入的验证码String checkCode = request.getParameter("checkCode");//获取程序生成的验证码,从Session中获取HttpSession session = request.getSession();String checkCodeGen =(String) session.getAttribute("checkCodeGen");User user = new User();user.setUsername(username);user.setPassword(password);user.setIdentify(identify);//比对验证码XxXxif(!checkCodeGen.equalsIgnoreCase(checkCode)){request.setAttribute("register_msg","验证码错误");request.getRequestDispatcher("/register.jsp").forward(request, response);//不允许注册return;}//2. 调用service注册boolean flag = service.register(user);//判断注册成功与否if (flag) {//注册成功,跳转到登录页面request.setAttribute("register_msg", "注册成功,请登录");request.getRequestDispatcher("/login.jsp").forward(request, response);}else{//注册失败,跳转到注册页面request.setAttribute("register_msg", "注册失败,用户名已存在");request.getRequestDispatcher("/register.jsp").forward(request, response);}}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
点击查看代码
<%--Created by IntelliJ IDEA.User: 20713Date: 2024/11/10Time: 22:14To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>login</title><link rel="stylesheet" type="text/css" href="css/login.css"> <!-- 可选的样式文件 -->
</head><body>
<div id="loginDiv" style="height: 350px"><form action="loginServlet" id="form"><h1 id="loginMsg">登 录</h1><div id="errorMsg">${login_msg} ${register_msg}</div><p>Username:<input id="username" name="username" value= "${cookie.username.value}" type="text"></p><p>Password:<input id="password" name="password" value="${cookie.password.value}" type="password"></p><p>Remember:<input id="remember" name="remember" value="1" type="checkbox"></p><div id="subDiv"><input type="submit" class="button" value="login up"><input type="reset" class="button" value="reset"> <a href="register.jsp">没有账号?</a></div></form>
</div></body>
</html>
点击查看代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<%session.invalidate(); // 清除 sessionresponse.sendRedirect("login.jsp"); // 重定向到登录页面
%>
点击查看代码
<%@ page import="com.Moonbeams.pojo.User" %><%--Created by IntelliJ IDEA.User: 20713Date: 2024/11/11Time: 21:03To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>欢迎注册</title><link rel="stylesheet" type="text/css" href="css/register.css"> <!-- 可选的样式文件 -->
</head>
<body><div class="form-div"><div class="reg-content"><h1>欢迎注册</h1><span>已有帐号?</span> <a href="login.jsp">登录</a></div><form id="reg-form" action="registerServlet" method="post"><table><tr><td>用户名</td><td class="inputs"><input required name="username" type="text" id="username"><br><span id="username_err" class="err_msg" >${register_msg}</span></td></tr><tr><td>密码</td><td class="inputs"><input required name="password" type="password" id="password"><br><span id="password_err" class="err_msg" style="display: none">密码格式有误</span></td></tr><tr><td>身份</td><td class="inputs"><input required name="identify" type="text" id="identify"><br><span id="identify_err" class="err_msg" style="display: none">身份填写有误</span></td></tr><tr><td>验证码</td><td class="inputs"><input name="checkCode" type="text" id="checkCode"><img id ="checkCodeImg" src="/FTest/checkCodeServlet"><a href="#" id="changeImg">看不清?</a></td></tr></table><div class="buttons"><input value="注 册" type="submit" id="reg_btn"></div><br class="clear"></form></div>
<script>document.getElementById("changeImg").onclick = function (){document.getElementById("checkCodeImg").src = "/FTest/checkCodeServlet?"+new Date().getMilliseconds();}document.getElementById("checkCodeImg").onclick = function (){document.getElementById("checkCodeImg").src = "/FTest/checkCodeServlet?"+new Date().getMilliseconds();}</script>
</body>
</html>
点击查看代码
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<%User currentUser = (User) session.getAttribute("user");if (currentUser == null) {response.sendRedirect("login.jsp");return;}String currentUsername = currentUser.getUsername();
%><html>
<head><title>仓储管理系统-->主页</title><link rel="stylesheet" type="text/css" href="css/styles.css"> <!-- 可选的样式文件 -->
</head>
<body>
<h1>仓储管理系统</h1>
<h2><%if(currentUser.getIdentify().equalsIgnoreCase("仓库管理人员")){%><%=currentUsername%>,仓库管理人员,你好!</h2>
<nav><ul><li><a href="inStore.jsp">入库</a></li><li><a href="outStore.jsp">出库</a></li><li><a href="Search.jsp">统计查询</a></li></ul>
</nav>
<%}else if(currentUser.getIdentify().equalsIgnoreCase("管理员")){%>
<h2><%=currentUsername%>,管理员,你好!</h2>
<nav><ul><li><a href="insertStorehouse.jsp">新增仓库</a></li><li><a href="StoreList.jsp">修改仓库</a></li><li><a href="StoreList.jsp">删除仓库</a></li><li><a href="StoreList.jsp"> 浏览仓库列表</a></li><li><a href="insertMaterial.jsp">新增物资类别</a></li><li><a href="MaterialList.jsp">删除物资类别</a></li><li><a href="MaterialList.jsp">修改物资类别基本信息</a></li><li><a href="MaterialList.jsp"> 浏览物资类别列表</a></li></ul>
</nav>
<%}%><nav><ul><li><a href="login.jsp">重新登录</a></li></ul>
</nav>
</body>
</html>
新增仓库:增加新的仓库信息;
删除仓库:删除仓库基本信息时,必须验证没有相关物资存储在该仓库中,提示用户不允许删除。
修改仓库:仓库编号唯一不允许修改,并且验证没有相关物资存储在该仓库中,否则不允许修改仓库信息。
StorehouseMapper
点击查看代码
package com.Moonbeams.mapper;import com.Moonbeams.pojo.Storehouse;
import com.Moonbeams.pojo.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;import java.util.List;public interface StorehouseMapper {/*** 添加仓库* @param storehouse*/@Insert("insert into ft_storehouse values(null,#{storehouseName},#{description})")@ResultMap("StorehouseMap")void addStore(Storehouse storehouse);/*** 删除仓库* @param id*/@Delete("delete from ft_storehouse where id=#{id} and description = '空仓'")@ResultMap("StorehouseMap")void deleteStoreById(@Param("id") int id);/*** 修改仓库* @param storehouse*/@Update("update ft_storehouse set storehouseName=#{storehouseName} where id=#{id} and description = '空仓'")@ResultMap("StorehouseResultMap")void modifyStore(Storehouse storehouse);@Update("update ft_storehouse set description =#{description} where id=#{id}")@ResultMap("StorehouseResultMap")void modifyStoreDescription(Storehouse storehouse);@Select("select *from ft_storehouse where id=#{id}")@ResultMap("StorehouseResultMap")Storehouse getStoreById(@Param("id") int id);@Select("select *from ft_storehouse")@ResultMap("StorehouseResultMap")List<Storehouse> getStorehouseList();}
insertStorehouse.jsp
点击查看代码
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page import="java.util.List" %>
<%@ page import="com.Moonbeams.service.AdministratorService" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<%User currentUser = (User) session.getAttribute("user");if (currentUser == null) {response.sendRedirect("login.jsp");return;}AdministratorService service = new AdministratorService();%>
<html>
<head><title>新增仓库</title><link rel="stylesheet" type="text/css" href="css/styles.css"> <!-- 可选的样式文件 -->
</head>
<body>
<h1>新增仓库</h1>
<form action="administratorServlet" method="post"><input type="hidden" name="action" value="addStore"><input type="hidden" id="id" name="id"><label for="StorehouseName">仓库名:</label><input type="text" id="StorehouseName" name="StorehouseName"required><br><br><input type="submit" value="提交"></form><div class="transparent-box"><a href="personalHome.jsp">返回主界面</a></div>
</body>
</html>
StoreList.jsp
点击查看代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="com.Moonbeams.pojo.User" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.Moonbeams.service.AdministratorService" %>
<%@ page import="com.Moonbeams.pojo.Storehouse" %>
<%@ page isELIgnored="false" %><%User currentUser = (User) session.getAttribute("user");if (currentUser == null) {response.sendRedirect("login.jsp");return;}AdministratorService service = new AdministratorService();List<Storehouse> storehouses = service.getAllStorehouse();
%>
<!DOCTYPE html>
<html>
<head><link rel="stylesheet" type="text/css" href="css/styles.css"><meta charset="UTF-8"><title>仓库列表</title>
</head>
<body>
<h1>仓库列表</h1>
<table id="dailyReportsTable" border="1"><tr><th>仓库ID</th><th>仓库名</th><th>仓库补充信息</th></tr><%if (storehouses != null) {for (Storehouse storehouse : storehouses) {String rowClass = "row"; // Add this lineif ("空仓".equals(storehouse.getDescription())) {rowClass = "row-unapproved"; // Add this line}%><tr class="<%= rowClass %>"><%-- <tr>--%><td><%= storehouse.getId() %></td><td><%= storehouse.getStorehouseName() %></td><td><%= storehouse.getDescription() %></td><td><%if(storehouse.getDescription().equalsIgnoreCase("空仓")){%><form action="modifyStorehouse.jsp" method="post"><input type="hidden" name="id" value="<%= storehouse.getId() %>"><input type="submit" value="修改"></form><form action="administratorServlet" method="post"><input type="hidden" name="action" value="deleteStore"><input type="hidden" name="id" value="<%= storehouse.getId() %>"><input type="submit" value="删除"></form><%}%></td></tr><% }}%>
</table>
<br>
<div class="transparent-box"><a href="insertStorehouse.jsp">新增仓库</a>
</div>
<div class="transparent-box"><a href="personalHome.jsp">返回主界面</a>
</div>
</body>
</html>