七.过滤器(Filter)
**Filter:**用于过滤网站的数据
- 处理中文乱码
- 登录验证
Filter开发步骤
-
导jar包
-
编写过滤器
- 导包
public class CharacterEncodingFilter implements Filter { /** * 初始化 web服务器开启的时候进行初始化 * @param filterConfig * @throws ServletException */ @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("CharacterEncodingFilter已经初始化"); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { /* * 1.过滤中的所有代码,在过滤特定请求的时候都会执行 * 2.必须要让过滤器同行 代码固定 * filterChain.doFilter(servletRequest, servletResponse); */ servletRequest.setCharacterEncoding("utf-8"); servletResponse.setCharacterEncoding("utf-8"); servletResponse.setContentType("text/xml;charset=UTF-8"); System.out.println("CharacterEncodingFilter执行前"); //让我们的请求继续走 若不写 我们的程序就到此停止 filterChain.doFilter(servletRequest, servletResponse); System.out.println("CharacterEncodingFilter执行后"); } /** * 销毁 web服务器关闭的时候进行销毁 */ @Override public void destroy() { System.out.println("CharacterEncodingFilter已经销毁"); } }
<servlet>
<servlet-name>showServlet</servlet-name>
<servlet-class>com.zhang.serlvet.ShowServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>showServlet</servlet-name>
<url-pattern>/show</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>showServlet</servlet-name>
<url-pattern>/servlet/show</url-pattern>
</servlet-mapping>
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>com.zhang.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<!--只要是/servlet的任何请求,都会经过这个过滤器-->
<url-pattern>/servlet/*</url-pattern>
</filter-mapping>