文章目录

  • 前言`
  • 一、Tomcat中的war包路径
  • 二、url-pattern
  • 三、Tomcat中部署路径
  • 四、idea中对应路径的映射和匹配
  • 五、注意事项



前言`

SpringMVC的请求过程:
1、浏览器发送请求,若请求地址符合前端控制器的url-pattern,该请求就会被前端控制器DispatcherServlet处理。
2、前端控制器会读取SpringMVC的核心配置文件,通过扫描组件找到控制器,将请求地址和控制器中@RequestMapping注解的value属性值进行匹配,
3、若匹配成功,该注解所标识的控制器方法就是处理请求的方法。处理请求的方法需要返回一个字符串类型的视图名称,
4、该视图名称会被视图解析器解析,加上前缀和后缀组成视图的路径,通过Thymeleaf对视图进行渲染,最终转发到视图所对应页面。


一、Tomcat中的war包路径

war包是一个Web应用程序,一个web程序进行打包便于部署的压缩包,里面有许多我们web程序所需要的东西,例如:jar包依赖、.xml配置文件、前端文件等。它是直接放到tomcat的webapps目录下面,直接启动tomcat就可以。

二、url-pattern

1、<url_pattern>/<url_pattern>会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
2、<url_pattern>/*<url_pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,.jsp,.js和.html等)

三、Tomcat中部署路径

先部署war包,下面那个可以自己命名叫做应用上下文。

springmvc目录遍历漏洞_springmvc目录遍历漏洞


Tomcat里面的url访问路径,8080/后面的这个必须是上面我们自己命名的应用上下文,后面我们都是以这个作为参考位置。

springmvc目录遍历漏洞_java_02

四、idea中对应路径的映射和匹配

先打开web.xml中写命名和定制Url

springmvc目录遍历漏洞_spring_03


当请求路径与url-pattern对应上时,通过扫描组件找到控制器,将请求地址和控制器中@RequestMapping注解的value属性值进行匹配。

springmvc目录遍历漏洞_idea_04

五、注意事项

当我们tomcat中url修改后,但url-pattern没改依旧是“/”时

springmvc目录遍历漏洞_spring_05

他仍然可以继续访问,因为<url_pattern>/<url_pattern>会匹配到/param这样的路径型url

但是:

如果我们把url-pattern修改后

springmvc目录遍历漏洞_spring_06

我们如果tomcat依旧这样写就会报错,找不到资源。因为对应不上。

springmvc目录遍历漏洞_spring_07


所以我们只能这样写才能匹配上。

springmvc目录遍历漏洞_spring_05