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

三大组件包含: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学习笔记。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值