<url-pattern>标记</url-pattern>的路径映射

时间:2014-02-11 06:12:46

标签: java jsp java-ee servlets

根据

中给出的路径规定了什么规则
  

&LT; URL模式&GT;

  

&LT; servlet的映射&GT;

标签是否映射到servlets?

5 个答案:

答案 0 :(得分:1)

我将通过以下示例代码解释您。

 <servlet>
   <description></description>            // enter description of servlet
   <display-name>GetCascadParamServlet</display-name>  // the name which display in url
   <servlet-name>GetCascadParamServlet</servlet-name>   // Actual servlet name
   <servlet-class>com.agileinfotech.bsviewer.servlet.GetCascadParamServlet</servlet-class> // this is package name , where exactly your servlet locate 
 </servlet>
 <servlet-mapping>
   <servlet-name>GetCascadParamServlet</servlet-name>  // servlet name which exact declare same as your servlet name
   <url-pattern>/GetCascadParamServlet</url-pattern>  // if we want to call another servlet or class we can declare it here when it will see that url redirect it to the that configuration.
 </servlet-mapping>

希望您能理解servlet的整个映射。

答案 1 :(得分:0)

用外行人的术语来说,你在url模式中指定的内容将被重定向到指定的servlet。例如:

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>com.blah.blah.ActionDispatcher</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.z</url-pattern>
</servlet-mapping>

所以当你的url是localhost:8080/app/test.z时,ActionDispatcher servlet会处理它。

答案 2 :(得分:0)

Web容器如何将客户端请求映射到servlet?

收到客户端请求后,Web容器将确定Web应用程序 转发它。所选的Web应用程序必须具有最长的时间 与请求URL的开头匹配的上下文路径。 URL的匹配部分 是映射到servlet时的上下文路径。

Web容器接下来必须找到servlet来处理请求 下面描述的路径映射过程。

用于映射到servlet的路径是请求中的请求URL object减去上下文路径和路径参数。 URL路径映射 以下规则按顺序使用。第一次成功的比赛没有进一步使用 尝试匹配:

  
      
  1. 容器将尝试查找请求路径的完全匹配   servlet的路径。成功匹配选择servlet。
  2.   
  3. 容器将递归尝试匹配最长的路径前缀。这个完成了   通过使用“/”字符作为步骤一次单击目录路径树   路径分隔符。最长的匹配决定了所选的servlet。
  4.   
  5. 如果URL路径中的最后一个段包含扩展名(例如.jsp),则为servlet   容器将尝试匹配处理扩展请求的servlet。   扩展名定义为最后一个“。”之后的最后一个段的一部分。字符。
  6.   
  7. 如果前三个规则都没有导致servlet匹配,则容器将会   尝试提供适合所请求资源的内容。如果是“默认”   servlet是为应用程序定义的,它将被使用。   容器必须使用区分大小写的字符串比较进行匹配。
  8.   

来源

答案 3 :(得分:0)

<servlet>
<servlet-name>WAP Callback Servlet</servlet-name>
<servlet-class>
com.ism.integeration.WAPBilldeskCallbackServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WAP Callback Servlet</servlet-name>
<url-pattern>/jsp/wapcallback/*</url-pattern>
</servlet-mapping>

当包含“wapcallback”的任何响应url时,它将引用相应的servlet。

答案 4 :(得分:0)

<url-pattern>指定应该调用servlet-name中给出的servlet的url类型。根据servlet规范SRV.11.2中的字符串或url模式中的路径:

  1. 以“/”字符开头并以“/ *”后缀结尾的字符串用于路径映射。
  2. 以'*。'前缀开头的字符串用作扩展名映射。
  3. 仅包含'/'字符的字符串表示应用程序的“默认”servlet。在这种情况下,servlet路径是请求URI减去上下文路径,路径信息为空。
  4. 所有其他字符串仅用于完全匹配。
  5. 参考:How to configure Servlet.