SpringMVC核心之拦截器的应用实践用户登录验证
程序员文章站
2022-07-10 19:36:12
上一篇:10-SpringMVC核心之拦截器与过滤器的不同https://blog.csdn.net/fsjwin/article/details/109635886学习了拦截器,来一把实战。1. 登录成功模拟login.jsp<%@ page contentType="text/html;charset=UTF-8" language="java" %> Title <...
上一篇:10-SpringMVC核心之拦截器与过滤器的不同https://blog.csdn.net/fsjwin/article/details/109635886
学习了拦截器,来一把实战。
1. 登录成功模拟login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
session 登录成功
<%
//把name=yuhl放入session中
session.setAttribute("name", "yuhl");
%>
</body>
</html>
2. 登录登出模拟logout.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
session 登出成功
<%
//把name=yuhl从session中删除
session.removeAttribute("name");
%>
</body>
</html>
3. 拦截器配置springmvc.xml
<mvc:interceptors>
<mvc:interceptor>
<!--** 表示多级目录和 目录中的文件-->
<mvc:mapping path="/**"/>
<!--声明拦截器-->
<bean class="com.yuhl.handler.MyHandlerIntercepter"></bean>
</mvc:interceptor>
<!--<mvc:interceptor>
<!–** 表示多级目录和 目录中的文件–>
<mvc:mapping path="/**"/>
<!–声明拦截器–>
<bean class="com.yuhl.handler.MyHandlerIntercepter2"></bean>
</mvc:interceptor>-->
</mvc:interceptors>
4. 拦截器方法实现MyHandlerIntercepter
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String name = request.getParameter("name");
//如果不是yuhl登录就跳转到页面提示用户
if (!"yuhl".equals(name)) {
request.getRequestDispatcher("/tips.jsp").forward(request,response);
return false;
}
return true; //返回false就不会执行controller控制器的执行。
}
5. 测试
-
点击登录
-
先登录成功
-
重新登录
登录成功! -
登出成功
-
重新登录失败
6. 测试
登录成功后会把name放入session中,拦截器的作用就是监测session中有么有name属性,如果有则认为session失效范围内用户已登录。否则需要重新登录。
需要从方法论的高度看待这个应用实例,知道拦截器的经典应用场景。
下一篇:12-SpringMVC的执行流程https://blog.csdn.net/fsjwin/article/details/109636887
本文地址:https://blog.csdn.net/fsjwin/article/details/109636325
上一篇: 几个技巧 教你用手机也能拍摄好看的图片