ServletAPI详解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Servlet 技术是JavaWeb中最核心的组件

Servlet主要功能:

1,动态生成HTML文档

2,转发请求给同Web中的另一个Servlet组件

3,转发请求至其他Web应用中的Servlet组件

4.读取以及写入Cookie

5.访问其他服务器资源(数据库or 基于java的应用程序)

Servlet API

Servlet接口:

public interface Servlet

{

public abstract void init(ServletConfig servletconfig) throws ServletException;

//init方法负责初始化Servlet对象,容器在创建好Servlet对象

就会调用该方法(个人认为这方法估计在构造函数中调用的) public abstract void service(ServletRequest

servletrequest, ServletResponse servletresponse) throws ServletException, IOException;

//该方法负责响应用户请求,为客户提供相应的服务

public abstract void destroy();

//该方法负责释放Servlet对象所占用的资源,Servlet结束生命周期时调用

public abstract String getServletInfo();

//返回字符串包含版本创建者以及版权信息

public abstract ServletConfig getServletConfig();

//返回ServletConfig对象,该对象包含Servlet初始化信息

}

在ServletAPI中 javax.servlet.GenericServlet抽象类实现

Servlet接口。javax.servlet.http.HttpServlet是GenericServlet 抽象类的子类。我们开发的Servlet大多从继承HttpServlet开始。

下面介绍javax.servlet.GenericServlet抽象类

public abstract class GenericServlet

implements Servlet, ServletConfig,Serializable {

private transient ServletConfig config;

public GenericServlet() {}

public void destroy() {}

public String getInitParameter(String name) {

return getServletConfig().getInitParameter(name);

}

public Enumeration getInitParameterNames() {

return getServletConfig().getInitParameterNames();

}

public ServletConfig getServletConfig() {

return config;

}

public ServletContext getServletContext() {

return getServletConfig().getServletContext();

}

public String getServletInfo() {

return"";

}

public void init(ServletConfig config) throws

ServletException {

this.config = config;

init();

}

public void init() throws ServletException {

}

public void log(String msg) {

getServletContext().log(getServletName() + ": " + msg);

}

public void log(String message, Throwable t) {

getServletContext().log(getServletName() + ": " + message, t);

}

public abstract void service(ServletRequest servletrequest, ServletResponse servletresponse) throws ServletException, IOException;

//该方法是GenericServlet类中唯一抽象方法,交由子类实现从而为特定客户提供特定的服务

public String getServletName() {

return config.getServletName();

}

}

HttpServlet抽象类该类是GenericServlet的子类,提供了HTTP协议相关的通用实现,在HTTP协议的通信的Servlet中一般都继承HttpServlet类

(部分代码)

public abstract class HttpServlet extends GenericServlet implements

Serializable {

private static final String METHOD_DELETE = "DELETE";

private static final String METHOD_GET = "GET";

private static final String METHOD_POST = "POST";

private static final String METHOD_PUT = "PUT";

public HttpServlet() {

}

//HttpServlet为所有请求方式都提供了doXXX();并提供了默认实现,若该方法没有被子类重写,则会向客户端返回一个错误:返回错误之前判断HTTP协议版本,若版本为HTTP1.1则(405);否则400.此处以doGet()为例。此种写法很

相关文档
最新文档