Javaservlet映射

Javaservlet映射,java,exception,servlets,servlet-filters,Java,Exception,Servlets,Servlet Filters,我在web.xml中定义了一个servlet: <servlet-mapping> <servlet-name>SessionRebindServlet</servlet-name> <url-pattern>*.ppp</url-pattern> </servlet-mapping> 和在过滤器代码中: String url = ((HttpServletRequest) request).getRequestU

我在web.xml中定义了一个servlet:

<servlet-mapping>
  <servlet-name>SessionRebindServlet</servlet-name>
  <url-pattern>*.ppp</url-pattern>
</servlet-mapping>
和在过滤器代码中:

String url = ((HttpServletRequest) request).getRequestURI();
        if (url.contains("popup.ppp")) {

        } else {
            chain.doFilter(request, response);
        }

我将其用于此类情况:

String lPath = ((HttpServletRequest) request).getRequestURI();
if (lPath.startsWith("/supported")) {
   chain.doFilter(request, response); 
} else {
  // not supported
}

不,您不能使用
元素执行此操作。有关所有选项,请参见


您不能映射到
/somepath/*.ppp
,这样它就不会干扰
popup.ppp
或调用
popup.ppp
其他内容吗?

使用过滤器,只需覆盖过滤器中的doFilter()方法:

字符串url=request.getRequestURL().toString()

然后使用此url并与popup.ppp进行比较,它不等于doFilter()


试试这个(我还没有检查过这个)


会话重新绑定servlet
*.ppp
newServletName
popup.ppp

您可以在SessionRebindServlet中添加逻辑,以忽略“popup.ppp”请求。他不是在谈论过滤器。实际上,这是有效的。我添加了一个过滤器,并按照@stefan Be所说的做了。谢谢。他不是在说过滤器。是的,使用过滤器作为一种工作方法当然有效。谢谢你澄清你的答案。
String lPath = ((HttpServletRequest) request).getRequestURI();
if (lPath.startsWith("/supported")) {
   chain.doFilter(request, response); 
} else {
  // not supported
}
<servlet-mapping>
  <servlet-name>SessionRebindServlet</servlet-name>
  <url-pattern>*.ppp</url-pattern>
</servlet-mapping>


<servlet-mapping>
  <servlet-name>newServletName</servlet-name>
  <url-pattern>popup.ppp</url-pattern>
</servlet-mapping>