组件 | 作用 | 特点 |
Servlet | 服务端小程序,负责接收客户端请求并作出响应 | 单例对象,默认第一次访问创建,可以通过配置指定服务器启动就创建,Servlet创建完毕会执行初始化init方法,但缺点就是一个业务功能就需要配置一个Servlet |
Filter | 过滤器,负责对客户端请求进行过滤操作 | 单例对象,服务器启动时就创建,对象创建完毕就执行init方法,对客户端的请求进行过滤,符合要求就放行,不符合要求就直接响应客户端,执行过滤的核心方法doFIlter |
Listener | 监听器,负责对域对象的创建和属性变化进行监听的 | 根据类型和作用的不同,又可分为监听域对象创建销毁和域对象属性内容变化的,根据监听的域不同,又可分为监听Request域的,监听Session域的,监听ServletContext域的 |
Servlet作为Controller的问题 | 解决思路 |
每个业务功能请求都对应一个Servlet | 根据业务模块区划分Controller |
每个Servlet的业务操作太繁琐 | 将通用的行为,功能进行抽取封装 |
Servlet获得Spring容器的组件只能通过客户端代码去获取,不能整合 | 通过Spring的拓展点,去封装一个框架,从原有的Servlet完全接手过来web层的业务 |
负责共有行为的Servlet称为前端控制器,负责业务行为的JavaBean称为控制器Controller