SpringMVC的拦截器的使用

来源:互联网 发布:免费同声翻译软件 编辑:程序博客网 时间:2024/05/16 01:41

对所有的请求进行拦截,如果没有登录就返回到登录页面,简单的SpringMVC的拦截器的使用案例


1、继承HandlerInterceptor的登录拦截器

import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;public class LoginInterceptor implements HandlerInterceptor {    @Override    public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)            throws Exception {        // TODO Auto-generated method stub    }    @Override    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)            throws Exception {        // TODO Auto-generated method stub    }    @Override    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {        // TODO Auto-generated method stub        //判断当前访问路径是否为登录的路径,如果是则放行        if(request.getRequestURI().indexOf("/login")>0){            return true;        }        //判断session中是否有登录信息,如果没有则跳转到登录界面,如果有则执行        HttpSession session=request.getSession();        if(session.getAttribute("username") !=null){            return true;        }        request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);        return false;    }}

springmvc.xml中的配置

<mvc:interceptors>        <mvc:interceptor>            <!-- 拦截请求的路径    要拦截所有必需配置成/** -->            <mvc:mapping path="/**"/>            <!-- 指定拦截器的位置 -->            <bean class="com.interceptor.LoginInterceptor"></bean>        </mvc:interceptor>    </mvc:interceptors>
原创粉丝点击