如何使servlet处理除JSP之外的所有URL

时间:2017-02-07 17:53:29

标签: java jsp servlets

我想通过单个servlet路由所有URL。但是,当我将请求转发给JSP时,请求最终会到达同一个servlet,然后进入无限循环。

有没有办法使用单个servlet处理所有URL,不包括JSP?

理想情况下,我想找到一些方法来使用如下所示的简单servlet映射,并使用一些额外的配置或代码来防止无限循环。

  <servlet>
    <servlet-name>TestController</servlet-name>
    <servlet-class>com.example.TestController</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestController</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>

我可以使用/ public / ,/ app / 等路径集来确保只有深度匹配被路由到Servlet,并且JSP的路径不会。冲突。

  <servlet-mapping>
    <servlet-name>TestController</servlet-name>
    <url-pattern>/public/*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>TestController</servlet-name>
    <url-pattern>/app/*</url-pattern>
  </servlet-mapping>

但是,如果可能的话,我更愿意拥有根级路径。

另外,我想避免单独为映射添加根路径。

  <servlet-mapping>
    <servlet-name>TestController</servlet-name>
    <url-pattern>/app/*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>TestController</servlet-name>
    <url-pattern>/products</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>TestController</servlet-name>
    <url-pattern>/store</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>TestController</servlet-name>
    <url-pattern>/support</url-pattern>
  </servlet-mapping>

因为我不想在两个配置文件中使用映射。

0 个答案:

没有答案