由url-pattern引发的思考

由url-pattern引发的思考

在配置servlet的时候,需要配置url-pattern,在实际使用的过程中产生了一些问题,在对这些问题一一实践后总结出以下内容:

1.tomcat本身有两个servlet,一个名称是'default',用来处理所有其他servlet没有匹配的请求,一般是资源文件请求;一个是jsp,用来处理后缀为jsp和jspx的请求(它只是找webapp下有没有相关的jsp文件,比如说设置welcome-file-list时):


        default
        org.apache.catalina.servlets.DefaultServlet
        
            debug
            0
        
        
            listings
            false
        
        1
    

        default
        /


        jsp
        org.apache.jasper.servlet.JspServlet
        
            fork
            false
        
        
            xpoweredBy
            false
        
        3

        jsp
        *.jsp
        *.jspx

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是专门用来处理资源文件的),如:


		default
		*.js

2)或者在自己的servlet的xml中设置

3)或者在自己的servlet的xml中设置

而jsp请求不用管,还是使用tomvat的jsp servlet;上面三种形式都可以用来处理资源文件

6.在web.xml中将自己的servlet的url-pattern设置为‘/*’时,则覆盖所有的servlet;包括tomcat中的default servlet(用来处理资源文件)和jsp servlet(用来处理jsp请求);这样的话资源文件和jsp请求都必须在servlet的xml中进行配置,jsp文件只能这样配置,而资源文件就不能再使用,需要使用

7.对应的jsp也属于servlet请求;需要由相应的servlet进行处理

8.web.xml中各个节点的加载顺序问题:

context-param -> listener -> filter ->  servlet

你可能感兴趣的:(JavaWeb)