您的位置:首页 > 运维架构 > Tomcat

(三)tomcat如何处理请求资源路径

2017-12-24 18:22 585 查看
当我在浏览器地址栏输入url后(比如:
http://ip:port/JavaWebDemo/adb.html
),服务器处理请求资源路径经过以下几个步骤:

1. 服务器会认为访问的是一个servlet,即查找和”/abc.html”匹配的servlet。匹配规则如下:

- 精确匹配:一定要有”/”

<url-pattern>/abc.html</url-pattern>


- 通配符匹配:(一定要有”/”)

<url-pattern>/*</url-pattern>


<url-pattern>/demo/*</url-pattern>


*代表匹配0到多个任意的字符

- 后缀匹配:(没有”/”)

<url-pattern>*.do</url-pattern>


*.do匹配所有以.do结尾的请求。

2. 如果找不到匹配的servlet,则访问对应的文件,找到了就返回该文件。如果找不到则返回404

3. 缺省的servlet,在tomcat的安装目录的”conf\web.xml”注册了两个缺省的servlet,一个是:

<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>

<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>


当访问tomcat服务器中的某个静态资源时,实际上在访问这个servlet

另外一个缺省的servlet:

<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>

<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>


当请求资源是某个jsp时,实际上在访问这个servlet。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: