首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在spring MVC中绕过某些不调用dispatcher servelet的url模式

在Spring MVC中,可以通过配置URL模式来决定哪些URL请求会被DispatcherServlet处理,而哪些URL请求会被绕过。以下是在Spring MVC中绕过某些不调用DispatcherServlet的URL模式的方法:

  1. 使用静态资源处理器(ResourceHandler):可以通过配置静态资源处理器来绕过DispatcherServlet。静态资源包括图片、CSS、JavaScript等文件,它们通常不需要经过后端处理,直接返回给客户端即可。在Spring MVC中,可以通过配置WebMvcConfigurer的addResourceHandlers方法来实现静态资源的绕过。

示例代码:

代码语言:java
复制
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**")
                .addResourceLocations("classpath:/static/");
    }
}

上述代码中,配置了一个静态资源处理器,将以/static/开头的URL请求映射到classpath下的/static/目录中的静态资源文件。

  1. 使用URL匹配规则(UrlRewrite):可以通过配置URL匹配规则来绕过DispatcherServlet。URL匹配规则可以根据URL的模式进行匹配,并决定是否绕过DispatcherServlet。在Spring MVC中,可以使用第三方库如UrlRewriteFilter来实现URL的重写和匹配规则的配置。

示例代码:

代码语言:xml
复制
<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

上述代码中,配置了一个UrlRewriteFilter,将所有URL请求都交给该过滤器处理,然后在UrlRewriteFilter的配置文件中定义URL的匹配规则。

  1. 使用Servlet过滤器(Filter):可以通过配置Servlet过滤器来绕过DispatcherServlet。Servlet过滤器可以在请求到达DispatcherServlet之前对URL进行处理,从而决定是否绕过DispatcherServlet。在Spring MVC中,可以通过实现javax.servlet.Filter接口来自定义过滤器,并在web.xml中进行配置。

示例代码:

代码语言:java
复制
public class MyFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest httpRequest = (HttpServletRequest) request;
        String url = httpRequest.getRequestURI();
        
        // 判断URL是否需要绕过DispatcherServlet
        if (url.startsWith("/bypass")) {
            // 绕过DispatcherServlet,直接返回响应
            chain.doFilter(request, response);
        } else {
            // 交给DispatcherServlet处理
            request.getRequestDispatcher("/").forward(request, response);
        }
    }
    
    // 其他方法省略...
}

上述代码中,自定义了一个过滤器MyFilter,根据URL的模式判断是否需要绕过DispatcherServlet。如果URL以/bypass开头,则绕过DispatcherServlet,直接返回响应;否则,将请求转发给DispatcherServlet处理。

综上所述,以上是在Spring MVC中绕过某些不调用DispatcherServlet的URL模式的几种方法。根据具体的需求和场景,可以选择合适的方法来实现URL的绕过。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一篇SSM框架整合友好文章(三)

运行流程图: 通过mvc配置文件,配置“中央处理器”dispatchservlet,当用户请求一个url,dispatchservlet通过handlerMapping(通过注解形式)将url给对应...http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http...--1:开启springMVC注解模式--> <!...实现 通过@Controller 注解将controller注入到spring ioc @RequestMapping url映射 model用来存放数据。...本系列文章到此结束,它属于我学习完秒杀api课程一个总结,由于个人水平和精力有限,并不能做到面面俱到,也没有深入讲解SSM这个框架,再未来三到四个月里,我会不断学习,j2ee框架,servelet

1K60

Struct2系列漏洞

Struct2是什么 这里摘自互联网上一段解释:Struts2是一个基于MVC设计模式Web应用框架,它本质上相当于一个servlet,在MVC设计模式,Struts2作为控制器(Controller...很多年前Struts2 + Spring + Hibernate 三大框架一起组成了 “SSH”,但现在正在被Spring + Spring MVC/ Spring Boot + MyBatis新三剑客...struct2OGNL%与$:(struct2OGNL通常是以这两个符号开始): %:其可以取出存在值valueStackaction对象,:%{getkey(‘key’)} $:在struct2...#调用OGNL来创建java.lang相关类对象来进行命令执行 s2-005命令执行 官方修补通过屏蔽’#’来修复001,同时禁止静态方法调用和类方法执行,但我们可以通过Unicode编码方式来绕过...- 链接包含请求任意参数值(默认) get - 链接只包含 GET 请求参数和其值 all - 链接包含 GET 和 POST 所有参数和其值 用来显示一个超链接,当includeParams

1.4K21
  • Java大数据入门:Spring MVC框架原理

    事实上,MVC是一种软件设计模式Spring并非唯一MVC框架。但是在这些年发展当中,Spring MVC确实提供了非常不错实践。...MVC框架出现,实际上是为了解决传统MVC模式(Jsp+Servlet+JavaBean)一些问题,比如: ①所有的Servlet和Servlet映射都要配置在web.xml,如果项目太大,web.xml...②Servlet主要功能就是接受参数、调用逻辑、跳转页面,比如像其他字符编码、文件上传等功能也要写在Servlet,不能让Servlet主要功能而需要做处理一下特例。...用户请求到达前端控制器,它就相当于MVC模式C,dispatcher Servlet是整个流程控制中心,由它调用其它组件处理用户请求,dispatcher Servlet存在降低了组件之间耦合性...Handler Mapping负责根据用户请求url找到Handler即处理器,Spring MVC提供了不同映射器实现不同映射方式,根据一定规则去查找,例如:xml配置方式,实现接口方式,注解方式等

    1.4K20

    Spring MVC【入门】就这一篇!

    ,然后根据请求调用相应 Java Bean,并把所有的显示结果交给 JSP 去完成,这样模式我们就称为 MVC 模式。...扩展阅读:Web开发模式 Spring MVC 架构 为解决持久层中一直未处理好数据库事务编程,又为了迎合 NoSQL 强势崛起,Spring MVC 给出了方案: 传统模型层被拆分为了业务层...后台控制器来处理,改完之后: dispatcher /</url-pattern...元素配置 dispatcher 对应,这是 Spring MVC 映射配置文件(xxx-servlet.xml),我们编辑如下: <?...注意:此时配置仅是 dispatcher-servlet.xml 下 ---- 控制器接收请求数据 使用控制器接收参数往往是 Spring MVC 开发业务逻辑第一步,为探索 Spring MVC

    1.7K80

    SSH框架(三) 常用WEB框架Struts1、Struts2和Spring MVC三者区别

    /* 4 编写action请求处理类.可以继承struts2 ActionSupport也可以继承...7、ActionInvocation实例使用命名模式调用,在调用Action过程前后,涉及到相关拦截器(Intercepter)调用。 ...spring mvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上spring3 mvc就容易实现restful url。...spring3 mvc方法之间基本上独立,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架方法之间共享变量,而struts2搞就比较乱,虽然方法之间也是独立...Struts2.X和Spring MVC很多地方相似,标签实现,Struts2.X标签虽然灵活,但jstl实现起来,差不多。

    1K20

    Spring,Spring MVCSpring Boot区别

    Spring MVCSpring一部分,Spring 出来以后,大家觉得很好用,于是按照这种模式设计了一个 MVC框架(一些用Spring 解耦组件),主要用于开发WEB应用和网络接口,它是Spring...一个模块,通过Dispatcher Servlet, ModelAndView 和 View Resolver,让应用开发变得很容易,一个典型Spring MVC应用开发分为下面几步: 首先通过配置文件声明...>/ 通过配置文件声明servlet详情,MVC resource,data source,bean等 <mvc:resources...WEB方案层出穷,基于Python或Node.Js,几行代码就能实现一个WEB服务器,对比起来,大家渐渐觉得Spring那一套太过繁琐,此时,Spring社区推出了Spring Boot,它目的在于实现自动配置...一样支持 在Spring Boot,你会发现你引入所有包都是starter形式,spring-boot-starter-web-services,针对SOAP Web Services spring-boot-starter-web

    72510

    老师问我 Spring MVC 工作流程

    SSM系列文章 学会Spring正确姿势! 万万没想到!Bean还有这么多东西 SpringAOP! 聊聊Spring数据库开发 Spring事务还能这样管理?...Spring MVC概述 什么是Spring MVC? “Spring MVCSpring提供一个实现了Web MVC设计模式轻量级Web框架。.../106-springmvc-hello 在web.xml,配置Spring MVC前端控制器DispatcherServlet。...在实际开发,我们实际工作主要集中在控制器和视图页面上,但Spring MVC内部完成了很多工作,这些程序在项目中具体是怎么执行呢?...(处理器适配器); HandlerAdapter会调用并执行Handler(处理器),这里处理器指就是程序编写Controller类,也被称之为后端控制器; Controller执行完成后,会返回一个

    24320

    Spring Web MVC 基础

    Model1模式基础是JSP,它由JSP和JavaBean组成,JSP从HTTPRequest获取所需要数据,并调用JavaBean进行业务逻辑处理,然后通过HTTPResponse将结果返回给前端浏览器...这种模式下JSP身兼多职,既要负责视图层数据展示,又要负责业务流程控制,结构较为混乱,也不是我们所希望松耦合架构,所以在大型项目中或者当业务流程比较复杂时候建议这样做。...这种模式就是JSP Model2,即JSP+Servlet+JavaBean,也就是典型MVC设计模式。...原则 开放扩展,封闭修改;Spring Web MVC 核心类某些方法标记为final。作为开发人员,您不能覆盖这些方法来提供自己行为。这不是随意进行,而是要牢记这一原则。...业务处理器调用模型层处理完用户请求后,把结果数据存储在该类model属性,把要返回视图信息存储在该类view属性,然后让该ModelAndView返回该Spring MVC框架。

    49310

    最新SpringMVC面试题精选

    请求参数接收方式不一样。Spring MVC是使用方法形参接收请求参数,基于方法开发,线程安全,可以设计为单例或者多例开发,推荐使用单例模式开发(执行效率更高),默认就是单例开发模式。...,仅当request请求头中(Accept)类型包含该指定类型才返回; params: 指定request必须包含某些参数值是,才让该方法处理。...Spring MVC运用 3.1 Spring MVC怎么样设定重定向和转发? 转发: 在返回值前面加"forward:" :“forward:user.do?...name=method4” 重定向: 在返回值前面加"redirect:", :“redirect:http://www.baidu.com” 3.2 Spring MVC怎么和AJAX相互调用...3.6 如何在方法里面得到Request,或者Session? 直接在方法形参声明request,Spring MVC就自动把request对象传入。

    1.9K20

    SSM第七讲 SpringMVC概述和基础知识详解

    使用 Spring 可插入 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用SpringSpring MVC框架或集成其他MVC开发框架,Struts1(现在一般不用),[Struts...MVC和三层架构 MVC模式(Model-View-Controller)是软件工程一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)...其中 web层相当于mvcview+controller,Service层和dao层相当于mvcmodel。 ? 3....RESTFUL 所谓路径变量,就是将参数放在路径里面,而不是放在?后面 :原get请求方法 /login.mvc?...默认参数绑定是表单数据,如果数据不是来自表单(restful),那么必须需要强制绑定 b. 数据是来自表单,但是参数名匹配,那么也需要强制绑定 c.

    1.3K20

    SpringMvc学习-环境搭建

    1.SpringMVC简介 spring Web MVC是一种基于Java实现了Web MVC设计模式请求驱动类型轻量级Web框架,即使用了MVC架构模式思想,将web层进行职责解耦,基于请求驱动指就是使用请求...另外还有一种基于组件、事件驱动Web框架在此就不介绍了,Tapestry、JSF等。 Spring Web MVC也是服务到工作者模式实现,但进行可优化。...模型-视图-控制器(MVC)是一个众所周知以设计界面应用程序为基础设计模式。它主要通过分离模型、视图及控制器在应用程序角色将业务逻辑从界面解耦。通常,模型负责封装应用程序数据在视图层展示。...2.SpringMVC框架 在最简单Spring MVC应用程序,控制器是唯一你需要在Java web部署描述文件(即web.xml文件)配置Servlet。...Spring MVC控制器 ——通常称作Dispatcher Servlet,实现了前端控制器设计模式。并且每个web请求必须通过它以便它能够管理整个请求生命周期。

    81370
    领券