学习笔记——过滤器、过滤器的HelloWord、过滤器生命周期(过滤器sg)

  本篇文章为你整理了学习笔记——过滤器、过滤器的HelloWord、过滤器生命周期(过滤器sg)的详细内容,包含有过滤器生命周期四个阶段 过滤器sg 过滤器功能介绍 过滤器使用场景 学习笔记——过滤器、过滤器的HelloWord、过滤器生命周期,希望能帮助你了解 学习笔记——过滤器、过滤器的HelloWord、过滤器生命周期。

  一、过滤器(Filter)

  1、概念:Filter是一个实现了特殊接口(Filter)的java类,实现对请求资源(jsp,servlet,html)的过滤的功能。过滤器是一个运行在服务器的程序,优先于请求资源(Servlet或者jsp、html)之前执行。过滤器是Javaweb技术中最为实用的技术之一。

  2、功能:拦截请求,检查,之后选择放行或者是禁止放行。

  3、应用场景:登陆权限检查、解决网站乱码、过滤敏感字符等等。

  二、过滤器的HelloWord

  (1)首先,先创建一个module,选择“web Application”,写入项目名,完成创建。

  (2)准备一个请求

  ①将“index.jsp”删除,在web文件夹下创建index.html,创建一个超链接

  

 !DOCTYPE html 

 

   html lang="en"

   head

   meta charset="UTF-8"

   title Title /title

   /head

   body

   a href="hello" 点击访问HelloServlet /a

   /body

   /html

 

  ②在src文件夹中创建一个Servlet包,在该包下创建一个名为“HelloServlet”的Servlet,去掉注解。

  ③在“web.xml”中创建访问路径

  

 servlet 

 

   servlet-name HelloServlet /servlet-name

   servlet-class com.hh.Servlet.HelloServlet /servlet-class

   /servlet

   servlet-mapping

   servlet-name HelloServlet /servlet-name

   url-pattern /hello /url-pattern

   /servlet-mapping

 

  ④设置“HelloServlet”中的代码

  

package com.hh.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 HelloServlet extends HttpServlet {

   protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

   doGet(request,response);

   protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

   System.out.println("访问到了HelloServlet");

  }

 

  ⑤将服务器进行简单修改,将Name可以设置为“filter_listener”,使用“Chrome”,使用“Redeploy”.

  ⑥为这次请求创建一个过滤器,创建过滤器的步骤:

  a.新建一个类,“com.hh.filter.HelloFilter”,使这个类实现一个接口“Filter”,该接口的包是“javax.servlet”

  b.实现一个类

  c.实现接口中的所有抽象方法,使用快捷键“ctrl+o”。有“init”、“doFilter”、“destroy”

  

 @Override

 

   public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

   //当前过滤器的核心方法

   System.out.println("访问到了HelloFilter");

   //放行代码

   filterChain.doFilter(servletRequest,servletResponse);

   System.out.println("这是过滤器放行后的代码");

   }

 

  d.配置过滤器的过滤路径,在“web.xml”中设置

  

 filter 

 

   filter-name HelloFilter /filter-name

   filter-class com.hh.filter.HelloFilter /filter-class

   /filter

   filter-mapping

   filter-name HelloFilter /filter-name

   url-pattern /hello /url-pattern

   /filter-mapping

 

  刷新服务器后,在弹出的超链接页面中点击超链接,在后台的运行顺序为:

  

  (3)结论:请求发出,如果符合过滤器的过滤要求,执行放行前代码;放行,执行目标资源;目标资源执行完毕,会执行放行后的代码;

  三、过滤器生命周期

  需要了解:filter对象什么时候创建、对象类的方法什么时候执行、对象什么时候销毁

  (1)在“HelloFilter”中创建一个构造器,使用快捷键“Alt+Insert”,点击“Constructor”

  

public HelloFilter() {

 

   System.out.println("HelloFilter的构造器被执行了");

  }

 

  (2)在“HelloFilter”中的“init”、“destroy”中添加输出语句

  

 @Override

 

   public void init(FilterConfig filterConfig) throws ServletException {

   System.out.println("HelloFilter在进行初始化");

   @Override

   public void destroy() {

   System.out.println("HelloFilter被销毁了");

   }

 

  (3)filter对象是在特定情况下被创建,filter对象是在特定情况下被执行。

  即“在web项目被加载的时候,过滤器对象被创建”,之后立刻执行初始化方法;n次发送符合过滤器路径的请求时,直接执行n次“doFilter”方法;web项目被卸载的时候(服务器关闭),对象被销毁,销毁之前,执行destroy方法。

  (4)验证结论:

  

  将服务器关闭后,过滤器被销毁

  

  以上就是学习笔记——过滤器、过滤器的HelloWord、过滤器生命周期(过滤器sg)的详细内容,想要了解更多 学习笔记——过滤器、过滤器的HelloWord、过滤器生命周期的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: