SSM项目 蟹堡王餐厅管理系统(三)注册、登录与主页的实现

一、页面简介

(一)登录页面简介

在登陆界面,我们需要实现登录功能以及跳转注册功能。
(1)登录功能简介
本项目中,登录功能需要用户正确的输入用户名、密码以及验证码,在登陆成功后,判断用户的身份,跳转到相对应的主页。在访问用户未持有账号的情况下,需要能够跳转到注册界面进行注册。
在这里插入图片描述

(二)注册页面简介

在注册界面,用户可以输入用户名、密码以及选择性别进行注册。
在这里插入图片描述

(三)主页简介

本项目的主页面分为三种,老板界面、员工界面以及注册用户界面,分别对应三种用户权限老板、员工、注册用户(0、1、2)。
(1)老板界面
在老板界面我们需要实现的功能包括:个人信息的修改、用户管理、菜品管理、菜品上传、订单查询以及登出。
在这里插入图片描述
(2)员工界面
在老板界面我们需要实现的功能包括:个人信息的修改、菜品管理、菜品上传、订单查询以及登出。
在这里插入图片描述
(3)注册用户界面
在注册用户界面我们需要实现的功能包括:个人信息的修改、点餐、购物车、提交订单以及登出。
在这里插入图片描述

二、页面编写和功能实现

(一)登录界面编写

<%--Created by IntelliJ IDEA.User: RHDate: 2021/8/9Time: 15:17To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>登录界面title><script src="js/jquery.min.js">script><link rel="stylesheet" href="css/stylecss.css">
head>
<body background="images/bg.png">
<div class="box"><h2>Loginh2><div class="inputBox"><input type="text" name="userName" placeholder="请输入用户名"><label>用户名label>div><div class="inputBox"><input type="password" name="userPsd" placeholder="请输入密码"><label>密码label>div><div class="inputBox"><input type="text" name="captcha" placeholder="请输入验证码"><img src="captcha" style="width:85px" onclick="reloadCaptcha()"/><label>验证码label>div><button onclick="login()">登陆button><br><div style="text-align: right;color: white">无账号?<a href="register.jsp">立即注册a>div>
div><script>//点击图片重新刷新验证码function reloadCaptcha(){loadCaptcha();}//刷新验证码function loadCaptcha(){path = $("img").attr("src")+"?"+new Date().getTime();$("img").attr("src",path);}function login(){var userName = $("input[name='userName']").val();var userPsd = $("input[name='userPsd']").val();var captcha = $("input[name='captcha']").val();$.ajax({url:"login",//请求地址,相当于form得actiontype:"post",//请求方式相当于form得methoddata:{//前端要给后台发送的数据userName:userName,userPsd:userPsd,captcha:captcha},dataType:"json", //前后端交互数据的格式success:function(result){//result是后台传给前端得数据  result == ResultMap:status、messageif(result.status == true && result.authority==0){location.href = "index.jsp";}else if (result.status == true && result.authority==1){location.href = "index1.jsp";}else if (result.status == true && result.authority==2){location.href = "index2.jsp";}else{loadCaptcha();//如果登陆失败,重新刷新验证码alert(result.message);}}});}
script>body>
html>

(二)登陆功能实现

(1)验证码的刷新
在访问登录界面是,会首先刷新一张验证码图片,当点击验证码时,会调用reloadCaptcha()函数,重新调用loadCaptcha()函数刷新验证码。
在这里插入图片描述
(2)登录请求
当用户单击登录按钮时,会调用login()函数,此时前端会向后端的Controller层发送一个login请求,请求通过ajax发送,将携带userName、userPsd、captcha(用户名、密码、验证码),到Controller层寻找相对应的请求地址。
在这里插入图片描述
此时我们需要编写一个UserController、UserServiceI接口、UserServiceImpl接口实现类、UserDao接口、usermapper.xml映射文件。
在UserController中编写login方法接收请求。
在这里插入图片描述

@Controller
public class UserController {@Autowiredprivate UserServiceI userServiceI;@Autowiredprivate ResultMap resultMap;@RequestMapping("/login")@ResponseBodypublic ResultMap login(String userName, String userPsd, String captcha , HttpSession session) {try {int authority=userServiceI.login(userName,userPsd,captcha,session);resultMap.setStatus(true);resultMap.setAuthority(authority);} catch (Exception e) {resultMap.setStatus(false);resultMap.setMessage(e.getMessage());}return resultMap;}}

在UserServiceI编写login方法,通过UserServiceImpl实现。
并在UserServiceImpl中新建User对象,调用UserDao查询数据库,获取数据,并进行逻辑判断,判断数据是否正确以及是否为空,如果数据错误返回错误信息,登陆失败,如果数据正确,将数据存入session中命名为user(这个session后面会大量使用)
在这里插入图片描述
User类:

package com.RH.db.pojo;public class User {private String userName;private String userPsd;private String sex;private String imgPath;private int uid;private String headImg;private int authorityType;public User() {}public User(String userName, String userPsd) {this.userName = userName;this.userPsd = userPsd;}public int getAuthorityType() {return authorityType;}public void setAuthorityType(int authorityType) {this.authorityType = authorityType;}public String getUserPsd() {return userPsd;}public void setUserPsd(String userPsd) {this.userPsd = userPsd;}public String getHeadImg() {return headImg;}public void setHeadImg(String headImg) {this.headImg = headImg;}public int getUid() {return uid;}public void setUid(int uid) {this.uid = uid;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getImgPath() {return imgPath;}public void setImgPath(String imgPath) {this.imgPath = imgPath;}
}

UserServiceI接口:

public interface UserServiceI {public int login(String userName, String userPsd, String captcha, HttpSession session);
}

UserServiceImpl接口实现类:

@Service
public class UserServiceImpl implements UserServiceI{@Autowiredprivate UserDao userDao;@Overridepublic int login(String userName, String userPsd, String captcha, HttpSession session) {if(userName.equals("")) {throw new RuntimeException("用户名不能为空!");}if(userPsd.equals("")) {throw new RuntimeException("密码不能为空!");}if(captcha.equals("")) {throw new RuntimeException("验证码不能为空!");}String cap= (String) session.getAttribute("captcha");if(!captcha.equalsIgnoreCase(cap)){throw new RuntimeException("验证码有误!");}User user = new User(userName,userPsd);user = userDao.login(user);if(user == null) {throw new RuntimeException("用户名或密码输入有误!");}else {session.setAttribute("user",user);}return user.getAuthorityType();}}

在UserDao(也就是UserMapper)中我们要编写查询数据库的函数,并将其与映射文件绑定。
UserDao:

@Repository
public interface UserDao {public User login(User user);}

usermapper.xml映射文件:


DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.RH.db.dao.UserDao"><select id="login" parameterType="com.RH.db.pojo.User" resultType="com.RH.db.pojo.User">select u.* ,a.authorityTypefrom `user` as u,user_authority as ua,authority as awhereu.userName=#{userName} and u.userPsd=#{userPsd} and u.uid=ua.uid and ua.aid = a.aidselect>mapper>

在该方法中,我们会返回一个ResultMap类型的结果,ResultMap为自定义的工具类。在该工具类中,我们获取了异常信息、状态、返回数据、数据总条数、当前页码、每页显示多少数据、用户权限。
ResultMap类:

package com.RH.utils;import org.springframework.stereotype.Component;import java.util.ArrayList;
import java.util.List;@Component("ResultMap")
public class ResultMap<T> {private String message;		//异常信息private boolean status;		//状态private Object obj;			//一条数据private List<T> list = new ArrayList<T>();  //多条数据private long total;			//数据总条数private int page;			//当前页码private int limits;			//每页显示多少条数据private int code;private int authority;public int getAuthority() {return authority;}public void setAuthority(int authority) {this.authority = authority;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public boolean isStatus() {return status;}public void setStatus(boolean status) {this.status = status;}public Object getObj() {return obj;}public void setObj(Object obj) {this.obj = obj;}public List<T> getList() {return list;}public void setList(List<T> list) {this.list = list;}public long getTotal() {return total;}public void setTotal(long total) {this.total = total;}public int getPage() {return page;}public void setPage(int page) {this.page = page;}public int getLimits() {return limits;}public void setLimits(int limits) {this.limits = limits;}
}

至此为止,登陆功能已经完全实现了。

(三)注册页面编写

<%--Created by IntelliJ IDEA.User: RHDate: 2021/8/9Time: 15:17To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>登录界面title><script src="js/jquery.min.js">script><link rel="stylesheet" href="css/stylecss.css"><link rel="stylesheet" href="layui/css/layui.css"  media="all">
head>
<body background="images/bg.png">
<div class="box"><h2>registerh2><div class="inputBox"><input type="text" name="userName" placeholder="请输入用户名"><label>用户名label>div><div class="inputBox"><input type="password" name="userPsd" placeholder="请输入密码"><label>密码label>div><div class="layui-input-block"><font color="white">font><input type="radio" name="sex" value="" title=""><font color="white">font><input type="radio" name="sex" value="" title=""><br>div><button onclick="register()">注册button><br>
div><script>function register(){var userName = $("input[name='userName']").val();var userPsd = $("input[name='userPsd']").val();var sex=$('input[name="sex"]:checked').val();$.ajax({url:"register",//请求地址,相当于form得actiontype:"post",//请求方式相当于form得methoddata:{//前端要给后台发送的数据userName:userName,userPsd:userPsd,sex:sex,},dataType:"json", //前后端交互数据的格式success:function(result){//result是后台传给前端得数据  result == ResultMap:status、messageif(result.status == true){alert("注册成功");location.href = "login.jsp";}else{alert(result.message);}}});}
script>body>
html><body>body>
html>

(四)注册功能实现

(1)注册请求
当用户单击注册按钮时,会调用register()函数,此时前端会向后端的Controller层发送一个register请求,请求通过ajax发送,将携带userName、userPsd、sex(用户名、密码、性别),到Controller层寻找相对应的请求地址。
在这里插入图片描述
此时我们需要向UserController编写一个insertUserregister方法
在这里插入图片描述
UserController 新增insertUserregister()方法:

@Controller
public class UserController {@Autowiredprivate UserServiceI userServiceI;@Autowiredprivate ResultMap resultMap;@RequestMapping("/login")@ResponseBodypublic ResultMap login(String userName, String userPsd, String captcha , HttpSession session) {try {int authority=userServiceI.login(userName,userPsd,captcha,session);resultMap.setStatus(true);resultMap.setAuthority(authority);} catch (Exception e) {resultMap.setStatus(false);resultMap.setMessage(e.getMessage());}return resultMap;}@RequestMapping("/register")@ResponseBodypublic ResultMap insertUserregister(String userName,String userPsd,String sex){try{userServiceI.insertUserregister(userName,userPsd,sex);resultMap.setStatus(true);}catch (Exception e){resultMap.setStatus(false);resultMap.setMessage(e.getMessage());}return resultMap;}}

同时向UserServiceI、UserServiceImpl新增insertUserregister()方法。
该方法执行过程:
①判断用户名、密码是否为空,若为空,前端报错误信息。
②若不为空,新建一个User对象将用户名、密码、性别、默认头像名、默认头像地址赋值给User对象,在UserDao中新增insertUser()方法,将用户插入。
③判断是否插入成功。
④在UserDao中新增selectLatestId()方法,获取最新插入用户uid。(这里也可以直接用Mybatis来获取插入的主键)
⑤新建User_Authority对象,将uid、默认用户权限(注册用户权限也就是2,注意权限设置为2,但是权限表中对应的主键为3)。
⑥新增insertUserAuthority()方法,将用户权限插入关联表中。
在这里插入图片描述
新建User_Authority类:

public class User_Authority {private int uaid;private int uid;private int aid;public int getUaid() {return uaid;}public void setUaid(int uaid) {this.uaid = uaid;}public int getUid() {return uid;}public void setUid(int uid) {this.uid = uid;}public int getAid() {return aid;}public void setAid(int aid) {this.aid = aid;}
}

向UserServiceI新增insertUserregister()方法:

public interface UserServiceI {public int login(String userName, String userPsd, String captcha, HttpSession session);public int insertUserregister(String userName,String userPsd,String sex);
}

UserServiceImpl实现insertUserregister()方法:

@Service
public class UserServiceImpl implements UserServiceI{@Autowiredprivate UserDao userDao;@Overridepublic int login(String userName, String userPsd, String captcha, HttpSession session) {if(userName.equals("")) {throw new RuntimeException("用户名不能为空!");}if(userPsd.equals("")) {throw new RuntimeException("密码不能为空!");}if(captcha.equals("")) {throw new RuntimeException("验证码不能为空!");}String cap= (String) session.getAttribute("captcha");if(!captcha.equalsIgnoreCase(cap)){throw new RuntimeException("验证码有误!");}User user = new User(userName,userPsd);user = userDao.login(user);if(user == null) {throw new RuntimeException("用户名或密码输入有误!");}else {session.setAttribute("user",user);}return user.getAuthorityType();}@Overridepublic int insertUserregister(String userName, String userPsd, String sex) {if(userName.equals("")) {throw new RuntimeException("用户名不能为空!");}if(userPsd.equals("")) {throw new RuntimeException("密码不能为空!");}User user =new User();user.setUserName(userName);user.setUserPsd(userPsd);user.setSex(sex);user.setImgPath("images/defaultHeadimg.png");user.setHeadImg("defaultHeadimg.png");int num=userDao.insertUser(user);if(num==0){throw new RuntimeException("新增失败!");}User getLatestId=userDao.selectLatestId();User_Authority user_authority=new User_Authority();user_authority.setUid(getLatestId.getUid());user_authority.setAid(3);num=userDao.insertUserAuthority(user_authority);if(num==0){throw new RuntimeException("新增权限失败!");}return num;}}

向UserDao中新增insertUser()、selectLatestId()、insertUserAuthority()方法:

@Repository
public interface UserDao {public User login(User user);public int insertUser(User user) ;public User selectLatestId();public int insertUserAuthority(User_Authority user_authority) ;
}

在usermapper.xml编写sql语句:


DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.RH.db.dao.UserDao"><select id="login" parameterType="com.RH.db.pojo.User" resultType="com.RH.db.pojo.User">select u.* ,a.authorityTypefrom `user` as u,user_authority as ua,authority as awhereu.userName=#{userName} and u.userPsd=#{userPsd} and u.uid=ua.uid and ua.aid = a.aidselect><insert id="insertUser" parameterType="com.RH.db.pojo.User">insert into `User` (userName,userPsd,sex,headImg,imgPath)values (#{userName},#{userPsd},#{sex},#{headImg},#{imgPath})insert><select id="selectLatestId" resultType="com.RH.db.pojo.User">select * from `user` order by uid desc limit 1;select><insert id="insertUserAuthority" parameterType="com.RH.db.pojo.User_Authority">insert into user_authority (uid,aid) values (#{uid},#{aid})insert>
mapper>

获取最新uid:
在这里插入图片描述
至此,注册功能编写完成。

(五)主页编写

(1)老板界面(index.jsp)

<%--Created by IntelliJ IDEA.User: RHDate: 2021/8/8Time: 15:55To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><title>title><link rel="stylesheet" href="layui/css/layui.css">
head>
<body>
<div class="layui-layout layui-layout-admin"><div class="layui-header"><div class="layui-logo layui-hide-xs layui-bg-black">蟹堡王餐厅后台管理系统div><ul class="layui-nav layui-layout-left"><li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-header-event="menuLeft"><i class="layui-icon layui-icon-spread-left">i>li>ul><ul class="layui-nav layui-layout-right"><li class="layui-nav-item layui-hide layui-show-md-inline-block"><a href="javascript:;"><img src="${sessionScope.user.imgPath}" class="layui-nav-img">${sessionScope.user.userName}a><dl class="layui-nav-child"><dd><a href="signout">Sign outa>dd>dl>li>ul>div><div class="layui-side layui-bg-black"><div class="layui-side-scroll"><ul class="layui-nav layui-nav-tree" lay-filter="test"><li class="layui-nav-item"><a href="UserInformation.jsp" target="main">个人信息a>li><li class="layui-nav-item"><a href="UserMananger.jsp" target="main">用户管理a>li><li class="layui-nav-item"><a href="FoodMananger.jsp" target="main">菜品管理a>li><li class="layui-nav-item"><a href="FoofUpload.jsp" target="main">菜品上传a>li><li class="layui-nav-item"><a href="queryOrder.jsp" target="main">订单查询a>li>ul>div>div><div class="layui-body"><iframe src="" name="main" width=100% height=100% frameborder="0">iframe>div><div class="layui-footer" align="center">Copyright © 2021 RH All Rights Reserveddiv>
div>
<script src="layui/layui.js">script>
<script>//JSlayui.use(['element', 'layer', 'util'], function(){var element = layui.element,layer = layui.layer,util = layui.util,$ = layui.$;//头部事件util.event('lay-header-event', {//左侧菜单事件menuLeft: function(othis){layer.msg('展开左侧菜单的操作', {icon: 0});},menuRight: function(){layer.open({type: 1,content: '处理右侧面板的操作',area: ['260px', '100%'],offset: 'rt' //右上角,anim: 5,shadeClose: true});}});});
script>
body>
html>

(2)员工界面

<%--Created by IntelliJ IDEA.User: RHDate: 2021/8/8Time: 15:55To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><title>title><link rel="stylesheet" href="layui/css/layui.css">
head>
<body>
<div class="layui-layout layui-layout-admin"><div class="layui-header"><div class="layui-logo layui-hide-xs layui-bg-black">蟹堡王餐厅后台管理系统div><ul class="layui-nav layui-layout-left"><li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-header-event="menuLeft"><i class="layui-icon layui-icon-spread-left">i>li>ul><ul class="layui-nav layui-layout-right"><li class="layui-nav-item layui-hide layui-show-md-inline-block"><a href="javascript:;"><img src="${sessionScope.user.imgPath}" class="layui-nav-img">${sessionScope.user.userName}a><dl class="layui-nav-child"><dd><a href="signout">Sign outa>dd>dl>li>div><div class="layui-side layui-bg-black"><div class="layui-side-scroll"><ul class="layui-nav layui-nav-tree" lay-filter="test"><li class="layui-nav-item"><a href="UserInformation.jsp" target="main">个人信息a>li><li class="layui-nav-item"><a href="FoodMananger.jsp" target="main">菜品管理a>li><li class="layui-nav-item"><a href="FoofUpload.jsp" target="main">菜品上传a>li><li class="layui-nav-item"><a href="queryOrder.jsp" target="main">订单查询a>li>ul>div>div><div class="layui-body"><iframe src="" name="main" width=100% height=100% frameborder="0">iframe>div><div class="layui-footer" align="center">Copyright © 2021 RH All Rights Reserveddiv>
div>
<script src="layui/layui.js">script>
<script>//JSlayui.use(['element', 'layer', 'util'], function(){var element = layui.element,layer = layui.layer,util = layui.util,$ = layui.$;//头部事件util.event('lay-header-event', {//左侧菜单事件menuLeft: function(othis){layer.msg('展开左侧菜单的操作', {icon: 0});},menuRight: function(){layer.open({type: 1,content: '处理右侧面板的操作',area: ['260px', '100%'],offset: 'rt' //右上角,anim: 5,shadeClose: true});}});});
script>
body>
html>

(3)用户界面

<%--Created by IntelliJ IDEA.User: RHDate: 2021/8/8Time: 15:55To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><title>title><link rel="stylesheet" href="layui/css/layui.css">
head>
<body>
<div class="layui-layout layui-layout-admin"><div class="layui-header"><div class="layui-logo layui-hide-xs layui-bg-black">蟹堡王餐厅前台点餐系统div><ul class="layui-nav layui-layout-left"><li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-header-event="menuLeft"><i class="layui-icon layui-icon-spread-left">i>li>ul><ul class="layui-nav layui-layout-right"><li class="layui-nav-item layui-hide layui-show-md-inline-block"><a href="javascript:;"><img src="${sessionScope.user.imgPath}" class="layui-nav-img">${sessionScope.user.userName}a><dl class="layui-nav-child"><dd><a href="signout">Sign outa>dd>dl>li>ul>div><div class="layui-side layui-bg-black"><div class="layui-side-scroll"><ul class="layui-nav layui-nav-tree" lay-filter="test"><li class="layui-nav-item"><a href="UserInformation.jsp" target="main">个人信息a>li><li class="layui-nav-item"><a href="cartTest.jsp" target="main">点单a>li><li class="layui-nav-item"><a href="show.jsp" target="main">查看购物车a>li>ul>div>div><div class="layui-body"><iframe src="" name="main" width=100% height=100% frameborder="0">iframe>div><div class="layui-footer" align="center">Copyright © 2021 RH All Rights Reserveddiv>
div>
<script src="layui/layui.js">script>
<script>//JSlayui.use(['element', 'layer', 'util'], function(){var element = layui.element,layer = layui.layer,util = layui.util,$ = layui.$;//头部事件util.event('lay-header-event', {//左侧菜单事件menuLeft: function(othis){layer.msg('展开左侧菜单的操作', {icon: 0});},menuRight: function(){layer.open({type: 1,content: '处理右侧面板的操作',area: ['260px', '100%'],offset: 'rt' //右上角,anim: 5,shadeClose: true});}});});
script>
body>
html>

(六)登出功能

在UserController新增signout()方法:

@Controller
public class UserController {@Autowiredprivate UserServiceI userServiceI;@Autowiredprivate ResultMap resultMap;@RequestMapping("/login")@ResponseBodypublic ResultMap login(String userName, String userPsd, String captcha , HttpSession session) {try {int authority=userServiceI.login(userName,userPsd,captcha,session);resultMap.setStatus(true);resultMap.setAuthority(authority);} catch (Exception e) {resultMap.setStatus(false);resultMap.setMessage(e.getMessage());}return resultMap;}@RequestMapping("/register")@ResponseBodypublic ResultMap insertUserregister(String userName,String userPsd,String sex){try{userServiceI.insertUserregister(userName,userPsd,sex);resultMap.setStatus(true);}catch (Exception e){resultMap.setStatus(false);resultMap.setMessage(e.getMessage());}return resultMap;}@RequestMapping("/signout")public String signout(HttpSession session) {session.invalidate();return "login";}}

(七)拦截器

为了防止用户未登录即可访问主页,需要设置拦截器。
新建IndexFilter、Index1Filter、Index2Filter,拦截访问index、index1、index2的请求
IndexFilter:

@WebFilter("/index.jsp")
public class IndexFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest req= (HttpServletRequest) servletRequest;HttpServletResponse resp= (HttpServletResponse) servletResponse;HttpSession session=req.getSession();User user= (User) session.getAttribute("user");if(user == null){req.getRequestDispatcher("login.jsp").forward(req, resp);}else {filterChain.doFilter(req, resp);}}@Overridepublic void destroy() {}
}

Index1Filter:

@WebFilter("/index1.jsp")
public class Index1Filter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest req= (HttpServletRequest) servletRequest;HttpServletResponse resp= (HttpServletResponse) servletResponse;HttpSession session=req.getSession();User user= (User) session.getAttribute("user");if(user == null){req.getRequestDispatcher("login.jsp").forward(req, resp);}else {filterChain.doFilter(req, resp);}}@Overridepublic void destroy() {}
}

Index2Filter:

@WebFilter("/index2.jsp")
public class Index2Filter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest req= (HttpServletRequest) servletRequest;HttpServletResponse resp= (HttpServletResponse) servletResponse;HttpSession session=req.getSession();User user= (User) session.getAttribute("user");if(user == null){req.getRequestDispatcher("login.jsp").forward(req, resp);}else {filterChain.doFilter(req, resp);}}@Overridepublic void destroy() {}
}

至此为止,注册、登录与主页已经完全实现。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部