【发布时间】:2023-03-20 16:18:01
【问题描述】:
我正在使用 JSP 和 Servlet 开发一个 Web 应用程序。
我为Login 开发了一个servlet filter。它检查用户是否已登录,如果用户已登录,则它允许访问所请求的资源,否则它将请求重定向到Login page。而且效果很好。
过滤器
public class MyFilter implements Filter
{
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException
{
//code here
}
}
web.xml
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>com.myfilter.MyFilter</filter-class>
<init-param>
<param-name>PARAM_NAME_HERE</param-name>
<param-value>PARAM_VALUES_HERE</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
现在我已经在Tomcat 7 上部署了这个名为Login 的应用程序。这个servlet filter 非常适合此 Web 应用程序中的资源(JSP、Servltes、.css、.js)。
所以现在在 Tomcat 中还有其他 Web 应用程序,例如 Profiles、Distribution 等。所以现在我想要在 Login 应用程序中应用 Filter 以供所有人使用适用其他应用程序部署在Tomcat。意味着对其他应用程序资源的每个请求都应该通过我开发的Filter。
因此,我们将不胜感激任何建议!
编辑1
我不想将包含Filter 的包放在其他应用程序中。因为在 Tomcat 服务器中部署了 10 多个应用程序,而且还会部署更多应用程序。所以假设如果我将包含Filter 的包放在所有其他应用程序中并进行 servlet 映射,但是如果几天后我想在过滤器中进行一些更改,那么我将需要在所有应用程序中进行更改,然后重新部署它们将需要。
【问题讨论】:
标签: java jsp tomcat servlets servlet-filters