标签:-name 匹配 最长路 html login 必须 let 字符串 精确
<servlet> <servlet-name>hello</servlet-name> <servlet-class>com.qf.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
url-pattern配置的内容是*.aa、*.bb、*.jsp这种类型的
<servlet> <servlet-name>hello</servlet-name> <servlet-class>com.qf.servlet.HelloServlet3</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>*.hello</url-pattern> </servlet-mapping>
1.全路径匹配:请求访问的url的地址必须与url-pattern配置的内容完全一致
<servlet> <servlet-name>hello</servlet-name> <servlet-class>com.qf.servlet.HelloServlet3</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/aa/bb/hello</url-pattern> </servlet-mapping>
2.路径匹配:前半段完全匹配,后半段存在*(*是通配符,可以代表任何字符串);以/开始,以*结束;/aa/*可以是/aa/bb,也可以是/aa/cc..............
<servlet> <servlet-name>hello</servlet-name> <servlet-class>com.qf.servlet.HelloServlet3</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/aa/*</url-pattern> </servlet-mapping>
注意:/aa/*/*这种url-pattern配置,url访问时必须是/aa/*/aa,/aa/*/bb这种才可以访问,也就是中间这个*并不是通配符,只是一个普通字符
路径匹配和扩展名匹配不可以同时使用,下面几个配置全是不合法的
<url-pattern>/aa/*.hello</url-pattern> <url-pattern>/*.hello</url-pattern> <url-pattern>a*.hello</url-pattern>
注意:
< url-pattern>/</url-pattern> 会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
< url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)
当一个url与多个servlet的匹配规则可以匹配时,则按照 “ 完全匹配路径 > 最长路径>扩展名”这样的优先级匹配到对应的servlet
标签:-name 匹配 最长路 html login 必须 let 字符串 精确
原文地址:https://www.cnblogs.com/qf123/p/10044765.html