如何在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模式,它精确地映射到
应用程序的上下文根,即表单的请求
。在本例中,路径信息为“/” servlet路径和上下文路径为空字符串(“”)http://host:port//
- 仅包含“/”字符的字符串表示“默认值” 应用程序的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。