码迷,mamicode.com
首页 > 其他好文 > 详细

Servlet的基本配置

时间:2018-09-07 15:08:09      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:部分   ref   请求   信息   map   路径   扩展名   pattern   配置   

原文:https://blog.csdn.net/liushuijinger/article/details/9957779

学习JavaWeb的人没有不知道Servlet的吧,而要用Servlet就需要在web.xml中进行配置。相信有很多初学者跟我当初一样,对于一些配置参数不是很理解,今天就说说Servlet最基本的配置信息。

 

下面是一个最基本的Servlet配置:

1 <servlet>  
2     <servlet-name>MyServlet</servlet-name>  
3     <servlet-class>com.Servlet.MyServlet</servlet-class>  
4 </servlet>  
5   
6 <servlet-mapping>  
7     <servlet-name>MyServlet</servlet-name>  
8     <url-pattern>/Servlet</url-pattern>  
9 </servlet-mapping> 

Servlet的配置包括两部分:

 

1,<servlet>配置Servlet的名字和完整类路径:

servlet-name是自定义的,就是给Servlet取个名字。

servlet-class是Servlet完整的类,就是从一开始的包一直“.”到该Servlet。

 

2,<servlet-mapping>是用来截获请求的,包括servlet-name和url-pattern。

servlet-name跟<servlet>中的servlet-name是对应的,两个servlet-name一定要一致,否则会找不到对应的Servlet。

url-pattern是截获请求的规则,当表单提交的时候,会根据特定的规则调用相应的Servlet。下面会具体阐述。

 

url-pattern大致分为以下几种方式:

 

1,完全匹配

    如:<url-pattern>/servlet/MyServlet.do</url-pattern>


2,目录匹配

    如:<url-pattern>/servlet/*</url-pattern>

3,扩展名匹配

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

 

在web.xml文件中,以下语法用于定义映射: 

l. 以”/’开头和以”/*”结尾的是用来做路径映射的。 

2. 以前缀”*.”开头的是用来做扩展映射的。 

3. “/” 是用来定义default servlet映射的。 

4. 剩下的都是用来定义详细映射的。比如: /aa/bb/cc.action 

容器查找规则:

1,容器会首先查找完全匹配,如果找不到,再查找目录匹配,如果也找不到,就查找扩展名匹配。
2,如果一个请求匹配多个“目录匹配”,容器会选择最长的匹配。

例如:servletA的url-pattern为/test/*,而servletB的url-pattern为/test/b/*,此 时访问http://localhost/test/b时,容器会选择路径最长的servlet来匹配,也就是这里的servletB。


注意:”/*.action”这样一个看起来很正常的匹配会错。因为这个匹配即属于路径映射,也属于扩展映射,会导致容器无法判断。

 

上面讲解的只是Servlet最基本的一个配置,还有很多其他的参数,有兴趣可自行研究,这里就不一一赘述了。欢迎交流探讨。

Servlet的基本配置

标签:部分   ref   请求   信息   map   路径   扩展名   pattern   配置   

原文地址:https://www.cnblogs.com/wkcode/p/9604501.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!