由url-pattern引发的思考
2017-01-12 15:56
471 查看
由url-pattern引发的思考
在配置servlet的时候,需要配置url-pattern,在实际使用的过程中产生了一些问题,在对这些问题一一实践后总结出以下内容:
1.tomcat本身有两个servlet,一个名称是'default',用来处理所有其他servlet没有匹配的请求,一般是资源文件请求;一个是jsp,用来处理后缀为jsp和jspx的请求(它只是找webapp下有没有相关的jsp文件,比如说设置welcome-file-list时):
[html] view
plain copy
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
[html] view
plain copy
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
[html] view
plain copy
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
[html] view
plain copy
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>
2.url-pattern为'/',不是说匹配含有'/'路径的请求,而是说这个servelt是默认的servlet,如tomcat中的'default'; 同时,默认的servlet的意思就是处理所有其他servlet没有匹配的请求,一般是资源文件请求。
3.只要指定了url-pattern为‘/’,就替代tomcat的defaultServlet成为新的默认servlet。
4.tomcat自带的defaultServlet只处理资源文件,jsp文件由tomcat的jspServlet处理
5.在web.xml中将自己的servlet的url-pattern设置为‘/’时,代表是最后才匹配的servlet,是默认的servlet,最后才会执行,所以我们可以这样处理资源文件:
1)在web.xml中加一个servlet 映射用来处理资源文件,而指向的servlet就是tomvat自带的'default'(自带的default是专门用来处理资源文件的),如:
[html] view
plain copy
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
2)或者在自己的servlet的xml中设置 <mvc:default-servlet-handler>
3)或者在自己的servlet的xml中设置 <mvc:resources>
而jsp请求不用管,还是使用tomvat的jsp servlet;上面三种形式都可以用来处理资源文件
6.在web.xml中将自己的servlet的url-pattern设置为‘/*’时,则覆盖所有的servlet;包括tomcat中的default servlet(用来处理资源文件)和jsp servlet(用来处理jsp请求);这样的话资源文件和jsp请求都必须在servlet的xml中进行配置,jsp文件只能这样配置<mvc:default-servlet-handler
default-servlet-name="jsp">,而资源文件就不能再使用<mvc:default-servlet-handler>,需要使用<mvc:resources>;
7.<welcome-file-list>对应的jsp也属于servlet请求;需要由相应的servlet进行处理
8.web.xml中各个节点的加载顺序问题:
context-param -> listener -> filter -> servlet
原文地址是:http://blog.csdn.net/jintao_ma/article/details/52141953
在配置servlet的时候,需要配置url-pattern,在实际使用的过程中产生了一些问题,在对这些问题一一实践后总结出以下内容:
1.tomcat本身有两个servlet,一个名称是'default',用来处理所有其他servlet没有匹配的请求,一般是资源文件请求;一个是jsp,用来处理后缀为jsp和jspx的请求(它只是找webapp下有没有相关的jsp文件,比如说设置welcome-file-list时):
[html] view
plain copy
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
[html] view
plain copy
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
[html] view
plain copy
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
[html] view
plain copy
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>
2.url-pattern为'/',不是说匹配含有'/'路径的请求,而是说这个servelt是默认的servlet,如tomcat中的'default'; 同时,默认的servlet的意思就是处理所有其他servlet没有匹配的请求,一般是资源文件请求。
3.只要指定了url-pattern为‘/’,就替代tomcat的defaultServlet成为新的默认servlet。
4.tomcat自带的defaultServlet只处理资源文件,jsp文件由tomcat的jspServlet处理
5.在web.xml中将自己的servlet的url-pattern设置为‘/’时,代表是最后才匹配的servlet,是默认的servlet,最后才会执行,所以我们可以这样处理资源文件:
1)在web.xml中加一个servlet 映射用来处理资源文件,而指向的servlet就是tomvat自带的'default'(自带的default是专门用来处理资源文件的),如:
[html] view
plain copy
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
2)或者在自己的servlet的xml中设置 <mvc:default-servlet-handler>
3)或者在自己的servlet的xml中设置 <mvc:resources>
而jsp请求不用管,还是使用tomvat的jsp servlet;上面三种形式都可以用来处理资源文件
6.在web.xml中将自己的servlet的url-pattern设置为‘/*’时,则覆盖所有的servlet;包括tomcat中的default servlet(用来处理资源文件)和jsp servlet(用来处理jsp请求);这样的话资源文件和jsp请求都必须在servlet的xml中进行配置,jsp文件只能这样配置<mvc:default-servlet-handler
default-servlet-name="jsp">,而资源文件就不能再使用<mvc:default-servlet-handler>,需要使用<mvc:resources>;
7.<welcome-file-list>对应的jsp也属于servlet请求;需要由相应的servlet进行处理
8.web.xml中各个节点的加载顺序问题:
context-param -> listener -> filter -> servlet
原文地址是:http://blog.csdn.net/jintao_ma/article/details/52141953
相关文章推荐
- 由url-pattern引发的思考
- 由url 引发的一些思考
- 更改主机文件引发思考 防火墙URL过滤无奈(转)
- 一道经典面试引发的思考:从输入URL到页面加载的过程
- 由(int&)a引发的思考及浮点数在内存中的表示
- 由APUE中的错误处理函数err_xxx引发的思考
- spring MVC的困惑--url-pattern的/和/*有区别
- Root 过程 引发的思考
- 专题——web.xml 中 url-pattern
- 由n阶幻方问题引发的思考
- 有关.NET参数传递的方式引发的思考
- 在C++编译器下dlsym()引发的思考
- DispatherServlet配置url-pattern中的一个小细节
- JPA,EclipseLink 缓存机制学习——树节点搜索问题引发的思考
- Node.Js执行原理图引发的思考
- struts2配置web的action中的<url-pattern>
- Java包命名规则引发的思考Java包命名规则引发的思考
- URL Pattern的四种模式
- 离散数学引发的脑科学思考
- 【转载】一次面试引发的思考(中小型网站优化思考)