SpringMVC拦截器例子
1 界面登录验证
1.1 准备工作
1.1.1 导入servlet-api依赖
org.apache.tomcatservlet-api6.0.53
1.1.2 创建员工控制类(EmpController类)
package com.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpSession;
@Controller
@RequestMapping("emps")
public class EmpController {@RequestMapping("find")public String find(){System.out.println("查询员工");return "index";}@RequestMapping("delete")public String delete(){System.out.println("删除员工");return "index";}@RequestMapping("add")public String add(){System.out.println("添加员工");return "index";}
}
1.2 在EmpController类里面创建登录和注销方法
//注意:登录后要把用户保存在session域中,注销后需要session域中的相关数据给清除掉
@RequestMapping("login")public String login(HttpSession session){session.setAttribute("users", "张三");return "index";}
@RequestMapping("logout")public String logout(HttpSession session){session.removeAttribute("users");return "index";}
1.3 创建登录拦截类(LoginInterceptor)
package com.interceptor;import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class LoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {Object users = request.getSession().getAttribute("users");if(users==null){System.out.println("被登录拦截器拦截了");request.setAttribute("msg", "请先登录");request.getRequestDispatcher("/index.jsp").forward(request, response);return false;}return true;}
}
1.4 在主配置文件SpringMvc2.xml里面进行拦截器的配置
1.5 编写首页index.jsp页面
<%--Created by IntelliJ IDEA.User: SSS翱翔万里Date: 2022/11/13Time: 15:52To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
进入了首页
消息:${msg}
${users==null ?'未登录':'已登录 用户:'}${users}登录注销
查询用户删除用户添加用户
1.6 测试运行截图
1.6.1 未登录时点击删除用户
a 点击前

b 点击后

c 控制台信息截图

1.6.2 已登录时点击删除用户
a 点击前

b 点击后

c 控制台信息截图

1.6.3 未登录时点击查询用户
a 点击前

b 点击后
![在这里插入图片描述]()
c 控制台信息截图

1.6.4 已登录时点击查询用户
a 点击前

b 点击后

c 控制台信息截图

1.6.5 未登录时点击添加用户
a 点击前

b 点击后

c 控制台信息截图

1.6.6 已登录时点击添加用户
a 点击前

b 点击后

c 控制台信息截图
