配置Servlet的映射路径
1.一个完整的Servlet包括Servlet类、<Servlet>配置、<Servlet-mapping>配置,缺一不可。
在<Servlet></Servlet>中配置Servlet名称与类名:
<servlet>
<servlet-name></servlet-name>
<servlet-class></servlet-calss>
</ervlet>
2.配置好servlet的名称与类名之后,还需要配置Servlet的映射路径,这个映射路径其实就是访问Servlet的方式,映射路径使用标签
<servlet-mapping>配置。
<servlet-mapping>
<servlet-name></servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>
<servlet-name></servlet-name>用来配置servlet的名称,<url-pattern>就是用来配置Servlet的映射路径.
servet的映射路径指的 就是<url-pattern>的路径,通常有三中匹配模式:
<url-pattern>中允许使用通配符“*”和“?”,"*”表示任意长度的字符串,"*"也代表任意的字符。
2.1完全路径匹配模式:以"/"开头,例如 /aaa/bbb 或/aaa
2.2目录匹配:以“/”开头,例如:/aaa/*, 和 /*; /aaa/*表示访问的时候,/aaa/后面可以为任意值,也可以没有任何东西。如果是路径是 /* 这种方式的话,访问Servlet的时候,任何东西都可以访问。
2.3扩展名匹配:扩展名匹配不能以“/”开头。例如:/abc*.do,或/*.do都是错误的写法,正确的写法为*.do。扩展名匹配,习惯上使用*.do来访问,这问Servlet的时候,路径名中必须以.do结尾。
匹配模式的优先级:完全路径匹配>目录匹配>扩展名匹配。
从java EE 5开始,<servlet-mapping >标签就可以配置多个<url-pattern>,例如可以将一个Servlet配置多个映射方式:
例:
<servlet-mapping>
<servlet-name>FirstServletll</servlet-name>
<url-pattern>/servlet/FirstServlet</url-pattern>
<url-pattern>/servlet/FirstServlet.asp</url-pattern>
<url-pattern>/servlet/FirstServlet.jsp</url-pattern>
<url-pattern>/servlet/FirstServlet.php</url-pattern>
<url-pattern>/servlet/FirstServlet.aspx/url-pattern>
</servlet-mapping> 无论用那种方式访问,都会正常显示。
一个Servlet还可以对应多个<servlet-mapping>
例:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>runoob.com.ActionServlet</servlet-class>
</servlet>
<servlet-mappint>
<servlet-name>action</servlet-name>
<url-pattern>/list</url-pattern>
</servlet-mapping>
<servlet-mappint>
<servlet-name>action</servlet-name>
<url-pattern>/expire</url-pattern>
</servlet-mapping>
<servlet-mappint>
<servlet-name>action</servlet-name>
<url-pattern>/section</url-pattern>
</servlet-mapping>