Filter过滤器是Java中常用的技术,过滤器是用户请求和Web服务器之间的一层处理程序,可以对用户请求和处理程序响应的内容进行处理。过滤器能够在Servlet背调用之前检查Request对象,修改Request Header和Request内容。过滤器过滤的URL资源可以是Servlet、JSP、HTML文件,或是整个路径下的任何资源。多个过滤器可以构成一个过滤器链,当请求过滤器关联的URL时,过滤器链上的过滤器会挨个发生作用。过滤器往往用在进行权限控制、字符集处理等场合。
所有过滤器都继承自java.Servlet.Filter接口,有三个接口方法
(1)init(FilterConfig)
这是过滤器的初始化方法,在这个方法中可以通过FilterConfig参数读取web.xml中过滤器的初始化参数
(2)doFilter(ServletRequest,ServletResponse,FilterChain)
这个方法是过滤器的实际操作,FilterChain参数用于访问过滤器链的下一个过滤器
(3)destroy()
这是过滤器的销毁方法
过滤器编写完成后要在web.xml中配置
<filter> <filter-name>过滤器名</filter-name> <filter-class>过滤器对应的类</filter-class> <!--初始化参数--> <init-param> <param-name>参数名称</param-name> <param-value>参数值</param-value> </init-param> </filter>
过滤器必须和特定的URL关联才能发挥作用,关联方式有三种:与URL关联;与URL目录下的所有资源关联;与Servlet关联
A.与URL资源关联
<filter-mapping> <filter-name>过滤器名</filter> <url-pattern>xxx.jsp</url-pattern>
B.与URL目录下的所有资源关联
<filter-mapping> <filter-name>过滤器名</filter> <url-pattern>/*</url-pattern> </filter-mapping>
C.与Servlet关联
<filter-mapping> <filter-name>过滤器名</filter-name> <Servlet-name>Servlet名称</Servlet-name> </filter-mapping>
扫描二维码关注公众号,回复:
1641542 查看本文章
首先要记得加载Struts2包到WebRoot\WEB-INF\lib路径下
然后在web.xml中加入如下代码
<display-name>jsp_struts2_javabean_jdbc</display-name> <!-- 配置Struts2框架的核心Filter过滤器 --> <filter> <!-- Filter的名字 --> <filter-name>struts2</filter-name> <!-- Filter的实例类, --> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <!-- 配置Struts2框架默认载入的Action包结构 --> <init-param> <param-name>actionPackages</param-name> <param-value>com.mycompany.myapp.actions</param-value> </init-param> </filter> <!-- 配置Filter拦截的URL --> <filter-mapping> <!-- 配置Struts2的核心FilterDispatcher拦截全部用户请求 --> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>