Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javaservlet中使用通配符映射url_Java_Servlets - Fatal编程技术网

如何在Javaservlet中使用通配符映射url

如何在Javaservlet中使用通配符映射url,java,servlets,Java,Servlets,我想做到这一点: http:\\localhost:8080\mysite\search\cotton\search.html http:\\localhost:8080\mysite\search\bean\search.html http:\\localhost:8080\mysite\search\cosmetic\search.html http:\\localhost:8080\mysite\search\shoe\search.html <servlet-mapping

我想做到这一点:

http:\\localhost:8080\mysite\search\cotton\search.html
http:\\localhost:8080\mysite\search\bean\search.html
http:\\localhost:8080\mysite\search\cosmetic\search.html
http:\\localhost:8080\mysite\search\shoe\search.html


  <servlet-mapping>
    <servlet-name>abcSearch</servlet-name>
    <url-pattern>/search/*/search.html</url-pattern>
  </servlet-mapping>
http:\\localhost:8080\mysite\search\cotton\search.html
http:\\localhost:8080\mysite\search\bean\search.html
http:\\localhost:8080\mysite\search\化妆品\search.html
http:\\localhost:8080\mysite\search\shoe\search.html
ABC研究
/search/*/search.html
对上述所有URL表示一种模式

有谁能帮我一下吗?

下面是

在Web应用程序部署描述符中,使用以下语法 用于定义映射:

  • 以“/”字符开头,以“/*”后缀结尾的字符串 用于路径映射

  • 以“*”前缀开头的字符串用作扩展映射

  • 空字符串(“”)是一种特殊的URL模式,它精确地映射到 应用程序的上下文根,即表单的请求
    http://host:port//
    。在本例中,路径信息为“/” servlet路径和上下文路径为空字符串(“”)

  • 仅包含“/”字符的字符串表示“默认值” 应用程序的servlet。在本例中,servlet路径是 请求URI减去上下文路径,路径信息为空

所有其他字符串仅用于精确匹配

那么这个

/search/*/search.html
完全匹配

http://host/context/search/*/search.html
您无法在路径中间与Servlet的url模式进行路径匹配


如果您只有4个路径,我建议您为每个精确的路径匹配放置4个
元素。

尝试更改URL,如:

http:\\localhost:8080/mysite/search/cotton
http:\\localhost:8080/mysite/search/bean
http:\\localhost:8080/mysite/search/cosmetic
http:\\localhost:8080/mysite/search/shoe
或者像这样:

http:\\localhost:8080/mysite/cotton/search.html
http:\\localhost:8080/mysite/bean/search.html

第一种情况是
/search/*
,第二种情况是
*/search.html

,我当然希望您没有使用URL中的反斜杠进行测试?是的,它们都转到abcSearch servlet。您可以解释路径并相应地执行业务逻辑。您的意思是http:\\localhost:8080\mysite\search\shoe*.html,但在这样我无法处理上述问题scenario@Danish忘了那个建议吧。我错了。我建议您使用一个匹配所有路径并相应地分派的
过滤器。@Danish现在无法真正键入它,但请参阅。
过滤器将读取它处理的路径,确定适当的servlet并使用它。使用backs睫毛,这些仍然不是URL。