SpringMVC 自定义拦截器

来源:互联网 发布:js解决跨域问题 编辑:程序博客网 时间:2024/05/16 23:50

后台代码

package com.interceptor;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;//实现HandlerInterceptor接口public class SpringMVCInterceptor implements HandlerInterceptor {    @Override    public void afterCompletion(HttpServletRequest request,            HttpServletResponse response, Object arg2, Exception arg3)            throws Exception {    }    @Override    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,            Object arg2, ModelAndView arg3) throws Exception {    }@Overridepublic boolean preHandle(HttpServletRequest request,            HttpServletResponse response, Object handle) throws Exception {            //如果用户的请求中有login的话就直接通过if (request.getRequestURL().indexOf("login") >= 0) {            return true;        }//如果用户登陆成功的话,从session中拿到对象,才通过if (request.getSession().getAttribute("username") != null) {            return true;        }//如果用直接要查询的话就可以直接到登录界面request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request,response);        return false;    }}

Spring-MVC.xml中配置信息

<mvc:interceptors>        <mvc:interceptor>            <mvc:mapping path="/**" />            <bean class="com.interceptor.SpringMVCInterceptor"></bean>        </mvc:interceptor>    </mvc:interceptors>

jsp界面测试

    <!-- 直接用超链接测试 -->    <a href="rcy/tologin.action">到登录界面</a>    <br />    <a href="rcy/success.action">到登陆成功界面</a>