菜鸟学编程(四)——Servlet的基本配置

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


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

  
    MyServlet  
    com.Servlet.MyServlet  
  
  
  
    MyServlet  
    /Servlet  
  


Servlet的配置包括两部分:


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

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

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


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

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

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


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


1,完全匹配

如:/servlet/MyServlet.do


2,目录匹配

如:/servlet/*

3,扩展名匹配

如:*.do


在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的基本配置)