SpringMVC 之 mvc:exclude-mapping 不拦截某个请求

在使用 SpringMVC 是,配置了一个 Session 拦截器,用于拦截用户是否登录,但是用户访问登录页面和注册页面时就不需要拦截了,这时就需要用到这个标签了 <mvc:execlude-mapping />。

代码上来先:

<!-- 配置用于session验证的拦截器 -->
    <!--
        如果有多个拦截器满足拦截处理的要求,则依据配置的先后顺序来执行
     -->
    <mvc:interceptors>
        <mvc:interceptor>
            <!-- 拦截所有的请求,这个必须写在前面,也就是写在【不拦截】的上面 -->
            <mvc:mapping path="/**" />
            <!-- 但是排除下面这些,也就是不拦截请求 -->
            <mvc:exclude-mapping path="/login.html" />
            <mvc:exclude-mapping path="/account/login.do" />
            <mvc:exclude-mapping path="/account/regist.do" />
            <bean class="com.msym.cloudnote.interceptors.SessionInterceptor" />
        </mvc:interceptor>
    </mvc:interceptors>

有一点要注意:

就是上面的【拦截】和【不拦截】,【拦截】的标签要写在上面。

拦截器的代码:

package com.msym.cloudnote.interceptors;

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;

/**
 * 判断是否登录的拦截器
 * @author 码上猿梦
 *  http://www.cnblogs.com/daimajun/
 */
public class SessionInterceptor  implements HandlerInterceptor {

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {

    }

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {

    }

    public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object handel) throws Exception {
        HttpSession session = req.getSession();
        // 从session当中获取特定的数据
        Object obj = session.getAttribute("name");
        if (obj == null) {
            // 未登录,重定向到登录页面
            res.sendRedirect(req.getContextPath()+"/login.html");
            return false;
        }
        // 已登录,继续向后调用
        return true;
    }
}
时间: 2024-12-28 02:36:49

SpringMVC 之 mvc:exclude-mapping 不拦截某个请求的相关文章

再看SpringMVC是如何通过一个DispatcherServlet拦截http请求的

当然最核心的入口,一切源头: org.springframework.web.servlet.DispatcherServlet 该类的继承关系(使用Idea分析工具)如下:

Spring MVC全局异常处理与拦截器校检

在使用Spring MVC进行开发时,总是要对系统异常和用户的异常行为进行处理,以提供给用户友好的提示,也可以提高系统的安全性. 拦截系统响应错误 首先是拦截系统响应错误,这个可以在web.xml中配置,根据错误代码跳转到相应的提示页面.这里要注意一个问题,错误处理页面所用到的静态资源最好是直接写在页面中,或者同一个文件夹下,因为如果用户访问了一个系统不存在的路径,例如:**/ss/kk/ll/tt.jsp这样就会有404错误就会跳转到相应的处理页面,但是这个处理页面中的静态资源的路径就会变成*

SpringMVC同时使用&lt;mvc:resources … /&gt;和日期转换Formatter时出现问题的解决方法

很久没更新博文了,不是没有学习,而是很多东西记在OneNote里面,收获很多啊,因为各种杂事,所以对于博客很久没更新了. 个人觉得:博客比起OneNote或者为知笔记之类的云笔不同在于博客应该记载的是比较成体系的东西,所以很多东西我准备统一回顾我学到的东西后,再成体系的更新在这里来. 废话说多了,先处理RT的问题. 一.问题由来 在学习SpringMVC的过程中,对于URL的拦截,我使用了RESTful,这是一种在形式上没有动词没有后缀结尾的URL表现形式,利用PUT/POST/DELETE/G

Spring MVC中使用Interceptor拦截器

SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间. 一.定义Interceptor实现类 SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的.在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Intercep

Spring MVC实现的登录拦截器

之前接触过struts拦截器,但是没有使用过Spring MVC拦截器,今天花了一天时间好好研究了一下. 定义拦截器 SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的.在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Interceptor类要实现了Spring 的HandlerInterceptor 接口,或者是这个类继承实现了HandlerInterceptor 接口的类,比如Sp

SpringMVC 的&lt;mvc:resources&gt;使用映射路径展示文件服务器上的图片

<servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value&g

springMVC整理04--文件上传 &amp; 拦截器 &amp; 异常处理

1.  文件上传 SpringMVC 的文件上传非常简便,首先导入文件上传依赖的 jar: 1 <!-- 文件上传所依赖的 jar 包 --> 2 <dependency> 3 <groupId>commons-fileupload</groupId> 4 <artifactId>commons-fileupload</artifactId> 5 <version>1.3.1</version> 6 </

springMVC之mvc:view-controller用法

用法 1.重定向 <mvc:view-controller path="/" view-name="redirect:/admin/index"/> 即如果当前路径是/ 则重定向到/admin/index 2.view name <mvc:view-controller path="/" view-name=admin/index"/> 如果当前路径是/ 则交给相应的视图解析器直接解析为视图 如 <bean

spring mvc No mapping found for HTTP request with URI

问题原因:罪魁祸首是web.xml下对spring的DispatcherServlet请求url映射的配置,原配置如下: <servlet>    <servlet-name>spring</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <load-on-startup>1<

【springMVC】&lt;mvc:annotation-driven /&gt;标签的使用、作用?

不牵扯源码的显式的作用 在使用interceptor时,显式的作用. 这是不配置<mvc:annotation-driven/>标签时的public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler)的第三个参数 这是在配置<mvc:annotation-driven />标签时的public boolean preHandle(HttpServletR