JavaWeb-Filter
2021-02-08 03:16
标签:prot alt 图片 lock mode https org ide ppi 参考视频: https://www.bilibili.com/video/BV12J411M7Sj?p=24 Filter:过滤器,用来过滤网站的数据。 路径 依赖 代码 CharacterEncdoingFilter是过滤器,很显然,功能就是处理中文乱码的问题。注意继承的是javax.servlet.Filter: web.xml 配置好之后,启动Tomcat,可以在IDEA中发现这段: 可以修改为英文 查看是否是init的内容。这就是过滤器在web服务器的启动时就初始化的证明。 访问页面 在上面的Web.xml中设置了两个地址,都可以访问到同一个Servlet: 而过滤器设置过滤的是/servlet/地址下的所有页面(指的是servlet设置的地址): 因此分别访问/servlet/show和/show一个能经过过滤器,一个不经过过滤器: JavaWeb-Filter 标签:prot alt 图片 lock mode https org ide ppi 原文地址:https://www.cnblogs.com/duzhuan/p/12773641.html过滤器Filter
package com.huangdekai.JavaWeb.filter;
import javax.servlet.*;
import java.io.IOException;
/**
* @Autord: HuangDekai
* @Date: 2020/4/25 1:34
* @Version: 1.0
* @since: jdk11
*/
public class CharacterEncodingFilter implements Filter {
// 初始化 Web服务器启动,就已经初始化了,等待过滤对象出现
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("CharaterEncodingFilter已经初始化了");
}
// chain:链
/*
* 1.过滤器中的所有代码,在过滤特定请求的时候都会执行
* 2.必须要让过滤器继续进行
* */
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
servletResponse.setContentType("text/html;charset=UTF-8");
System.out.println("CharacterEncodingFilter执行前...");
filterChain.doFilter(servletRequest, servletResponse);//让请求继续走,如果不写,请求在这里就被拦截停止了
System.out.println("CharacterEncdoingFilter执行后...");
}
// 销毁 web服务器关闭,filter销毁
public void destroy() {
System.out.println("CharaterEncodingFilter已经销毁了");
}
}
package com.huangdekai.JavaWeb.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @Autord: HuangDekai
* @Date: 2020/4/25 1:48
* @Version: 1.0
* @since: jdk11
*/
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);
}
}