Servlet

课程介绍:

1. 概念:

  • Servlet是运行在服务器上的类,java类,用来实现一些接口。
    Servlet容器为JavaWeb应用提供运行时的环境,它负责管理Servlet和JSP的生命周期,以及管理它们的共享数据。
    Servlet容器也称为JavaWeb应用容器,或者Servlet/JSP容器。Servlet容器负责Servlet和客户的通信以及调用Servlet的方法Servlet和客户的通信采用“请求/响应”的模式。

2. Servlet的功能:

  • 1)接收客户请求的HTTP协议,解析。获取用户发送的请求
    2)返回一个http的响应协议,让浏览器再去解析。
    在这里插入图片描述
    Requesr客户请求
    Response服务器响应
    Servlet包含一组servlet
    3)开服一个Servlet的三种方法:
    a.实现Javax.servelt.Servlet接口
    b.继承Javax.servlet.GenericServlet
    c.继承javax.Servlet.http.HttpServlet.

3 .Servlet的生命周期

Servlet的生命周期,指的是Servlet的出生到结束。分别经历了加载、初始化、服务、销毁。启动tomcat、访问项目、访问项目、停止tomcat。
加载阶段:加载并实例化(创建servlet实例)
初始化阶段: 调用init()方法
响应客户请求阶段:调用service()方法,一般业务逻辑在这里处理,该方法在访问该servlet时,会被调用
终止阶段:调用destroy()方法
第一次访问请求:
在这里插入图片描述

第二次访问请求:
在这里插入图片描述

  1. servlet就是一个普通的java类,要是实现servlet
    有三种方法:
  • 实现javac.servlet.Servlet接口
  • 继承javax.servlet.GenericServlet
  • 继承javax.servlet.http.HttpServlet(推荐)
    一般我们用eclipse去创建servlet时,他可以自动帮我们生成一个servlet
    2)在web.xml去配置和映射servlet
<!-- 配置servlet和映射servlet -->
  <!-- 先注册一个servlet -->
  <servlet>
  <!-- servlet注册名 -->
  <servlet-name>hello</servlet-name>
  
  <!-- servlet的一个全类名 -->
  <servlet-class>com.hpe.servlet.HelloServlet</servlet-class>
  </servlet>
  <!-- 映射 -->
  <servlet-mapping>
  <!-- 必须和注册名保持一致 -->
  <servlet-name>hello</servlet-name>
  <!-- 声明访问路径  /代表当前web应用名-->
  <url-pattern>/hello</url-pattern>
  </servlet-mapping>

在浏览器的访问路径就是:http://localhost:8080/Servlet01/hello
重点:
2. servlet容器,运行servlet,jsp等组件的运行环境
1).负责管理servlet声明周期
2).声明周期方法:由servlet容器负责调用
构造器:只被调用一次,第一次请求servlet时,创建servlet实例,调用该构造器,servlet是单实例的
init:只被调用一次,在创建好servlet实例后,立即被调用,负责初始化servlet
service:被调用多次,每次请求都会被调用service方法,用于响应请求
destroy:只被调用一次,在当前servlet所在的web应用被卸载的时候,用于释放当前servlet所占用的资源

  1. load-on-startup:指定servlet创建和初始化的时机
    1)
<servlet>
  <servlet-name>one</servlet-name>
  <servlet-class>com.hpe.servlet.Onservlet</servlet-class>
  <load-on-startup>-1</load-on-startup>
  </servlet>

2)load-on-startup:如果为负数,在第一次请求servlet时创建和初始化
如果是正数或0,在当前web应用加载的时候创建该实例
数值越小越早创建
4. servlet-mapping:
1)同一个servlet可以有多个mapping,但是servlet—name必须一致
一种格式是“.扩展名”,
另一种格式是以正斜杠(/)开头并以“/
”结尾,不能/*.dao,两种方式不能组合

  1. servletConfig:封装当前servlet的配置信息,他代表当前servlet
    功能:
    1).读取当前servlet的配置信息
    getServletName() 获取当前Servlet在web.xml中配置的名字
    getServletContext() 获取代表当前web应用的ServletContext对象
    getInitParameter(String) 获取当前Servlet指定名称的初始化参数的值
    getInitParameterNames() 获取当前Servlet所有初始化参数的名字组成的枚举

2).他可以获取servletContext对象 代表当前web应用 代表全局变量
6. 三大域对象
ServletContext
HttpSession
HttpServletRequest:同一个请求下可以应用
7. 功能
获取WEB应用程序的初始化参数。
获取项目的真实的路径。
做为域对象,保存多个客户共享的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值