理解servlet的url-pattern

在之前出入java web的时候创建servlet只知道要在注解中添加name和url-pattern

如:

当初仅仅理解的是如果通过一个表单后再Tomcat中去寻找这个servlet需要通过这个url-pattern

但后来在配置web.xml中发现一个servlet可以使用多个url-patterns(现在才发现这里是url-patterns 是复数形式,文章开头都依然写成url-pattern),还有有一个实训系统项目中url-patterns与刚刚学习的时候老师所讲的servlet名字和文件名最好相同而且每次的url-patterns也是根目录下的servlet的名字   有所不同如:


这个url-patterns就是加上了一截其他的字符串,于是乎产生了疑问。在网上其他博客中看到

实际上通过浏览器翻出请求后,Tomcat将应用上下文路径截掉只剩下一个字符串作为servlet的映射匹配

而通常在初学的时候我们通常处理form表单传递的数据,所以只需要一个servlet处理一个业务,仅仅映射了一个

而且文件目录结构很简单没有多个层次,第二张图的url实际上是是SystemManagement下的.jsp发出的请求而servlet的名字是AdminLookNoticesServlet,它将.jsp覆盖掉url变成上下文+/SystemManagement/AdminLookNoticesServlet,然后截掉应用的上下文路径剩下的与之映射匹配

直接上代码:

有几种匹配方式(路径匹配和扩展匹配不可混合(/*.jsp )使用所以不同目录下的扩展匹配最好写成精确匹配,虽然比较麻烦)

精确:


    MyServlet
    /user/users.html
    /index.html
    /user/addUser.action

路径:


    MyServlet
    /user/*

扩展:


    MyServlet
    *.jsp
    *.action

缺省:


    MyServlet
   
/

而/*匹配的是包括目录和扩展的所有文件 /LogIn , /*.jsp

而/仅仅是目录不会包括扩展文件 /LogIn

servlet映射匹配是匹配后不会继续匹配





你可能感兴趣的:(Java,servlet,url-patterns)