javaWeb 三大组件是指 Servlet、Filter、Listener ,以下为你介绍:
Servlet
- 定义:是 Java EE 中用于处理客户端请求并生成响应的组件,运行在 Web 服务器上。它通过实现
javax.servlet.Servlet
接口或继承HttpServlet
类来创建。 - 作用:主要负责处理 HTTP 请求,接收客户端发送的数据,进行业务逻辑处理,并将处理结果返回给客户端。例如,开发一个用户登录功能,可编写一个 Servlet 来接收用户提交的用户名和密码,与数据库进行比对验证,并返回登录结果。
- 生命周期:包括初始化(调用
init
方法)、处理请求(调用service
、doGet
、doPost
等方法)和销毁(调用destroy
方法)三个阶段 。
Filter
- 定义:过滤器是 JavaWeb 的组件,实现
javax.servlet.Filter
接口,能够对 Web 资源的请求和响应进行拦截和处理。 - 作用:常用于完成通用操作,如登录校验(判断用户是否登录,未登录则阻止访问受保护资源)、统一编码处理(设置请求和响应的字符编码,避免乱码问题)、敏感字符过滤(对用户输入数据中的敏感词汇进行替换或拦截)等。
- 执行流程:客户端请求到达服务器时,先经过过滤器的
doFilter
方法处理,过滤器可决定是放行请求让其继续访问目标资源,还是返回特定响应阻止访问。
Listener
- 定义:监听器是 JavaWeb 中能够监听 Web 应用程序中某些事件(如 ServletContext、HttpSession、ServletRequest 的创建、销毁、属性变化等)的组件,通过实现相应的监听器接口来创建。
- 作用:用于在特定事件发生时执行相应逻辑。比如,
HttpSessionListener
可监听会话的创建和销毁,在会话创建时进行资源初始化,在会话销毁时进行资源清理;ServletRequestAttributeListener
可监听请求属性的添加、删除和替换等操作,进行日志记录或其他相关处理。