SpringMVC通过拦截器实现登录控制

来源:互联网 发布:淘宝在线代码编辑器 编辑:程序博客网 时间:2024/05/21 08:06

             本文主要介绍通过SpringMVC拦截器实现登录控制,如果用户没有登录,不允许用户跳转到其他页面,服务器自动重新跳转到登录页面。

思路:

1)用户通过指定页面登录,通过session存储登录信息

2)每次访问登陆页以外页面,通过拦截器检查登录状态是否有效


实现:

假设后台目录为/admin/*、登录页面为/admin/toLogin.do;登录session为:loginedsession

springMVC-servlet.xml springMVC配置文件

<!-- 登录拦截器 --><mvc:interceptors>   <mvc:interceptor>     <mvc:mapping path="/admin/*"/> <!-- 拦截路径 -->    <mvc:exclude-mapping path="/admin/toLogin.action"/>  <!-- 排除的拦截路径 -->    <bean class="com.edwin.admin.interceptor.LoginInterceptor"></bean>   </mvc:interceptor> </mvc:interceptors>


LoginInterceptor:
package cn.edwin.admin.interceptor;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import com.chinafesco.wechat.common.CommonConstants;public class LoginedInterceptor implements HandlerInterceptor  {    private final String ADMINSESSION = "loginedsession";  //拦截前处理  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception {    Object sessionObj = request.getSession().getAttribute(ADMINSESSION);    if(sessionObj!=null) {       return true;    }     response.sendRedirect("toLogin.action");    return false;  }  //拦截后处理  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView mav) throws Exception { }  //全部完成后处理  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception e) throws Exception { }}


每次放问/admin/ 目录下都会进入拦截器,检查登录session是否存在,如果不存在跳转至登录页。

部分内容参考 https://wuzhuti.cn/2076.html
0 0
原创粉丝点击