今天给各位分享拦截器实现登录验证方法详解的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
* 自定义登录拦截器
* @作者何田田
* @版本2017/11/6。
*/
公共类LoginInterceptor 实现HandlerInterceptor {
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) 抛出异常{
//根据用户是否有登录账号进行拦截
//如果有则跳转到需要验证的控制层,否则需要登录
对象管理员=httpServletRequest.getSession().getAttribute("loginAccount");
if (管理员==null) {
System.out.println("尚未登录,跳转至登录页面");
httpServletResponse.sendRedirect("/login.html");
返回假;
}
返回真;
}
公共无效postHandle(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,对象o,ModelAndView modelAndView)抛出异常{
System.out.println("postHandle");
}
公共无效afterCompletion(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,对象o,异常e)抛出异常{
System.out.println("afterComplete");
}
}HandlerInterceptor接口中方法详细说明
1)preHandle(HttpServletRequest请求,HttpServletResponse响应,对象句柄)方法。该方法在请求处理之前被调用。 SprigMVC 中的拦截器调用都是链式的。一个应用程序或一个请求中可以同时存在多个拦截器。每个拦截器的调用都会按照声明的顺序依次执行,拦截器会先执行。 preHandle方法,因此可以在该方法中执行一些初始化操作或预处理当前请求。您还可以在该方法中进行一些判断,以决定请求是否应该继续执行。如果该方法返回false,则表示请求结束。后续的拦截器和控制器将不会继续执行。当返回true 时,将调用下一个拦截器的preHandle() 方法。如果是最后一个拦截器,则会调用当前请求的Controller方法。
2)postHandle(HttpServletRequest请求,HttpServletResponse响应,对象句柄,ModelAndView modelAndView)方法。只有当前对应拦截器的preHandle方法的返回值为true时才会执行该方法。执行控制器方法调用后,在调度程序返回视图并渲染它之前调用它。所以你可以在这个方法中对控制器处理的modelview对象进行操作。 postHandle方法的调用方向与preHandle相反,也就是说先声明的Interceptor的postHandle方法会在后面执行。这有点类似于Struts2中Interceptor的执行过程。 Struts2中Interceptor的执行过程也是链式的,只不过在Struts2中需要手动调用ActionInitation的invoke方法来触发对下一个Interceptor或Action的调用,然后每个Interceptor中的invoke方法之前的内容按照声明是按顺序执行的,invoke方法后面的内容是相反的。
3)afterCompletion(HttpServletRequest请求,HttpServletResponse响应,对象句柄,异常ex)方法。只有当前对应拦截器的preHandle方法的返回值为true时才会执行该方法。直到整个请求完成,即DispatcherServlet渲染出相应的视图之后,才会执行该方法。该方法的主要作用是清理资源。类似于Filter中的destroy()方法
关于拦截器实现登录验证方法详解,的介绍到此结束,希望对大家有所帮助。
【拦截器实现登录验证方法详解】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我一直在研究拦截器,这篇文章正好说到我的痛点!
有11位网友表示赞同!
登录验证这么重要,使用 Interceptor 做起来会不会更方便?
有6位网友表示赞同!
想知道文章会讲到什么具体的验证方式?
有11位网友表示赞同!
感觉用 Interceptor 实现登录验证,代码风格应该会更整齐。
有10位网友表示赞同!
这篇文章能帮我解决一些开发中遇到的问题吗?我很期待!
有19位网友表示赞同!
终于有人写了关于 Interceptor 登录验证的文章了,感谢分享!
有15位网友表示赞同!
以前我没用过 Interceptor,通过这篇文章我应该能有所了解了。
有16位网友表示赞同!
想看看文章里有没有其他拦截器应用的例子。
有11位网友表示赞同!
学习一下使用 interceptor 实现登录验证的安全策略吧!
有10位网友表示赞同!
看来我的项目也需要考虑使用 Interceptor 来加强安全性。
有16位网友表示赞同!
这篇文章是不是适合各个框架都可以用?
有16位网友表示赞同!
Interceptor 对于新手来说是不是比较难理解呢?
有9位网友表示赞同!
文章里会不会提供一些示例代码,方便学习和参考。
有5位网友表示赞同!
我更喜欢看一些实际案例的应用场景,比如具体的登录流程。
有9位网友表示赞同!
如果有人已经用 Interceptor 实现过登录验证,可以分享一下经验吗?
有11位网友表示赞同!
这篇文章能帮助我提高项目的安全性吗?我很关心这个问题!
有6位网友表示赞同!
我想知道如何调试拦截器的代码,文章里有没有讲到方法?
有5位网友表示赞同!
我觉得学习 Interceptor 的时候,基础的Java知识很重要吧?
有14位网友表示赞同!
如果用Interceptor实现登录验证,代码是不是会比较复杂呢?
有14位网友表示赞同!
我平时开发的时候,很少用到拦截器,这篇文章能让我拓宽视野!
有17位网友表示赞同!