为了账号安全,请及时绑定邮箱和手机立即绑定

Java Web开发技术应用——过滤器

难度初级
时长 1小时40分
学习人数
综合评分9.53
339人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.3 逻辑清晰
  • 生命周期.

    查看全部
  • 做笔记了.

    查看全部
  • 过滤器处理乱码问题,在doFilter中添加request.setCharacterEncoding(charset)

    查看全部
    0 采集 收起 来源:编码转换案例

    2019-11-14

  • 过滤器在实际项目中的应用场景

    1、对用户请求进行统一认证(判断当前用户是否符合认证条件,不符合时进行一些处理)——>登陆校验

    2、编码转换(转换一些字符集编码,防止开发中乱码问题)

    3、对用户发送的数据进行过滤替换(防止注入一些攻击,对参数进行检测和判别)

    4、转换图像格式(对response进行后处理,并转换它的格式输出)

    5、对响应的内容进行压缩(可以对内容进行加密操作,数据拿过来时进行加密,加密之后解析再返回给用户)


    查看全部
    0 采集 收起 来源:登录案例

    2019-11-14

  • Servlet3.0支持异步处理,Filter可以支持异步操作模式。

    @WebFilter中asyncSupported设置为true,dispatcherTypes属性中添加DispatcherType.ASYNC

    request中的startAsync()表示开启异步操作,返回AsyncContext对象。将此对象传给线程可以获取request,response对象。

    http://img1.sycdn.imooc.com//5dcd2b660001308008430154.jpg

    使用线程对事务异步处理

    http://img1.sycdn.imooc.com//5dcd29000001067e07610334.jpg

    web.xml中Servlet要配置支持异步

    http://img1.sycdn.imooc.com//5dcd2be20001a8ff08120077.jpg

    从结果来看业务是由线程异步完成,线程休眠10s后输出结果

    http://img1.sycdn.imooc.com//5dcd2c46000144a005390114.jpg





    查看全部
    • ERROR:目标资源是通过声明式异常处理机制调用时,过滤器将被调用。

    在web.xml中配置错误状态码,错误页面路径。

    http://img1.sycdn.imooc.com//5dca78710001a12603950094.jpg

    再配置过滤器处理异常请求,url-pattern配置为错误页面路径,注意dispatcher必须要配置为ERROR,才能在发生错误,跳转到错误页面时调用过滤器。

    http://img1.sycdn.imooc.com//5dca78b10001556306900193.jpg

    • Servlet3.0 ASYNC 支持异步处理:Filter将异步处理完成相关操作,将一直往下执行。

      @WebFilter 用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器。

      http://img1.sycdn.imooc.com//5dca804a0001b45608660103.jpg

      http://img1.sycdn.imooc.com//5dca81d50001706908750515.jpg

    查看全部
  • Servlet2.5中过滤器的分类:

    • REQUEST:用户直接访问页面时,Web容器将会调用过滤器。

    • FORWARD:目标资源是通过RequestDispatcher的forward访问时,该过滤器将被调用。

    • INCLUDE:目标资源是通过RequestDispatcher的include方法调用时,过滤器将被调用。


    重定向sendRedirect,属于REQUEST行为,会被dispatcher配置为REQUEST的Filter处理。

    转发getRequestDispatcher().forward(req,res),属于FORWARD行为,会被dispatcher配置为FORWARD的Filter处理。

    getRequestDispatcher().include(req,res),属于INCLUDE行为,会被dispatcher配置为INCLUDE的Filter处理。

    http://img1.sycdn.imooc.com//5dca6fae00013de007530093.jpg

    在jsp页面使用jsp动作标签forward,include 也能实现被相应过滤器处理。

    http://img1.sycdn.imooc.com//5dca71570001578605880053.jpg

    查看全部
  • 过滤器链:针对一个用户的请求,找到匹配的过滤器有多个。服务器会按照web.xml中过滤器定义的先后顺序组装成一条链。

    执行顺序:用户的请求到达过滤器1,执行过滤器1的Chain.doFilter放行前的代码,过滤器1放行后,请求到达过滤器2的Chain.doFilter放行前的代码,过滤器2放行后,请求到达web资源。响应数据首先,返还给过滤器2,执行过滤器2的Chain.doFilter后的代码,再执行过滤器1的Chain.doFilter后的代码,最后响应给用户。http://img1.sycdn.imooc.com//5dca69510001d4f410040530.jpg

    查看全部
    1. 实现javax.servlet.Filter接口

      http://img1.sycdn.imooc.com//5dc7c6a80001eac309170515.jpg

    2. 在web.xml中注册

      http://img1.sycdn.imooc.com//5dc7c4ea00014e0308180529.jpg

      针对一个<filter> 可以配置多个<filter-mapping>

      <url-pattern>中  * 代表任意值   /index*代表index为前缀的URL, /*代表所有URL。

      http://img1.sycdn.imooc.com//5dc7ca990001dcd405920088.jpg

      在的FilterChain的dofilter(servletRequest, servletResponse)方法执行后,访问JSP(目标资源)后,才继续往下执行。

    问题环节:

    【1】过滤器是否能改变用户请求的Web资源呢?也就是能否改变用户请求的路径?

    答:可以,比如:登录,检测到不符合要求,则可以跳转到登陆页面。

    【2】过滤器能否直接返回数据,能不能直接处理用户请求?

    答:不可以,因为Filter不是标准的Servlet,不能把数据直接返回到用户请求,只能跳转到Web请求的资源,或者跳转、重定向到其他的Web资源。

    查看全部
  • web容器启动时加载过滤器,用户的请求经过过滤器,再由过滤器将请求发送给Web资源,Web资源的响应发送给过滤器,过滤器将Web资源的响应发送给用户。

    http://img1.sycdn.imooc.com//5dc7bffc0001073708540517.jpg

    过滤器的生命周期:

    web容器启动时根据web.xml的配置实例化一次,初始化。

    过滤是根据过滤器中的doFilter()方法。

    web容器关闭时过滤器销毁。


    http://img1.sycdn.imooc.com//5dc7c00600011fe508340543.jpg

    查看全部
  • 过滤器:过滤源、过滤规则、过滤结果

    Web过滤器过滤用户请求,不处理结果

    过滤器定义:过滤器是一个服务端的组件,它可以截取用户端的请求与响应信息,并对这些信息过滤。

    查看全部
  • init();//初始化

    dofilter();//执行

    destroy();//销毁过滤器


    查看全部
  • 过滤器在web.xml中配置且只加载一次

    查看全部
  • 通过在过滤器中修改字符编码的方式

    查看全部
    0 采集 收起 来源:编码转换案例

    2019-09-05

  • 请求中文参数乱码的修改方式:

    1. 修改tomcat字符集;

    2. 添加编码过滤器;

    3. 代码中通过getBytes()获取字节码强制转换。

    查看全部
    0 采集 收起 来源:编码转换案例

    2019-09-05

举报

0/150
提交
取消
课程须知
童鞋们,过滤器是Java Web开发的内容。学习前需要掌握Java基础知识、并熟悉JSP和Servlet。如未学习上述知识,可移步网站相关课程。
老师告诉你能学到什么?
通过本课程的学习,你可以了解过滤器的基础知识,并可以自己动手编写过滤器。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!