Java Web __ Servlet基础
Servlet接口
针对Servlet技术的开发,SUN公司提供了一系列接口和类,其中最重要的是javax.servlet.Servlet接口。
Servlet就是一种实现了Servlet接口的类,它是由web容器负责创建并调用,用于接收和响应用户的请求。
Servlet的生命周期
在Java中,任何对象都有生命周期,Servlet也不例外。
Servlet的生命周期如图:
Servlet的生命周期可分为三个阶段,具体如下:
-
初始化阶段
当客户端向Servlet容器发出HTTP请求要求访问Servlet时,Servlet容器首先会解析请求,检查内存中是否已经有了该Serlvet对象,
如果有直接使用该Serlvet对象,
如果没有就创建Servlet实例对象,然后通过调用init()方法实现Servlet的初始化工作。
需要注意的是,在Servlet的整个生命周期内,它的init()方法只被调用一次。 -
运行阶段
是最重要的阶段。
在这个阶段,Servlet容器会为这个请求创建代表HTTP请求的Request对象和代表HTTP响应的Response对象,然后将它们作为参数传递给Servlet的service()方法。 -
销毁阶段
当服务器关闭或web应用被移除出容器时,Serlvet随着web应用的销毁而销毁。
HttpServlet
由于大多数Web应用都是通过HTTP协议和客户端进行交互,因此,在Servlet 接口中,提供了一个抽象类javax.servlet.http.HttpServlet。
HttpServlet是GenericServlet的子类,专门用于创建应用于HTTP协议的Servlet。
HttpServlet主要有两大功能:
-
根据用户请求方式的不同,定义相应的doXxx()方法处理用户请求。
例如,与GET请求方式对应的doGet() 方法,
与POST方式对应的doPost() 方法。 -
通过service()方法将HTTP请求和响应分别转为HttpServletRequest和HttpServletResponse类型的对象。
ServletConfig接口
在Servlet运行期间,经常需要一些辅助信息,这些信息可以在web.xml文件中使用一个或多个<init-param>
元素进行配置。
在web.xml文件中,例如
参数信息中<init-param>
节点表示要设置的参数,
该节点中的<param-name>
表示参数的名称,
<param-value>
表示参数的值,
整体表示:我们在<init-param>
节点中为TestServlet02配置了一个名为“encoding”的参数,并且参数的值为UTF-8。
当Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装到一个ServletConfig对象中,
通过调用init(ServletConfig cofig)方法将ServletConfig对象传递给Servlet。
常用方法
getInitParameter()
ServletContext接口
当Servlet启动时,会为每个Web应用创建一个唯一的ServletContext对象代表当前Web应用。
该对象不仅封装了当前Web应用的所有信息,而且实现了多个Servlet之间数据的共享。
作用
-
获取Web应用程序的初始化参数
-
实现多个Servlet对象共享数据
ServletContext对象可以实现多个Servlet对象共享数据的功能,它提供了许多操作属性的方法
-
读取Web应用下的资源文件
在ServletContext接口中,定义了一些读取Web资源的方法,这些方法是依靠Servlet容器来实现的。