抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

摘要:本文详细介绍了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的生命周期包括以下阶段:

  1. 加载和实例化:Web容器加载Servlet类并创建实例
  2. 初始化:调用init()方法,初始化Servlet
  3. 服务:调用service()方法,处理HTTP请求
  4. 销毁:调用destroy()方法,释放资源

3.3 工作原理

Servlet的工作原理:

  1. 客户端发送HTTP请求到Web容器
  2. Web容器根据请求URL找到对应的Servlet
  3. Web容器创建HttpServletRequest请求对象和HttpServletResponse响应对象
  4. Web容器调用Servlet的service()方法,处理请求,生成响应
  5. 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应用中,会话用于存储用户的状态信息。

Cookie是存储在客户端的小型文本文件,用于跟踪用户会话。

特点:

  • 存储在客户端
  • 大小限制(通常为4KB)
  • 可以设置过期时间
  • 可以被禁用

7.3 Session

Session是存储在服务器端的会话对象,用于存储用户的状态信息。

特点:

  • 存储在服务器端
  • 没有大小限制
  • 会话过期后自动销毁
  • 更安全

评论