前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java学习笔记-全栈-web开发-11-JavaWeb三大组件

Java学习笔记-全栈-web开发-11-JavaWeb三大组件

作者头像
devi
发布2021-08-18 15:29:13
3220
发布2021-08-18 15:29:13
举报
文章被收录于专栏:搬砖记录

三大组件包含:Servlet、Filter、Listener Servlet已经多次使用,本章会对其做一个重点总结,并推荐一些Filter、Listener较好的博文,并总结相关重点。 基本的使用方法请自行百度。


1. Servlet

前面已经多次使用,可以看到,Servlet就是前端与后端交互的门户,接收请求,响应数据。

servlet被称为控制器,它接受Web请求,分发调用不同的逻辑或服务(service)完成一项事情,然后响应数据。

在这里插入图片描述
在这里插入图片描述

2. Filter

过滤器,顾名思义,就是对请求进行过滤操作的。 通过过滤,能够对请求进行拦截、处理等操作。

常用于实现url级别的权限访问,敏感词汇过滤,解决编码问题等等.

2.1 原理

Filter接口中有一个doFilter方法,当我们编写好Filter,并配置对哪个web资源进行拦截后,WEB服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法,因此,在该方法内编写代码可达到如下目的:

  • 调用目标资源之前,让一段代码执行。
  • 是否调用目标资源(即是否拦截用户访问web资源)。
  • 调用目标资源之后,让一段代码执行。

web服务器在调用doFilter方法时,会传递一个filterChain对象进来,filterChain对象是filter接口中最重要的一个对象,它也提供了一个doFilter方法,我们可以根据需求决定是否调用此方法,调用该方法,则web服务器就会调用web资源的service方法,即web资源就会被访问,否则web资源不会被访问。

在这里插入图片描述
在这里插入图片描述

2.2 推荐学习

推荐学习 Filter

2.3 重点总结

2.3.1 HttpServletRequest、ServletRequest与RequestFacade的关系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ServletRequest:这个是doFilter中request形参的类型。是接口

HttpServletRequest:这个是doPost中request形参的类型。是接口继承ServletRequest

RequestFacade:这个是打印request形参出现的。是Facade模式对外提供的类实现HttpServletRequest

结论: doPost中request形参跟doFilter中request形参是同一个RequestFacade

结论理所应当: 从浏览器传递过来的request经过一系列过滤之后,传递到servlet中,无论怎样过滤,自然也还是原来那个request对象。

想要进一步了解,请学习Facade模式

2.3.2 解决编码问题

Tomcat 8.0以上版本

  • get请求不会有中文乱码问题
  • post请求会有中文乱码问题
    • 对于post请求页面,设置request.setCharacterEncoding(“UTF-8”)

对post请求页面编写过滤器,增加 request.setCharacterEncoding(“UTF-8”)

3. Listener

3.1 简介

Listener翻译为“监听器”,也就是:对某些对象进行监听

监听对象的什么呢? 监听对象的生命周期

有什么用? 生命周期:就是对象从创建到销毁的一系列过程。 通过监听生命周期,能够在某些特定的时期(比如创建时、销毁时)进行操作

可监听对象包括?

3.2 推荐学习

这是我见过最好的Listener学习笔记。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/12/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Servlet
  • 2. Filter
  • 2.1 原理
    • 2.2 推荐学习
      • 2.3 重点总结
        • 2.3.1 HttpServletRequest、ServletRequest与RequestFacade的关系
        • 2.3.2 解决编码问题
    • 3. Listener
      • 3.1 简介
        • 3.2 推荐学习
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档