本文共 2762 字,大约阅读时间需要 9 分钟。
Filter是Java类,实现了javax.servlet.Filter接口。它用于对请求资源(如JSP、Servlet、HTML等)进行过滤,通常在服务器端运行,优先于请求资源处理。
FilterDemo01 com.itheima.web.filter.FilterDemo01 FilterDemo01 /demo01
@WebFilter("/demo02")public class FilterDemo02 implements Filter { // doFilter方法实现}
init(FilterConfig filterConfig)
: 初始化,调用一次。doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
: 处理请求,调用链滤过一次。destroy()
: 销毁,调用一次。url-pattern
: 定义过滤路径。dispatcherTypes
: 指定过滤方式: DispatcherType.REQUEST
: 默认值,处理浏览器请求和重定向。DispatcherType.FORWARD
: 只处理转发请求。过滤器链的作用是实现多个过滤器的协作。过滤器执行顺序根据配置文件或注解的顺序决定。
###需求分析
###实现步骤
###代码实现
@WebFilter("/*")public class IllegalFilter implements Filter { private ListwordList = new ArrayList<>(); public void init(FilterConfig config) throws ServletException { InputStream is = config.getServletContext().getResourceAsStream("IllegalWords.txt"); BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8")); String line = null; while ((line = reader.readLine()) != null) { wordList.add(line); } } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) resp; String message = request.getParameter("message"); if (message != null) { for (String word : wordList) { if (message.contains(word)) { message = message.replace(word, "***"); response.getWriter().print("您发布的言论是:" + message); return; } } } chain.doFilter(request, response); }}
###ServletContext监听器
###代码实现
public class ServletContextLis implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("ServletContext 创建了... 555555"); } @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("ServletContext 销毁了... 444444"); }}com.itheima.web.listener.ServletContextLis
###邮件服务器选择
###邮件软件安装
转载地址:http://ujk.baihongyu.com/