JavaWeb的三大组件
引言
- 什么是过滤器?
- 什么是监听器?
- Servlet是什么?
Servlet容器
概念
- servlet是一种运行服务端的java应用程序,具有独立于平台和协议的特性,并且可以动态地生成web页面,它工作在客户端请求与服务器响应的中间层。
作用
- 在JavaWeb的B/S架构中,servlet作为一个中转处理的容器,它连接了客户端和服务端的信息交互和处理。简单来说,客户端发送请求,传递到servlet容器,而servlet将数据转换成服务端可以处理的数据后再发送给服务器端。数据处理之后,再传递到servlet容器,servlet再转译到客户端,由此我们就完成了一次客户端和服务端的信息交互了。
Servlet的生命周期(4个阶段)
- 第一个阶段,实例化,调用构造方法
- 第二个阶段,初始化,调用init()方法
- 第三个阶段,请求处理,调用service()方法
- 第四个阶段,销毁阶段,调用destroy()方法
前端如何将数据传递给Servlet?
- 前端只需要提交表单即可以将数据传递给Servlet,而Servlet则使用request.getParameter来接收,传递给前端就可以使用request.setAttribute来赋值。(虽然使用框架不用手写Servllet,但是我们需要掌握它的思想)
执行过程
- 客户端发出http请求;
- web服务器将请求转发到servlet容器;
- servlet容器解析url并根据web.xml找到相对应的servlet,并将request、response对象传递给找到的servlet;
- servlet根据request就可以知道请求者、请求信息;
- 当servlet处理完业务逻辑后会将信息放入到response并响应到客户端。
Filter过滤器
概念
- Filter是一个可以复用的代码片段,可用用来转换HTTP请求、响应和头信息。Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改某一响应。
作用
- Filter用于拦截用户请求,在服务器做出响应之前,可以在拦截后修改request和response,达到想要实现的功能。例如:如果有不符合的信息将会被filter进行拦截,如果符合则会进行放行,在服务器给客户端响应时也会进行判断 如果有不符合的信息将会被filter进行拦截,如果符合则会进行放行。
Filter过滤器的使用步骤
- 实现一个Filter接口
- 去web.xml进行配置(三大组件基本都需要在web.xml进行注册;除了Listener中的两个(活化钝化监听器,绑定监听器)需要JavaBean实现)
<filter>
<filter-name>MyFirstFilter</filter-name>
<filter-class>com.atguigu.filter.MyFirstFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFirstFilter</filter-name>
<url-pattern>/*</url-pattern>
/**
*url-pattern的三种写法(不能两两组合使用)
*1、精确匹配
* /pics/index.jsp /template/login ;直接拦截指定路径
*2、路径匹配
* /pics/* ;拦截pics下的所有请求
* 3、后缀匹配
* *.jsp ;拦截所有以.jsp结尾的请求
*/
</filter-mapping>
多个Filter的运行顺序
输出顺序1-3-5-4-2
Listener监听器
Listener的8个监听对象
Listener监听器的使用步骤
- 实现对应的监听器接口
- 去web.xml中进行配置
- 注意:有两个Listener是JavaBean需要实现的接口(活化钝化监听器,绑定监听器)(HttpSessionActivitionListener,HttpSessionBindingListener)
【观看尚硅谷视频之后的笔记】