请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

DispatcherServlet的路径设置问题

老师,在自研框架里面,路径设置的是 /*
而在源码的项目里面设置的 /
我把源码里面的设置成/ * 后测试/headline/add,或者是直接请求jsp也是可以的,但平常在项目里面看到的web.xml,配置的几乎都是/ 想问下您的用意。

因为之前您有说过,/几乎拦截所有请求,除了精确的.jsp的请求;
/会真正拦截所有请求,由它来统一分发。那为什么有时候用/ ,有时候用/

正在回答

2回答

同学好,这里咱们主要是想尝试拦截并处理完所有请求,而不像spring那样把静态资源请求交给defaultServlet去处理:)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕哥6062902 #1
    老师,我还有些一直模糊的点,麻烦你有时间的时候回复下,感谢。
    1、jsp属于静态资源吗?我只知道html,js,css,图片,音频这些是静态资源;
    2、自研框架里面,jsp对应的是JspServlet,默认的servlet是DefaultServlet,DefaultServlet是用来处理静态资源的。按你前面回复,我的理解是如果配置DispatcherServlet的拦截路径是 / ,Spring里面把静态资源(包括jsp)都交给DefaultServlet去处理了,而没有交给tomcat里面的jspServlet,对么?
    3、我想找到您说的Spring里面defaultServlet,但是没找到,,能不能发出来下,我想debug确定下直接请求.jsp文件,到底是怎么处理,被谁给处理了。
    回复 有任何疑惑可以回复我~ 2020-07-23 12:27:40
翔仔 2020-07-23 23:39:27

慕哥好,jsp不属于静态资源哈,你可以看到pom.xml里有jsp相关的jar

  关于JSP页面的执行,有以下几个步骤:


创建jsp页面,将jsp页面部署在tomcat/webapps目录下或者tomcat/webapps子目录下,并且启dao动服务器;

当客户在第一次请求JSP页面时JSP Engine(JSP引擎)将JSP网页转译为Servlet,生成的文件保存在tomcat/work/Catalina/localhost下;

JSPC(jspc编译器)对转译生成的Servlet编译成Servlet.class,文件和Servlet在同一个文件夹下;

由服务器访问Servlet.class并且将对应内容响应给客户

而/是优先级最低的,并且jsp servlet会动态注册到tomcat容器中,所以jsp请求会被这些servlet给处理


1 回复 有任何疑惑可以回复我~
  • 提问者 慕哥6062902 #1
    感谢老师的回复,还想问下。如果是静态资源,或者是这个jsp请求,是不是直接就被tomcat里面的servlet给处理掉了,这些请求和spring的dispatcherservlet其实并没有任何关系,对么
    回复 有任何疑惑可以回复我~ 2020-08-16 22:48:22
  • 翔仔 回复 提问者 慕哥6062902 #2
    同学好,是的哈,相当于是转发而已
    回复 有任何疑惑可以回复我~ 2020-08-17 11:48:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信