Bhu*_*han 5 java jsp tomcat servlets servlet-filters
我正在使用JSP和Servlet开发Web应用程序。
我已经开发出一种servlet filter用于Login目的。它检查用户是否已登录,如果用户已登录,则它允许访问所请求的资源,否则它将请求重定向到Login page。而且效果很好。
过滤
public class MyFilter implements Filter
{
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException
{
//code here
}
}
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
现在,我已经部署了该应用程序命名Login上Tomcat 7。这servlet filter非常适合此Web应用程序中的资源(JSP,Servltes,.css,.js)。
所以现在Tomcat有喜欢的其他Web应用程序Profiles,Distribution等等。所以现在我想的是应用Filter在Login应用程序适用于部署在所有其他应用程序Tomcat。意味着对其他应用程序资源的每个请求都应经过Filter我开发的请求。
因此,任何建议将不胜感激!
编辑1
我不想把包含Filter在其他应用程序中的包放进去。由于在Tomcat服务器中部署了10多个应用程序,因此将要部署更多应用程序。因此,假设如果我将包含Filter所有其他应用程序的程序包放入其中并进行servlet映射,但是如果几天之后我想在Filter中进行一些更改,那么我将需要在所有应用程序中进行更改,然后需要重新部署它们。
把你的<filter>和<filter-mapping>定义放在里面$CATALINA_HOME/conf/web.xml
这些定义由所有 Web 应用程序共享。
您必须将所有与登录相关的逻辑打包在一个 jar 中并将其放在下面$CATALINA_HOME\lib,以便所有 Web 应用程序都可以访问它。