Java-servlet六详细讲解Servlet-Web.xml标签知识
Java-servlet(六)详细讲解Servlet-Web.xml标签知识
前言
- 在上一节博客中,我们详细讲解了如何配置 HTML - servlet环境。
- 然而,在配置过程中,我们使用到的一些代码,尤其是
web.xml文件里的代码,大家可能还不太理解。例如: login com.niit.LoginServlet
login
/login
在这一节中,我们将深入剖析 web.xml 中的这些代码,详细讲解其中各个标签的含义和用法。
我的个人主页,欢迎来阅读我的其他文章
我的Java-servlet文章专栏 欢迎来阅读指出不足
一、servlet标签
标签概念
`` 标签是 web.xml 中非常重要的一个标签,它的主要作用是对 Servlet 进行注册和描述,就像是给 Servlet
办理了一张“身份证”,让服务器能够识别和找到这个 Servlet。
标签结构及示例
login com.niit.LoginServlet
子标签含义
- ``:为 Servlet 起一个简短、易记的名称,类似于人的小名。这个名称在整个
web.xml文件中必须是唯一的,它主要用于在其他标签中引用该 Servlet。例如,在上面的代码中,我们给 Servlet 起名为login。 - ``:指定 Servlet 类的完整包名和类名,告诉服务器这个 Servlet 在项目中的具体位置。服务器会根据这个信息来加载和实例化 Servlet。比如
com.niit.LoginServlet表示LoginServlet类位于com.niit包下。
更多用法示例
register
com.example.RegisterServlet
在这个例子中,我们注册了一个名为 register 的 Servlet,它对应的类是 com.example.RegisterServlet。
二、servlet-mapping标签
标签概念
`` 标签用于建立 URL 与 Servlet 之间的映射关系,就像是给 URL 和 Servlet 之间设置了一个“暗号”,当用户在浏览器中输入特定的 URL 时,服务器能够根据这个映射关系找到对应的 Servlet 并执行。
URL(Uniform Resource Locator)是统一资源定位符的英文缩写,它是一种用于标识互联网上资源位置的标准化字符串。简单来说,URL就是用来告诉计算机网络中的设备(如浏览器、服务器等)如何找到某个资源(如网页、图片、文件等)的地址 。
标签结构及示例
login /login
子标签含义
- **
**:这个子标签的值必须与前面标签中 `` 的值相对应,用于指定该映射关系所对应的 Servlet。例如,这里的login就对应了前面注册的loginServlet。 - ``:指定用户在浏览器中输入的 URL 模式。当用户访问的 URL 与这个模式匹配时,服务器就会将请求转发给对应的 Servlet 进行处理。例如,
/login表示当用户访问http://localhost:8080/login时,服务器会将请求交给loginServlet 处理。
更多用法示例
register
/register
在这个例子中,当用户访问 http://localhost:8080/register 时,服务器会将请求转发给 register Servlet
进行处理。
URL 模式匹配规则
- 精确匹配 :如
/login,只有当用户输入的 URL 完全与之匹配时,才会转发请求。 - 路径匹配 :以
/开头,以/*结尾,例如/user/*,表示所有以/user/开头的 URL 都会匹配该映射。 - 扩展名匹配 :以
*.开头,例如*.do,表示所有以.do结尾的 URL 都会匹配该映射。
三、init-param标签
标签概念
`` 标签用于为 Servlet 提供初始化参数,这些参数可以在 Servlet 初始化时被读取和使用,方便我们对 Servlet 进行配置。
标签结构及示例
configServlet com.example.ConfigServlet
databaseURL jdbc:mysql://localhost:3306/mydb
username root
子标签含义
- ``:指定参数的名称,用于在 Servlet 中引用该参数。
- ``:指定参数的值。
在 Servlet 中获取初始化参数
在 ConfigServlet 中,我们可以通过以下代码获取初始化参数:
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class ConfigServlet extends HttpServlet {
@Override
public void init() throws ServletException {
String databaseURL = getInitParameter(“databaseURL”);
String username = getInitParameter(“username”);
System.out.println(“Database URL: " + databaseURL);
System.out.println(“Username: " + username);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 处理 GET 请求
}
}
四、load-on-startup标签
标签概念
`` 标签用于指定 Servlet 在服务器启动时是否立即加载和初始化。该标签的值是一个整数,服务器会根据这个整数的大小来决定 Servlet 的加载顺序,数值越小,加载越早。
标签结构及示例
preloadServlet com.example.PreloadServlet 1
标签含义
在这个例子中,preloadServlet 会在服务器启动时立即加载和初始化,因为 的值为 1。如果有多个
Servlet 都设置了 标签,服务器会按照数值从小到大的顺序依次加载这些 Servlet。
总结(核心概念速记):
核心概念速记
Servlet 配置 = 理解web.xml 标签体系,掌握 Servlet 注册、映射、参数与生命周期控制
- 核心标签及作用 :
- ``:注册 Servlet,定义名称和类路径,如同 Servlet 的“身份证”。
- ``:建立 URL 与 Servlet 的映射关系,通过“暗号”实现请求转发。
- ``:为 Servlet 提供初始化参数,支持动态配置。
- ``:控制 Servlet 的加载时机与顺序,优化服务器启动性能。
- 各标签关键特点对比
标签名称 主要作用 关键子标签 示例场景 `` 注册 Servlet 、定义 loginServlet 的类路径 `` URL 与 Servlet 绑定 、将 /login请求映射到loginServlet`` 初始化参数配置 、设置数据库连接参数 `` 控制加载顺序与时机 `` 服务器启动时加载关键 Servlet - 发展脉络总结
- 基础配置 :通过
和实现 Servlet 的基本注册与 URL 映射。 - 增强功能 :利用
实现参数化配置,通过优化 Servlet 生命周期。 - 应用场景 :从简单的 Web 应用到复杂的企业级系统,
web.xml标签体系提供了灵活的配置方案。
知识图谱
Java Servlet(六) Web.xml 标签体系
├─ 标签
│ ├─ 注册 Servlet
│ ├─ 子标签:、
│ └─ 示例:注册 login Servlet
├─ 标签
│ ├─ URL 映射关系
│ ├─ 子标签:、
│ ├─ 匹配规则:精确、路径、扩展名
│ └─ 示例:映射 /login 到 login Servlet
├─ 标签
│ ├─ 初始化参数
│ ├─ 子标签:、
│ └─ 示例:配置数据库连接参数
└─ 标签
├─ 控制加载顺序
├─ 数值越小优先级越高
└─ 示例:服务器启动时加载核心 Servlet
关键知识点对比
| 标签 | 作用维度 | 典型使用场景 | 配置效果 |
|---|---|---|---|
| `` | 注册与定位 | 定义 Servlet 类路径 | 服务器识别 Servlet 类 |
| `` | 请求路由 | 定义 URL 到 Servlet 的映射 | 用户访问 /login 触发对应 Servlet |
| `` | 参数化配置 | 数据库连接、系统参数 | Servlet 初始化时读取配置 |
| `` | 生命周期管理 | 预加载关键 Servlet | 减少首次请求延迟,优化性能 |
以上就是这篇博客的全部内容,下一篇我们将继续探索 Java-servlet 的更多精彩内容。
我的个人主页,欢迎来阅读我的其他文章
我的Java-servlet文章专栏 欢迎来阅读指出不足
非常感谢您的阅读,喜欢的话记得三连哦
