JavaWeb —— Servlet 接口与配置

Servlet 配置包含在 web.xml 文件中,主要分为两个步骤:声明 Servlet 对象、创建 Servlet 映射。

1.声明 Servlet 对象

在 web.xml 文件中,通过 <servlet> 标签声明一个 Servlet 对象,在此标签下包含两个核心子元素:<servlet-name> 用于指定 Servlet 的名称,可以自定义;<servlet-class> 用于指定 Servlet 的完整位置

<init-param> 标签用于配置 Servlet 初始化参数,其子标签 <param-name> 用于指定参数名,<param-value> 用于指定参数值

<load-on-startup> 标签可以指定 Servlet 创建的时机:若为负数,则在第一次请求时被创建;若为 0 或正数,则在当前 Web 应用被 Servlet 容器加载时创建,且数字越小越早被创建。

例如:

<servlet>
  <servlet-name>test</servlet-name>
  <servlet-class>servlet.Test</servlet-class>

  <init-param>
    <param-name>username</param-name>
    <param-value>root</param-value>
  </init-param>

  <init-param>
    <param-name>password</param-name>
    <param-value>123456</param-value>
  </init-param>

  <load-on-startup>1</load-on-startup>
</servlet>

2.映射 Servlet

在 web.xml 中声明了 Servlet 对象后,需要映射访问 Servlet 的 URL,该操作使用 <servlet-mapping> 标签进行配置。

<servlet-mapping> 标签包含两核心个子元素:<servlet-name> 与 <servlet> 标签中的 <servlet-name> 元素相对应,不可随意命名;<url-pattern> 用于映射访问 URL,在 Servlet 映射到的 URL 中,可以使用通配符 *,但只有两种格式:*.扩展名、/*

同一 Servlet 可以被映射到多个 URL 上,即多个 <servler-mapping> 元素的 <servlet-name> 子元素的设置值可以是同一个 Servlet 的注册名。

例如:

<servlet-mapping>
  <servlet-name>test</servlet-name>
  <url-pattern>/servlet/Test</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>test</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>
Servlet 是 JavaEE 规范中的一部分,是处理 Web 请求的组件。Servlet 运行在服务器端,能够接收客户端发来的请求,并给客户端响应结果。下面我们来看看 Servlet 的基本概念使用方法。 ## 一、Servlet 的基本概念 ### 1.1 Servlet 的生命周期 Servlet 的生命周期包含以下三个阶段: - 初始化阶段(init):当 Servlet 实例化后,Web 容器会调用其 init() 方法进行初始化操作。在此阶段,Servlet 可以执行一些初始化操作,例如读取配置信息、建立数据库连接等。 - 请求处理阶段(service):当客户端发来请求时,Web 容器会创建一个线程调用 Servlet 的 service() 方法处理请求。在此阶段,Servlet 可以获取请求参数、处理请求并生成响应数据。 - 销毁阶段(destroy):当 Web 应用停止或 Servlet 被卸载时,Web 容器会调用 Servlet 的 destroy() 方法进行清理工作。在此阶段,Servlet 可以释放资源、关闭数据库连接等。 ### 1.2 Servlet配置 在使用 Servlet 时,需要在 web.xml 文件中进行配置。以下是一个 Servlet 的基本配置: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myservlet</url-pattern> </servlet-mapping> ``` 其中,servlet-name 表示 Servlet 的名称,servlet-class 表示 Servlet 的类名,url-pattern 表示请求的 URL 匹规则。 ## 二、Servlet 的使用方法 ### 2.1 编写 Servlet 编写 Servlet 有两种方法:一种是继承 HttpServlet 类,另一种是实现 Servlet 接口。这里以继承 HttpServlet 类为例: ```java public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 处理 GET 请求 PrintWriter out = resp.getWriter(); out.println("Hello, world!"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 处理 POST 请求 PrintWriter out = resp.getWriter(); out.println("Hello, world!"); } } ``` 在 Servlet 中,doGet() 方法用于处理 GET 请求,doPost() 方法用于处理 POST 请求。通过调用 HttpServletResponse 对象的 getWriter() 方法可以向客户端返回响应数据。 ### 2.2 部署 Servlet 将编写好的 Servlet 部署到 Web 容器中,有两种方法:一种是将 Servlet 类打成 war 包放到 Web 容器的 webapps 目录下,另一种是通过 Eclipse 等开发工具将 Servlet 部署到 Web 容器中。部署完成后,可以通过访问 Servlet 的 URL 来测试 Servlet 是否正常工作。 ## 三、总结 本文介绍了 Servlet 的基本概念使用方法。Servlet 是 Java Web 开发中非常重要的组件,掌握 Servlet 的使用方法对于 Java Web 开发人员来说是必不可少的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值