摘要:本文详细介绍了JavaWeb的核心概念。
环境
Windows 10 企业版 LTSC 21H2
Java 1.8
Tomcat 8.5.50
1 HTTP协议
1.1 定义
HTTP(HyperText Transfer Protocol)是一种用于分布式、协作式和超媒体信息系统的应用层协议。它是Web应用的基础,用于客户端和服务器之间的通信。
1.2 请求
HTTP请求由以下部分组成:
- 请求行:包含请求方法、URL和HTTP版本
- 请求头:包含客户端信息、请求参数等
- 请求体:包含请求数据
常见的HTTP请求方法:
- GET:获取资源
- POST:提交数据
- PUT:更新资源
- DELETE:删除资源
- HEAD:获取资源头部信息
- OPTIONS:获取服务器支持的方法
1.3 响应
HTTP响应由以下部分组成:
- 状态行:包含HTTP版本、状态码和状态描述
- 响应头:包含服务器信息、响应参数等
- 响应体:包含响应数据
常见的HTTP状态码:
- 200 OK:请求成功
- 301 Moved Permanently:资源永久移动
- 302 Found:资源临时移动
- 400 Bad Request:请求错误
- 401 Unauthorized:未授权
- 403 Forbidden:禁止访问
- 404 Not Found:资源不存在
- 500 Internal Server Error:服务器内部错误
2 Web容器
2.1 定义
Web容器(也称为Servlet容器)是运行JavaWeb应用的环境,它负责管理Servlet的生命周期、处理HTTP请求和响应、提供会话管理等功能。
2.2 产品
常见的Web容器:
- Tomcat:Apache基金会的开源Web容器,是最流行的JavaWeb容器
- Jetty:轻量级Web容器,适合嵌入式应用
- WebSphere:IBM的商业Java EE应用服务器
- WebLogic:Oracle的商业Java EE应用服务器
- GlassFish:Oracle的开源Java EE应用服务器
2.3 功能
Web容器的功能:
- Servlet管理:创建、初始化、调用和销毁Servlet
- 请求处理:解析HTTP请求,将请求分发给对应的Servlet
- 响应处理:将Servlet的响应转换为HTTP响应
- 会话管理:管理用户会话
- 安全管理:提供认证和授权功能
- 资源管理:管理Web应用的资源
3 Servlet
3.1 定义
Servlet是JavaWeb的核心组件,它是一个Java类,用于处理HTTP请求和生成HTTP响应。
3.2 生命周期
Servlet的生命周期包括以下阶段:
- 加载和实例化:Web容器加载Servlet类并创建实例
- 初始化:调用
init()方法,初始化Servlet - 服务:调用
service()方法,处理HTTP请求 - 销毁:调用
destroy()方法,释放资源
3.3 工作原理
Servlet的工作原理:
- 客户端发送HTTP请求到Web容器
- Web容器根据请求URL找到对应的Servlet
- Web容器创建HttpServletRequest请求对象和HttpServletResponse响应对象
- Web容器调用Servlet的
service()方法,处理请求,生成响应 - Web容器将响应返回给客户端
3.4 类和接口
Servlet主要包括以下类和接口:
- Servlet:所有Servlet的根接口
- GenericServlet:通用Servlet实现
- HttpServlet:处理HTTP请求的Servlet实现
- HttpServletRequest:表示HTTP请求
- HttpServletResponse:表示HTTP响应
4 Listener
Listener(监听器)是JavaWeb的组件,用于监听Web应用的事件。
5 Filter
Filter(过滤器)是JavaWeb的组件,用于拦截和处理HTTP请求和响应。
6 JSP
JSP(Java Server Pages)是一种动态网页技术,它允许在HTML页面中嵌入Java代码。
7 会话管理
7.1 定义
会话(Session)是指客户端和服务器之间的一次交互过程。在Web应用中,会话用于存储用户的状态信息。
7.2 Cookie
Cookie是存储在客户端的小型文本文件,用于跟踪用户会话。
特点:
- 存储在客户端
- 大小限制(通常为4KB)
- 可以设置过期时间
- 可以被禁用
7.3 Session
Session是存储在服务器端的会话对象,用于存储用户的状态信息。
特点:
- 存储在服务器端
- 没有大小限制
- 会话过期后自动销毁
- 更安全
条