如何使用过滤器?
答
何时启动Java Filter?
在web应用程序启动过程中。
是否过滤
init()
方法在此改变的servletinit()
方法?
不,他们之间没有任何关系。 init()
方法您的过滤器只是实现了一个定义在javax.servlet.Filter
interface。
我在哪里申报
web.xml
的初始化参数?
里面的<filter>
声明。
<filter>
<filter-name>myFilter</filter-name>
<filter-class>com.example.MyFilter</filter-class>
<init-param>
<param-name>foo</param-name>
<param-value>bar</param-value>
</init-param>
</filter>
它会再提供内部init()
如下:
@Override
public void init(FilterConfig config) {
String foo = config.getInitParameter("foo"); // contains "bar".
}
答
声明它在web.xml像
<web-app version=...>
...
<filter>
<description>...</description>
<display-name>My Filter</display-name>
<filter-name>MyFilter</filter-name>
<filter-class>com.foo.bar.MyFilter</filter-class>
</filter>
...
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/some/path</url-pattern>
</filter-mapping>
...
</web-app>
[更新]的<filter>
部分登记您的过滤器到系统;它会在Web应用程序启动时自动启动。在<filter-mapping>
部分中,您可以配置何时(在哪些网址上)调用您的过滤器。
您的其余问题已由@BalusC回答。
这意味着该请求将被过滤automaticaly我的意思是我没有o把开始的顺序,它也是一样的回应? – giorgo 2011-01-27 15:05:04
@giorgo - 您必须将滤镜贴图添加到您要应用滤镜的网址。例如,为了将过滤器应用于一个名为checkOut.JSP页面你可以这样做: \t myFilter过滤器名称> \t /secure/checkOut.jsp url-pattern的> \t –
CoolBeans
2011-01-27 15:11:09