Servlet接口以及ServletConfig介绍
发布日期:2021-07-26 18:44:11 浏览次数:0 分类:技术文章

Servlet特性:
*单例,一个类只有一个对象,当然可能存在多个Servlet类!
*线程不安全的,效率比较高。
*Servlet类由我们来写,但对象由服务器创建调用相应方法。

Servlet的继承关系: 


 自定义Servlet实现Servlet接口的五个方法:

import java.io.IOException;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class Aservlet implements Servlet {	@Override	public void destroy() {	}	@Override	public ServletConfig getServletConfig() {		return null;	}	@Override	public String getServletInfo() {		return null;	}	@Override	public void init(ServletConfig arg0) throws ServletException {	}	@Override	public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {	}}

生命周期相关的方法:

 

Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。

(1)加载:容器通过类加载器使用servlet类对应的文件加载servlet

(2)创建:通过调用servlet构造函数创建一个servlet对象

(3)初始化:调用init方法初始化

(4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求

(5)卸载:调用destroy方法让servlet自己释放其占用的资源


*void init(ServletConfig):出生之后(1次);
*void service(ServletRequest request,ServletResponse response):每次处理请求时调用;
*void destroy():临死前的遗言(1次) 

普通方法:
String getServletInfo() :获得Servlet的信息
ServletConfig getServletConfig():获得Servlet配置信息

 

ServletConfig介绍:

ServletConfig的API:String getServletName() :获取的是<servlet-name>中的内容ServletContext getServletContext():获取Sevlet上下文String getInitParameterNames():通过名称获取指定初始化参数的值Enumeration getInitParameterNames():获取所有初始化参数的名称
Web.xml配置信息:  <servlet>  	<servlet-name>xxx</servlet-name>  	<servlet-class>com.wyl.web.AServlet</servlet-class>    	<init-param>  		<param-name>p1</param-name>  		<param-value>v1</param-value>  	</init-param>  	  	<init-param>  		<param-name>p2</param-name>  		<param-value>v2</param-value>  	</init-param>  </servlet>    <servlet-mapping>  	<servlet-name>xxx</servlet-name>  	  	<url-pattern>/AServlet</url-pattern>  </servlet-mapping>

 测试访问:

@Overridepublic void init(ServletConfig config) throws ServletException {/** 获得初始化参数*/System.out.println(config.getInitParameter("p1")); //v1System.out.println(config.getInitParameter("p2")); //v2/* * 获得所有初始化参数的名称 */Enumeration e=config.getInitParameterNames();while(e.hasMoreElements()) {     System.out.println(e.nextElement()); //p1,p2}

 

上一篇:HTTP中response详解
下一篇:Session和Cookie详解