SpringMVC 之 mvc:exclude-mapping 不拦截某个请求
本文内容纲要:
在使用SpringMVC是,配置了一个Session拦截器,用于拦截用户是否登录,但是用户访问登录页面和注册页面时就不需要拦截了,这时就需要用到这个标签了<mvc:execlude-mapping/>。
代码上来先:
<!--配置用于session验证的拦截器--> <!-- 如果有多个拦截器满足拦截处理的要求,则依据配置的先后顺序来执行 --> <mvc:interceptors> <mvc:interceptor> <!--拦截所有的请求,这个必须写在前面,也就是写在【不拦截】的上面--> <mvc:mappingpath="/**"/> <!--但是排除下面这些,也就是不拦截请求--> <mvc:exclude-mappingpath="/login.html"/> <mvc:exclude-mappingpath="/account/login.do"/> <mvc:exclude-mappingpath="/account/regist.do"/> <beanclass="com.msym.cloudnote.interceptors.SessionInterceptor"/> </mvc:interceptor> </mvc:interceptors>
有一点要注意:
就是上面的【拦截】和【不拦截】,【拦截】的标签要写在上面。
拦截器的代码:
packagecom.msym.cloudnote.interceptors; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importjavax.servlet.http.HttpSession; importorg.springframework.web.servlet.HandlerInterceptor; importorg.springframework.web.servlet.ModelAndView; /** *判断是否登录的拦截器 *@author码上猿梦 *http://www.cnblogs.com/daimajun/ */ publicclassSessionInterceptorimplementsHandlerInterceptor{ publicvoidpostHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler, ModelAndViewmodelAndView)throwsException{ } publicvoidafterCompletion(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,Exceptionex) throwsException{ } publicbooleanpreHandle(HttpServletRequestreq,HttpServletResponseres,Objecthandel)throwsException{ HttpSessionsession=req.getSession(); //从session当中获取特定的数据 Objectobj=session.getAttribute("name"); if(obj==null){ //未登录,重定向到登录页面 res.sendRedirect(req.getContextPath()+"/login.html"); returnfalse; } //已登录,继续向后调用 returntrue; } }
本文内容总结:
原文链接:https://www.cnblogs.com/daimajun/p/7172208.html