我正在使用JSP& amp;开发一个Web应用程序。的servlet。
我为登录目的开发了一个servlet过滤器。其中检查用户是否已登录,如果用户已登录,则允许访问所请求的资源,否则将请求重定向到“登录”页面。而且效果很好。
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
主页 - &gt; conf-&GT; Web.xml 然后该过滤器适用于Tomcat
中部署的所有应用程序。(这是我想在Glassfish中为EAR文件实现的目标)
但现在some reasons我决定转向Glassfish。现在我创建了一个包含两个应用程序(WAR)EAR
和1.Login
的A 2. Profiles
文件。过滤器位于com.filter
包中,该包位于Login Application
,不在Profiles
中。
我的问题是,我应该在哪里放置XML
代码,以确保过滤器适用于EAR
中的所有应用程序(WAR)?
UPDATE1
如果我将上面的XML代码放在目录defualt-web.xml
下的glassfish\domains\domain1\config\
中,那么它适用于Login
应用程序,但不适用于Profiles
应用程序中的EAR
应用程序相同的Login
文件。
日志中有错误:
异常启动过滤器MyFilterName java.lang.InstantiationException
.....
.....
引起:java.lang.ClassNotFoundException:com.myfilter.MyFilterName
[注意:过滤器位于Profiles
应用程序(WAR)中,而不在Profiles
应用程序(WAR)中
那么我应该如何使其适用于{{1}}(EAR中的所有WAR)。
答案 0 :(得分:1)
将包含过滤器的jar放入glassfish\domains\domain1\lib
文件夹