springMvc实现拦截特定请求判断用户是否登录


流程:

新建一个拦截器,配置拦截哪些,放行哪些

在spring servrt中配置拦截器

 <!--配置拦截器-->
    <mvc:interceptors>        
        <!--登录拦截器-->
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <!--排除静态资源,不然不登录就不能显示效果-->
            <mvc:exclude-mapping path="/static/**"/>
            <mvc:exclude-mapping path="/static/imgs/**"/>
            <bean class="com.hs.intercepter.LoginInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>
servert中配置拦截器,注意静态资源的处理

 

 

对于一个新闻站点来说除了评论功能其他请求都不用拦截

所以试着给springmvc框架增加一个用户登录的拦截功能

0基础需要明白

登录拦截是怎么实现的

由谁实现拦截

在哪里配置

用户的登录状态保存在哪里

如何保证密码的安全

 

通过学习大佬们的技术博客,发现实现登录拦截基本上都用到了,只是大家写的都不详细,配置说的也不详细而已

这位大佬没有写明白USER_SESSION_KEY是怎么来的https://www.cnblogs.com/UniqueColor/p/5778199.html

另一个

这位大佬没说他的UserToken是什么东西,无参考价值import com.sgcc.uds.fs.client.UserToken;https://blog.csdn.net/u013147600/article/details/47725699

最终,大佬

https://www.cnblogs.com/limn/p/8733126.html

解决问题

那这样的话,看起来就简单了

经过查询

HandlerInterceptor接口主要定义了三个方法:

1. boolean preHandle (HttpServletRequest request, HttpServletResponse response, Object handle)方法:该方法将在请求处理之前进行调用,只有该方法返回true,才会继续执行后续的Interceptor和Controller,当返回值为true 时就会继续调用下一个Interceptor的preHandle 方法,如果已经是最后一个Interceptor的时候就会是调用当前请求的Controller方法;

 

2. void postHandle (HttpServletRequest request, HttpServletResponse response, Object handle, ModelAndView modelAndView)方法:该方法将在请求处理之后,DispatcherServlet进行视图返回渲染之前进行调用,可以在这个方法中对Controller 处理之后的ModelAndView 对象进行操作。(这里可在返回用户前对模型数据进行加工处理,比如这里加入公用信息以便页面显示)

 

3. void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handle, Exception ex)方法:该方法也是需要当前对应的Interceptor的preHandle方法的返回值为true时才会执行,该方法将在整个请求结束之后,也就是在DispatcherServlet 渲染了对应的视图之后执行。用于进行资源清理。

 

 



 

 

如果要登录注册,那就要先新建一个用户类

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM