web.xml之Servlet配置

 

定义:

 <servlet>
  <servlet-name>myservlet</servlet-name>
  <servlet-class>com.myapp.controller.MyFirstServlet</servlet-class>
  <init-param>
   <param-name>ServletInitParam</param-name>
   <param-value>你好</param-value>
  </init-param>
  <load-on-startup>0</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>myservlet</servlet-name>
  <url-pattern>/myFirstServlet.do</url-pattern>
 </servlet-mapping>


<servlet-name>指定servlet的名称
<servlet-class>指定servlet的类的名称
<init-param>用来定义参数,可有多个init-param。在servlet类中通过getInitParamenter(String name)方法访问初始化参数
<load-on-startup>指定web应用启动时,装载servlet的次序。当值为负数或未定义时Servlet容器将在web客户首次访问此servlet时加载它;当值为正数或未定义时Servlet容器先加载数值小的servlet
<url-pattern>指定servlet所对应的URL
### 如何在 `web.xml` 文件中正确配置 Servlet #### 配置 Servlet 的基本结构 在 Java Web 开发中,通过 `web.xml` 文件可以完成对 Servlet 的注册和映射。以下是完整的配置过程以及各部分参数的含义。 #### 1. 定义 Servlet 名称及其对应的类路径 在 `<servlet>` 节点下定义一个 servlet 的名称,并指定其关联的具体类路径: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <!-- 定义 servlet 的逻辑名 --> <servlet-class>mypackage.MyServletClass</servlet-class> <!-- 指定 servlet 所属的全限定类名 --> </servlet> ``` 上述代码中的 `<servlet-name>` 是该 servlet 的唯一标识符,在整个应用范围内有效;而 `<servlet-class>` 则指定了实际实现此 servlet 功能的类所在位置[^1]。 #### 2. 映射 URL 请求至特定 Servlet 为了让客户端能够通过 HTTP 协议访问某个 servlet,还需要将其与具体的 URL 地址绑定起来。这可以通过 `<url-pattern>` 实现: ```xml <servlet-mapping> <servlet-name>MyServlet</servlet-name> <!-- 对应之前定义好的 servlet 名字 --> <url-pattern>/my-servlet-path</url-pattern> <!-- 设置可被外部调用的虚拟路径 --> </servlet-mapping> ``` 这里 `/my-servlet-path` 表示当用户请求形如 `http://<server>:<port>/<context-root>/my-servlet-path` 这样的地址时,服务器会将请求转发给名为 `MyServlet` 的处理程序来执行业务逻辑[^3]。 #### 3. 可选:初始化参数设置 如果希望向 servlet 提供一些启动初期就需要使用的固定数据,则可以在部署描述符里加入 `<init-param>` 子节点用于传递这些信息: ```xml <servlet> ... <init-param> <param-name>configFileLocation</param-name> <!-- 参数键 --> <param-value>/WEB-INF/config.properties</param-value> <!-- 参数值 --> </init-param> ... </servlet> ``` 以上片段展示了如何为 servlet 添加初始参数的功能[^2]。 在运行期间,开发人员可通过重写父类方法获取并解析此类配置项的内容以满足个性化需求。 #### 示例完整代码展示 下面给出一段综合性的实例演示了前面提到的所有要点: ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <!-- 注册 MyServlet --> <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>mypackage.MyServletClass</servlet-class> <!-- 初始化参数 --> <init-param> <param-name>greetingMessage</param-name> <param-value>Hello from Init Param!</param-value> </init-param> <!-- 加载顺序控制 (optional)--> <load-on-startup>1</load-on-startup> </servlet> <!-- 将 /example/* 下的所有请求都交给 MyServlet 处理 --> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/example/*</url-pattern> </servlet-mapping> </web-app> ``` 这段 XML 片段不仅完成了基础功能设定还包含了加载优先级调整等内容。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值