Java-servlet(六)详细讲解Servlet-Web.xml标签知识

devtools/2025/3/17 17:40:26/
xmlns="http://www.w3.org/2000/svg" style="display: none;">

Java-servlet(六)详细讲解Servlet-Web.xml标签知识

  • 前言
  • 一、servlet标签
      • 标签概念
      • 标签结构及示例
      • 子标签含义
      • 更多用法示例
  • 二、servlet-mapping标签
      • 标签概念
      • 标签结构及示例
      • 子标签含义
      • 更多用法示例
      • URL 模式匹配规则
  • 三、init-param标签
      • 标签概念
      • 标签结构及示例
      • 子标签含义
      • 在 Servlet 中获取初始化参数
  • 四、load-on-startup标签
      • 标签概念
      • 标签结构及示例
      • 标签含义
  • 总结(核心概念速记):
    • 知识图谱
    • 关键知识点对比


前言

  • 在上一节博客中,我们详细讲解了如何配置 HTML - servlet环境
  • 然而,在配置过程中,我们使用到的一些代码,尤其是 web.xml 文件里的代码,大家可能还不太理解。例如:
xml"><servlet><servlet-name>login</servlet-name><servlet-class>com.niit.LoginServlet</servlet-class>
</servlet>
<servlet-mapping><servlet-name>login</servlet-name><url-pattern>/login</url-pattern>
</servlet-mapping>

在这一节中,我们将深入剖析 web.xml 中的这些代码,详细讲解其中各个标签的含义和用法。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Java-servlet文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12907265.html?spm=1001.2014.3001.5482

servlet_32">一、servlet标签

标签概念

<servlet> 标签是 web.xml 中非常重要的一个标签,它的主要作用是对 Servlet 进行注册和描述,就像是给 Servlet 办理了一张“身份证”,让服务器能够识别和找到这个 Servlet。

标签结构及示例

xml"><servlet><servlet-name>login</servlet-name><servlet-class>com.niit.LoginServlet</servlet-class>
</servlet>

子标签含义

  • <servlet-name>:为 Servlet 一个简短、易记的名称,类似于人的小名。这个名称在整个 web.xml 文件中必须是唯一的,它主要用于在其他标签中引用该 Servlet。例如,在上面的代码中,我们给 Servlet 起名为 login
  • <servlet-class>:指定 Servlet 类的完整包名和类名,告诉服务器这个 Servlet 在项目中的具体位置。服务器会根据这个信息来加载和实例化 Servlet。比如 com.niit.LoginServlet 表示 LoginServlet 类位于 com.niit 包下。

更多用法示例

xml"><servlet><servlet-name>register</servlet-name><servlet-class>com.example.RegisterServlet</servlet-class>
</servlet>

在这个例子中,我们注册了一个名为 register 的 Servlet,它对应的类是 com.example.RegisterServlet

servletmapping_56">二、servlet-mapping标签

标签概念

<servlet-mapping> 标签用于建立 URL 与 Servlet 之间的映射关系,就像是给 URL 和 Servlet 之间设置了一个“暗号”,当用户在浏览器中输入特定的 URL 时,服务器能够根据这个映射关系找到对应的 Servlet 并执行

URL(Uniform Resource Locator)是统一资源定位符的英文缩写,它是一种用于标识互联网上资源位置的标准化字符串。简单来说,URL就是用来告诉计算机网络中的设备(如浏览器、服务器等)如何找到某个资源(如网页、图片、文件等)的地址

标签结构及示例

xml"><servlet-mapping><servlet-name>login</servlet-name><url-pattern>/login</url-pattern>
</servlet-mapping>

子标签含义

  • <servlet-name>:这个子标签的值必须与前面 <servlet> 标签中 <servlet-name> 的值相对应,用于指定该映射关系所对应的 Servlet。例如,这里的 login 就对应了前面注册的 login Servlet。
  • <url-pattern>:指定用户在浏览器中输入的 URL 模式。当用户访问的 URL 与这个模式匹配时,服务器就会将请求转发给对应的 Servlet 进行处理。例如,/login 表示当用户访问 http://localhost:8080/login 时,服务器会将请求交给 login Servlet 处理。

更多用法示例

xml"><servlet-mapping><servlet-name>register</servlet-name><url-pattern>/register</url-pattern>
</servlet-mapping>

在这个例子中,当用户访问 http://localhost:8080/register 时,服务器会将请求转发给 register Servlet 进行处理。

URL 模式匹配规则

  • 精确匹配:如 /login,只有当用户输入的 URL 完全与之匹配时,才会转发请求。
  • 路径匹配:以 / 开头,以 /* 结尾,例如 /user/*,表示所有以 /user/ 开头的 URL 都会匹配该映射。
  • 扩展名匹配:以 *. 开头,例如 *.do,表示所有以 .do 结尾的 URL 都会匹配该映射。

三、init-param标签

标签概念

<init-param> 标签用于为 Servlet 提供初始化参数,这些参数可以在 Servlet 初始化时被读取和使用,方便我们对 Servlet 进行配置

标签结构及示例

xml"><servlet><servlet-name>configServlet</servlet-name><servlet-class>com.example.ConfigServlet</servlet-class><init-param><param-name>databaseURL</param-name><param-value>jdbc:mysql://localhost:3306/mydb</param-value></init-param><init-param><param-name>username</param-name><param-value>root</param-value></init-param>
</servlet>

子标签含义

  • <param-name>:指定参数的名称,用于在 Servlet 中引用该参数。
  • <param-value>:指定参数的值。

在 Servlet 中获取初始化参数

ConfigServlet 中,我们可以通过以下代码获取初始化参数:

java">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 {@Overridepublic void init() throws ServletException {String databaseURL = getInitParameter("databaseURL");String username = getInitParameter("username");System.out.println("Database URL: " + databaseURL);System.out.println("Username: " + username);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 处理 GET 请求}
}

四、load-on-startup标签

标签概念

<load-on-startup> 标签用于指定 Servlet 在服务器启动时是否立即加载和初始化。该标签的值是一个整数,服务器会根据这个整数的大小来决定 Servlet 的加载顺序,数值越小,加载越早。

标签结构及示例

xml"><servlet><servlet-name>preloadServlet</servlet-name><servlet-class>com.example.PreloadServlet</servlet-class><load-on-startup>1</load-on-startup>
</servlet>

标签含义

在这个例子中,preloadServlet 会在服务器启动时立即加载和初始化,因为 <load-on-startup> 的值为 1。如果有多个 Servlet 都设置了 <load-on-startup> 标签,服务器会按照数值从小到大的顺序依次加载这些 Servlet。

总结(核心概念速记):

核心概念速记
Servlet 配置 = 理解 web.xml 标签体系,掌握 Servlet 注册、映射、参数与生命周期控制

  • 核心标签及作用

    • <servlet>:注册 Servlet,定义名称和类路径,如同 Servlet 的“身份证”。
    • <servlet-mapping>:建立 URL 与 Servlet 的映射关系,通过“暗号”实现请求转发。
    • <init-param>:为 Servlet 提供初始化参数,支持动态配置。
    • <load-on-startup>:控制 Servlet 的加载时机与顺序,优化服务器启动性能。
  • 各标签关键特点对比

    标签名称主要作用关键子标签示例场景
    <servlet>注册 Servlet<servlet-name><servlet-class>定义 login Servlet 的类路径
    <servlet-mapping>URL 与 Servlet 绑定<servlet-name><url-pattern>/login 请求映射到 login Servlet
    <init-param>初始化参数配置<param-name><param-value>设置数据库连接参数
    <load-on-startup>控制加载顺序与时机<load-on-startup>服务器启动时加载关键 Servlet
  • 发展脉络总结

    • 基础配置:通过 <servlet><servlet-mapping> 实现 Servlet 的基本注册与 URL 映射。
    • 增强功能:利用 <init-param> 实现参数化配置,通过 <load-on-startup> 优化 Servlet 生命周期。
    • 应用场景:从简单的 Web 应用到复杂的企业级系统,web.xml 标签体系提供了灵活的配置方案。

知识图谱

Java Servlet(六) Web.xml 标签体系
├─ <servlet> 标签
│  ├─ 注册 Servlet
│  ├─ 子标签:<servlet-name>、<servlet-class>
│  └─ 示例:注册 `login` Servlet
├─ <servlet-mapping> 标签
│  ├─ URL 映射关系
│  ├─ 子标签:<servlet-name>、<url-pattern>
│  ├─ 匹配规则:精确、路径、扩展名
│  └─ 示例:映射 `/login` 到 `login` Servlet
├─ <init-param> 标签
│  ├─ 初始化参数
│  ├─ 子标签:<param-name>、<param-value>
│  └─ 示例:配置数据库连接参数
└─ <load-on-startup> 标签├─ 控制加载顺序├─ 数值越小优先级越高└─ 示例:服务器启动时加载核心 Servlet

关键知识点对比

标签作用维度典型使用场景配置效果
<servlet>注册与定位定义 Servlet 类路径服务器识别 Servlet 类
<servlet-mapping>请求路由定义 URL 到 Servlet 的映射用户访问 /login 触发对应 Servlet
<init-param>参数化配置数据库连接、系统参数Servlet 初始化时读取配置
<load-on-startup>生命周期管理预加载关键 Servlet减少首次请求延迟,优化性能

以上就是这篇博客的全部内容,下一篇我们将继续探索 Java-servlet 的更多精彩内容。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Java-servlet文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12907265.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述


http://www.ppmy.cn/devtools/167884.html

相关文章

​​​​​​​大语言模型安全风险分析及相关解决方案

大语言模型的安全风险可以从多个维度进行分类。 从输入输出的角度来看,存在提示注入、不安全输出处理、恶意内容生成和幻觉错误等风险; 从数据层面来看,训练数据中毒、敏感信息泄露和模型反演攻击是主要威胁; 模型自身则面临拒绝服务和盗窃的风险; 供应链和插件的不安全引…

微信小程序接入deepseek

先上效果 话不多说&#xff0c;直接上代码&#xff08;本人用的hbuilder Xuniapp&#xff09; <template><view class"container"><!-- 聊天内容区域 --><scroll-view class"chat-list" scroll-y :scroll-top"scrollTop":…

LabVIEW VI Scripting随机数波形图自动生成

通过LabVIEW VI Scripting 技术&#xff0c;实现从零开始编程化创建并运行一个随机数波形监测VI。核心功能包括自动化生成VI框架、添加控件与函数、配置数据流逻辑及界面布局优化&#xff0c;适用于批量生成测试工具、教学模板开发或复杂系统的模块化构建。通过脚本化操作&…

文件解析漏洞靶场---解析详解

⽂件解析漏洞是由于中间件错误的将任意格式的⽂件解析成⽹⻚可执⾏⽂件&#xff0c;配合⽂件上传漏洞进⾏ GetShell的漏洞&#xff01; 一、IIS解析漏洞 3个 1. IIS6.X 2个 环境需求&#xff1a;windows2003iis6 安装windows2003&#xff1b; 安装iis&#xff1a;控…

k8s系统学习路径

学习 Kubernetes&#xff08;K8s&#xff09;需要循序渐进&#xff0c;结合理论知识和实践操作。以下是学习 Kubernetes 的推荐步骤&#xff1a; 1. 先决条件 • 掌握容器基础&#xff1a;先学习 Docker&#xff0c;理解容器化概念&#xff08;镜像、容器、仓库&#xff09;、…

【蓝桥杯每日一题】3.16

&#x1f3dd;️专栏&#xff1a; 【蓝桥杯备篇】 &#x1f305;主页&#xff1a; f狐o狸x 目录 3.9 高精度算法 一、高精度加法 题目链接&#xff1a; 题目描述&#xff1a; 解题思路&#xff1a; 解题代码&#xff1a; 二、高精度减法 题目链接&#xff1a; 题目描述&…

【DeepSeek应用】DeepSeek模型本地化部署方案及Python实现

DeepSeek实在是太火了,虽然经过扩容和调整,但反应依旧不稳定,甚至小圆圈转半天最后却提示“服务器繁忙,请稍后再试。” 故此,本文通过讲解在本地部署 DeepSeek并配合python代码实现,让你零成本搭建自己的AI助理,无惧任务提交失败的压力。 一、环境准备 1. 安装依赖库 …

LiveData 与 ViewModel 协同工作:从原理到面试实战

在 Android 开发的技术长河中&#xff0c;Jetpack 架构组件犹如璀璨星辰&#xff0c;其中 LiveData 与 ViewModel 更是在数据管理和 UI 交互领域发挥着举足轻重的作用。 它们的协同工作模式不仅极大地提升了代码的可维护性和稳定性&#xff0c;还成为了众多 Android 开发者面试…