首页IT科技过滤器生命周期方法(学习笔记——过滤器、过滤器的HelloWord、过滤器生命周期)

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

时间2025-08-03 17:08:24分类IT科技浏览5400
导读:2023-01-06...

2023-01-06

一               、过滤器(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                       ,创建一个超链接

②在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)验证结论:

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

声明:本站所有文章                      ,如无特殊说明或标注        ,均为本站原创发布                       。任何个人或组织        ,在未征得本站同意时                      ,禁止复制                       、盗用        、采集               、发布本站内容到任何网站                       、书籍等各类媒体平台                       。如若本站内容侵犯了原著者的合法权益               ,可联系我们进行处理。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
python中迭代器的基本方法(Python 迭代器Iterator详情) 倒带官网最新版(2022 倒带 – NutUI)