课程介绍:
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()方法
第一次访问请求:
第二次访问请求:
- 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所占用的资源
- 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,两种方式不能组合
- 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应用程序的初始化参数。
获取项目的真实的路径。
做为域对象,保存多个客户共享的数据。