过滤器:
web服务器有一些垃圾请求,我后台不应该处理或者应该报错。
处理乱码问题。
filter开发步骤
1.导包
2.编写过滤器
代码如下:
//CharacterEncodingGilter 类 package com.kuang.filter; import javax.servlet.*; import java.io.IOException; //重写 Filter接口,实现过滤器 public class CharacterEncodingGilter implements Filter { //初始化 :web服务器启动了,就开始初始化了 public void init(FilterConfig filterConfig) throws ServletException { System.out.println("已经初始化了"); } //chain: /* * 过滤器中的所有代码,在过滤特定请求的时候都会执行 * 必须要让过滤器继续通行 * chain.doFilter(request,response); * * */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { response.setCharacterEncoding("utf-8"); request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=UTF-8"); System.out.println("chain.doFilter(request,response); 执行前"); chain.doFilter(request,response); //让我们的请求继续走,如果不写,程序到这里就被拦截停止! System.out.println("chain.doFilter(request,response); 执行后"); } //销毁 public void destroy() { System.out.println("已经销毁了"); //服务器关闭的时候,过滤器就销毁。 } } //ShowServlet类 package com.kuang.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class ShowServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().write("你好呀,世界!!!"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } } //web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>ShowServlet</servlet-name> <servlet-class>com.kuang.servlet.ShowServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ShowServlet</servlet-name> <url-pattern>/s</url-pattern> </servlet-mapping> <servlet> <servlet-name>ShowServlet1</servlet-name> <servlet-class>com.kuang.servlet.ShowServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ShowServlet1</servlet-name> <url-pattern>/s1</url-pattern> </servlet-mapping> <!--这里写过滤路径 注册过滤的处理类 跟servlet差不多--> <filter> <filter-name>CharacterEncodingGilter</filter-name> <filter-class>com.kuang.filter.CharacterEncodingGilter</filter-class> </filter> <filter-mapping> <filter-name>CharacterEncodingGilter</filter-name> <!--填写要过滤的路径 --> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>