我在 Tomcat 中部署了一个 WEB 应用程序。我想拦截所有传入的请求 - 获取或发布并执行一些任务。我想拦截来自 servlet、JSP 页面等的调用。所以我创建了一个 web.xml 文件,看起来像这样 -
<servlet>
<description></description>
<display-name>Transformer</display-name>
<servlet-name>Transformer</servlet-name>
<servlet-class>com.test.Transformer</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Transformer</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
正如我们所见,任何请求都会到达这个名为 Transformer 的 Controller servlet。现在这个 servlet 通常会尝试将一个请求从 A 转换为 B。我面临的问题是 - 我正在进入一个循环我只想将 url/test.jsp 的请求转换为/abc/test.jsp 但第二个请求/abc/test.jsp 也命中了 Transformer servlet,因此它没有按预期工作。 我想我可以使用 Filter,但我在应用程序中有太多的 servlet 和 JSP 页面,无法在任何地方放置过滤器。
最佳答案
使用 javax.servlet.Filter
进行拦截。您可以将其映射到 /*
,它将拦截所有内容。
<filter>
<filter-name>YourFilterName</filter-name>
<filter-class>com.package.YourFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>YourFilterName</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
关于java - 使用Java EE拦截一个WEBAPP的所有请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2067625/