Servlet 过滤器两种配置方法
程序员文章站
2022-05-18 23:03:41
方法一(注解) / 使用注解标注过滤器 @WebFilter将一个实现了javax.servlet.Filte接口的类定义为过滤器 属性filterName声明过滤器的名称,可选 属性urlPatterns指定要过滤 的URL模式,也可使用属性value来声明.(指定要过滤的URL模式是必选属性) ......
方法一(注解)
/** * 使用注解标注过滤器 * @webfilter将一个实现了javax.servlet.filte接口的类定义为过滤器 * 属性filtername声明过滤器的名称,可选 * 属性urlpatterns指定要过滤 的url模式,也可使用属性value来声明.(指定要过滤的url模式是必选属性) */ @webfilter(filtername="testfilter",urlpatterns="*.action")
方法二(配置web.xml文件)
<filter> <filter-name>loginfilter</filter-name> <filter-class>cn.edu.njit.filter.loginfilter</filter-class> <init-param> <param-name>loginui</param-name> <param-value>/home/loginui</param-value> </init-param> <init-param> <param-name>loginprocess</param-name> <param-value>home/login</param-value> </init-param> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>loginfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
例:servlet3.0 以上注解式配置方法
package com.tunny.filter; import java.io.ioexception; import javax.servlet.filter; import javax.servlet.filterchain; import javax.servlet.filterconfig; import javax.servlet.servletexception; import javax.servlet.servletrequest; import javax.servlet.servletresponse; import javax.servlet.annotation.webfilter; // servlet3.0 以上注解式配置方法 @webfilter(filtername="encodingfilter",urlpatterns="*.action") public class encodingfilter implements filter{ public void destroy() { } // 主要的业务逻辑都写在此方法中 public void dofilter(servletrequest req, servletresponse resp, filterchain chain) throws ioexception, servletexception { req.setcharacterencoding("utf-8"); resp.setcharacterencoding("utf-8"); resp.setcontenttype("text/html;charset=utf-8"); system.out.println("过滤器帮你转换码完毕"); chain.dofilter(req, resp); // 放行或者向后继续执行 } public void init(filterconfig config) throws servletexception { } }
listener监听器
// session="false" 关闭session <%@ page language="java" import="java.util.*" pageencoding="utf-8" session="false" %>