Servlet与JSP入门

本文介绍了Servlet的生命周期,包括加载、初始化、提供服务及销毁过程。此外还详细讲解了两种部署Servlet的方法:通过web.xml配置文件定义Servlet及其URL映射,以及在支持Servlet3.0规范的容器中使用注解进行部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<1>Servlet生命周期

   Servlet作为一种在容器中运行的组件,有一个从创建到销毁的过程,这个过程被称为Servlet生命周期。
  1. 加载和实例化Servlet

  2. 初始化Servlet,init()

  3. 提供服务service()

  4. 销毁destroy()

<2>编写Servlet

  Servlet作为Web应用程序的组件需要部署到容器中才能运行。

方式一:
部署描述文件(web.xml),也叫配置文件
部署描述文件是可用来初始化Web应用程序的组件。
Web容器在启动时读取该文件,对应用程序进行配置。

代码示例:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>   
  <!-- <welcome-file-list>元素
     为Web应用程序指定默认的页面。
  -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <!-- <servlet>元素 
     为Web应用程序定义一个Servlet。
     容器用com.demo.HelloServlet类创建一个名为helloServlet的Servlet。
     (1)<servlet-name>元素,用来定义Servlet名称,必选且唯一。
     (2)<servlet-class>元素,用来指定Servlet类的完整名称。容器将使用该类创建Servlet实例。
     一个Servlet类可以定义多个Servlet,可创建多个实例,每个实例有一个名字。
     (3)<init-param>元素,用来定义向Servlet传递的初始化参数。
     在一个<servlet>元素中可以定义任意多个<init-param>元素.
     每个<init-param>元素必须有且仅有一组<param-name>和<param-value>子元素。
     <param-name>定义参数名,<param-value>定义参数值。
     (4)<load-on-startup>元素,指定是否在Web应用程序启动时载入该Servlet。
     该元素的值是一个整数。若没有指定该元素或其内容为负数,容器则根据需要决定何时装入Servlet;
     若内容是一个正数,则在Web应用程序启动时载入该Servlet。
     对于不同的Servlet,可以指定不同的值,可以控制容器装入这些Servlet的顺序,值小的先装入。
  -->
  <servlet>
     <servlet-name>helloServlet</servlet-name>
     <servlet-class>com.demo.HelloServlet</servlet-class> 
     <load-on-startup>2</load-on-startup>
  </servlet>
  <!-- <servlet-mapping>元素
     定义一个映射,它指定哪个URL模式被该Servlet处理。容器使用这些映射根据实际的URL访问合适的Servlet。
     <servlet-name>元素使用<servlet>元素定义的Servlet名。
     <url-pattern>可以包含要与该Servlet关联的模式字符串。
     <url-pattern>的三种形式:
     (1)目录匹配:以斜杠“/”开头,以“/*”结尾的形式。
     <url-pattern>/com.demo/*</url-pattern>
     (2)扩展名匹配:以星号“*.”开始,后接一个扩展名(如*.do或*.html等)。
     <url-pattern>*.do</url-pattern>
     (3)精确匹配:所有其他字符串都作为精确匹配。
     <url-pattern>/com.demo/HelloServlet</url-pattern>
   -->
  <servlet-mapping>
     <servlet-name>helloServlet</servlet-name>
     <url-pattern>/com.demo/HelloServlet</url-pattern>
  </servlet-mapping>
</web-app>

方式二:
在支持Servlet3.0规范的容器中可以使用注解部署Servlet。

代码示例:
@WebServlet(name = helloServlet",urlPatterns ={"/helloServlet.do"})

这里使用@WebServlet注解为该Servlet指定一个名称(helloServlet)和一个URL映射模式(/helloServlet.do),在浏览器中访问该Servlet的URL如下:
http://localhost:8080/testservlet/helloServlet.do
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值