详解SpringMVC的url-pattern配置及原理剖析

 更新时间:2020年06月16日 08:32:33   作者:易水寒的博客  
这篇文章主要介绍了SpringMVC的url-pattern配置及原理剖析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

xml里面配置标签:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
 <display-name>Archetype Created Web Application</display-name>

 <servlet>
 <servlet-name>springmvc</servlet-name>
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 <init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:springmvc.xml</param-value>
 </init-param>
 </servlet>
 <servlet-mapping>
 <servlet-name>springmvc</servlet-name>

 <!--
  方式一:带后缀,比如*.action *.do *.aaa
    该种方式比较精确、方便,在以前和现在企业中都有很大的使用比例
  方式二:/ 不会拦截 .jsp,但是会拦截.html等静态资源(静态资源:除了servlet和jsp之外的js、css、png等)

   为什么配置为/ 会拦截静态资源???
    因为tomcat容器中有一个web.xml(父),你的项目中也有一个web.xml(子),是一个继承关系
      父web.xml中有一个DefaultServlet, url-pattern 是一个 /
      此时我们自己的web.xml中也配置了一个 / ,覆写了父web.xml的配置
   为什么不拦截.jsp呢?
    因为父web.xml中有一个JspServlet,这个servlet拦截.jsp文件,而我们并没有覆写这个配置,
    所以springmvc此时不拦截jsp,jsp的处理交给了tomcat


   如何解决/拦截静态资源这件事?


  方式三:/* 拦截所有,包括.jsp
 -->
 <!--拦截匹配规则的url请求,进入springmvc框架处理-->
 <url-pattern>/</url-pattern>
 </servlet-mapping>
</web-app>

父xml的路径:

我们配置的springmvc.xml只能对jsp进行拦截,但不能对html等进行拦截,我们在webapp下新建个test.html

然后访问:

原因是没有对html等静态资源后缀进行处理的handle.

我们在springmvc.xml里面配置:

<mvc:default-servlet-handler/>

访问:

继续测试:

如果我们将html页面放在webapp以外的其他位置,都是无法访问的:

那如果我们想让静态资源在resources下面访问,我们应该怎么配置呢?

静态资源配置方案二

将test.html放在resources目录下面,然后配置springmvc.xml:

 <!--静态资源配置,方案二,SpringMVC框架自己处理静态资源
  mapping:约定的静态资源的url规则
  location:指定的静态资源的存放位置
 -->
 <mvc:resources location="classpath:/" mapping="/resources/**"/>

resources目录就是咱们的classpath路径。

访问:

http://localhost:8080/resources/test.html

到此这篇关于详解SpringMVC的url-pattern配置及原理剖析的文章就介绍到这了,更多相关SpringMVC的url-pattern配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • Spring Boot + Spring Batch 实现批处理任务的详细教程

    Spring Boot + Spring Batch 实现批处理任务的详细教程

    这篇文章主要介绍了Spring Boot+Spring Batch实现批处理任务,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • Spring Boot Admin 快速入门详解

    Spring Boot Admin 快速入门详解

    这篇文章主要介绍了SpringBoot Admin 使用指南(推荐),Spring Boot Admin 是一个管理和监控你的 Spring Boot 应用程序的应用程序,非常具有实用价值,需要的朋友可以参考下
    2021-11-11
  • 详解Java编程中的策略模式

    详解Java编程中的策略模式

    这篇文章主要介绍了详解Java编程中的策略模式,以及用策略模式来分析源码等内容,需要的朋友可以参考下
    2015-08-08
  • Mybatis-plus自定义SQL注入器查询@TableLogic逻辑删除后的数据详解

    Mybatis-plus自定义SQL注入器查询@TableLogic逻辑删除后的数据详解

    这篇文章主要给大家介绍了关于Mybatis-plus自定义SQL注入器查询@TableLogic逻辑删除后的数据的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-03-03
  • 解决mybatis resultMap根据type找不到对应的包问题

    解决mybatis resultMap根据type找不到对应的包问题

    这篇文章主要介绍了解决mybatis resultMap根据type找不到对应的包问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java中JFinal框架动态切换数据库的方法

    Java中JFinal框架动态切换数据库的方法

    这篇文章主要介绍了Java中JFinal框架动态切换数据库的方法,本文通过两种方法结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • springcloud部署提示 找不到url的解决

    springcloud部署提示 找不到url的解决

    这篇文章主要介绍了springcloud部署提示 找不到url的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。
    2022-01-01
  • spring aop 拦截业务方法,实现权限控制示例

    spring aop 拦截业务方法,实现权限控制示例

    这篇文章主要介绍了spring aop 拦截业务方法,实现权限控制示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-01-01
  • springboot整合netty框架的方式小结

    springboot整合netty框架的方式小结

    Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,这篇文章主要介绍了springboot整合netty框架的方式小结,需要的朋友可以参考下
    2022-06-06
  • 基于jstl 标签的使用介绍

    基于jstl 标签的使用介绍

    本篇文章小编为大家介绍,基于jstl 标签的使用介绍,需要的朋友参考下
    2013-04-04

最新评论