ServletAPI详解

合集下载

servlet_API说明文档

servlet_API说明文档

Java Servlet API说明文档(2.1a版)1998年11月绪言这是一份关于Java Servlet API的说明文档,可以到/products/servlet/index.html 下载Javadoc格式的文档。

谁需要读这份文档这份文档描述了Java Servlet API的最新版本2.1版。

所以,这本书对于Servlet的开发者及servlet引擎的开发者同样适用。

Java Servlet API的组成Java Servlet API由两个软件包组成:一个是对应HTTP的软件包,另一个是不对应HTTP的通用软件包。

这两个软件包的同时存在使得Java Servlet API能够适应将来的其他请求-响应的协议。

这份文档以及刚才提及的Javadoc格式的文档都描述了这两个软件包,Javadoc格式的文档还描述了你应该如何使用这两个软件包中的所有方法。

有关Java ServletsJavaTM servlets是一个不受平台约束的Java小程序,它可以被用来通过多种方法扩充一个Web服务器的功能。

你可以把Servlet理解成Server上的applets,它被编译成字节码,这样它就可以被动态地载入并有效地扩展主机的处理能力。

Servlet与applets不同的地方是,它不运行在Web浏览器或其他图形化的用户界面上。

Servlet通过servlet引擎运行在Web服务器中,以执行请求和响应,请求、响应的典型范例是HTTP协议。

一个客户端程序,可以是一个Web浏览器,或者是其他的可以连接上Internet的程序,它会访问Web服务器并发出请求。

这个请求被运行在Web服务器上的Servlet引擎处理,并返回响应到Servlet。

Servlet通过HTTP将这个响应转发到客户端。

在功能上,Servlet与CGI、NSAPI有点类似,但是,与他们不同的是:Servlet具有平台无关性。

Java Servlet概论Servlet与其他普通的server扩展机制有以下进步:因为它采用了不同的进程处理模式,所以它比CGI更快。

servlet请求方法

servlet请求方法

servlet请求方法Servlet是用Java编写的服务器端程序,它可以处理来自客户端(浏览器)的请求并生成相应的响应。

在Servlet中,我们可以使用不同的请求方法来处理不同类型的请求。

下面是一些相关参考内容,介绍了常用的Servlet请求方法。

1. doGet方法:doGet方法用于处理客户端的GET请求。

在这种情况下,查询字符串会被附加到URL后面,并且可以通过getParameter方法来访问这些参数的值。

这个方法通常用于获取信息,而不是对服务器上的数据进行修改。

例如,一个简单的例子可以是根据用户的请求来返回一个HTML页面。

2. doPost方法:doPost方法用于处理客户端的POST请求。

与GET请求不同,POST请求将数据作为请求体的一部分发送给服务器。

在Servlet中,可以使用getParameter方法来访问这些参数的值。

这个方法通常用于在服务器上创建或更改数据。

例如,当用户提交一个表单时,表单数据会通过POST请求发送给服务器。

3. doPut方法:doPut方法用于处理客户端的PUT请求。

PUT请求用于向服务器添加新的资源或更新现有资源。

在Servlet中,可以使用getInputStream方法来读取请求的正文,并使用请求参数来访问表单字段的值。

这个方法通常用于在服务器上更新数据。

4. doDelete方法:doDelete方法用于处理客户端的DELETE请求。

DELETE请求用于删除服务器上的资源。

在Servlet中,可以使用getParameter方法来访问请求参数的值。

例如,当用户点击"删除"按钮时,可以通过发送DELETE请求来删除特定的数据。

5. doOptions方法:doOptions方法用于处理客户端的OPTION请求。

OPTION请求用于获取服务器支持的请求方法、请求头字段和响应头字段。

在Servlet中,可以使用setHeader方法来设置响应头字段,并使用getHeader方法来获取请求头字段的值。

Servlet_API_中文版

Servlet_API_中文版

Servlet API 中文版基本类和接口一、javax.servlet.Servlet接口servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管理的方法集。

Servlet接口的基本目标是提供生命周期方法init()、service()和destroy()方法。

servlet接口中的方法void init(ServletConfit config)throws ServletException 在servlet被载入后和实施服务前由servlet引擎进行?次性调用。

如果init()产生溢出UnavailableException,则 servle退出服务。

ServletConfig getServletConfig()返回传递到servlet的init()方法的ServletConfig对象Void service(ServletRequest request, ServletResponse response)throws ServletException,IOException处理request对象中描述的请求,使用response对象返回请求结果String getServletInfo()返回描述servlet的一个字符串void destory()当servlet将要卸载时由servlet引擎调用二、javax.servlet.GenericServlet类(协议无关版本)GenericServlet是一种与协议无关的servlet,是一种跟本不对请求提供服务的servlet,而是简单地从init()方法启动后台线程并在destory()中杀死。

它可以用于模拟操作系统的端口监控进程。

servlet API提供了Servlet接口的直接实现,称为GenericServlet。

此类提供除了service()方法外所有接口中方法的缺省实现。

简述 servlet 的概念和技术特点。

简述 servlet 的概念和技术特点。

简述servlet 的概念和技术特点。

解析:
servlet 的概念:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态内容。

Servlet 技术具有如下特点:
1.方便:Servlet 提供了大量的实用工具例程,如处理很难完成的HTML 表
单数据、读取和设置HTTP 头,以及处理Cookie 和跟踪会话等。

2.跨平台:Servlet 使用Java 类编写,可以在不同的操作系统平台和不同的
应用服务器平台运行。

3.灵活性和可扩展性强:采用Servlet 开发的Web 应用程序,由于Java类
的继承性及构造函数等特点,使得应用灵活,可随意扩展。

Java Servlet API中文版帮助文档

Java Servlet API中文版帮助文档

谁需要读这份文档
这份文档描述了Java Servlet API的最新版本2.1版。所以,这本书对于Servlet的开发者及servlet引擎的开发者同样适用。
Java Servlet API的组成
Java Servlet API由两个软件包组成:一个是对应HTTP的软件包,另一个是不对应HTTP的通用的软件包。这两个软件包的同时存在使得Java Servlet API能够适应将来的其他请求-响应的协议。
Java Servlet概论
Servlet与其他普通的server扩展机制有以下进步:
因为它采用了不同的进程处理模式,所以它比CGI更快。
它使用了许多Web服务器都支持的标准的API。
它继承了Java的所有优势,包括易升级以及平台无关性。
这份文档以及刚才提及的Javadoc格式的文档都描述了这两个软件包,Javadoc格式的文档还描述了你应该如何使用这两个软件包中的所有方法。
有关规范
你也许对下面的这些Internet规范感兴趣,这些规范将直接影响到Servlet API的发展和执行。你可以从http: ///7c/in-notes/rfc/.cache 找到下面提到的所有这些RFC规范。
然而,一个映射可能是由一个URL和许多Servlet实例组成,例如:一个分布式的Servlet引擎可能运行在不止一个的服务器中,这样的话,每一个服务器中都可能有一个Servlet实例,以平衡进程的载入。作为一个Servlet的开发者,你不能假定一个Servlet只有一个实例。
Servlet的卸载
Java Servlet API说明文档(2.1a版)
1998年11月
绪言
这是一份关于2.1版Java Servlet API的说明文档,作为对这本文档的补充,你可以到[url]/products/servlet /index.html[/url]下面下载Javadoc格式的文档。

servlet、javabean创建和使用方法

servlet、javabean创建和使用方法

servlet、javabean创建和使用方法Servlet是一种用于处理HTTP请求的Java应用程序框架。

它是Java Web 开发中的核心组件之一,能够通过Servlet容器将HTTP请求转发给服务器,并对服务器返回的响应进行处理。

JavaBean是Java中用于描述对象属性的一种数据类型。

JavaBean是一种封装性较高的对象,可以通过Java编程语言直接访问和操作。

在Servlet中,JavaBean是一种重要的数据存储方式,可以将Web应用程序中的数据存储在服务器端,以便更好地管理和操作数据。

下面是创建和使用Servlet和JavaBean的一般步骤:1. 创建Servlet:在Web应用程序的根目录下创建Servlet的Java文件,通常命名为`servlet.java`。

在Servlet的Java文件中,需要定义Servlet的接口和实现类。

接口定义Servlet的响应和处理逻辑,实现类则具体实现接口。

2. 创建JavaBean:在Web应用程序的根目录下创建JavaBean的Java文件,通常命名为`javabean.java`。

在JavaBean的Java文件中,需要定义JavaBean 的属性和方法。

属性是Servlet接收的数据,方法是Servlet处理数据的方法。

3. 创建Servlet容器:在Web应用程序的根目录下创建Servlet容器的Java 文件,通常命名为`servlet-api.java`。

在Servlet容器的Java文件中,需要定义Servlet容器的接口和实现类。

4. 创建Servlet调用:在Web应用程序的HTML页面中,需要使用Servlet容器提供的API来调用Servlet。

例如,可以使用`<servlet>`标签来引用Servlet,然后使用`<servlet-name>`属性来指定Servlet的名称。

5. 编写Servlet代码:在Servlet的接口和实现类中,需要编写具体的响应和处理逻辑。

servlet名词解释

servlet名词解释

servlet名词解释Servlet是一种Java程序,可以运行在Web服务器中,用于处理客户端的请求并生成响应。

Servlet是Java程序中最常用的技术之一,它可以被用于开发各种类型的应用程序,包括Web应用程序、企业级应用程序等。

下面是对Servlet相关名词的解释:1. Java Servlet API:Java Servlet API是一个用于开发Servlet的类库,它提供了一些标准接口和类。

Servlet API由Java Servlet规范定义,在Java EE平台中被广泛使用。

Java Servlet API接口定义了Servlet的生命周期和请求处理,而Java Servlet API类包含了有关HTTP请求和响应的类。

2. Servlet容器:也称为Servlet引擎,是一个Web服务器,用于管理Servlet的生命周期、处理请求和生成响应。

Servlet容器还负责管理Servlet的线程池、控制Servlet的访问权限等。

3. Servlet生命周期:Servlet生命周期指Servlet对象的创建、初始化、服务、销毁过程。

Servlet容器在接到请求时会创建一个Servlet实例并调用init()方法初始化Servlet。

然后,Servlet容器会通过调用service()方法处理HTTP请求并产生HTTP响应。

最后,当Servlet容器关闭时,Servlet容器会调用destroy()方法销毁Servlet实例。

4. Servlet映射:Servlet映射将一个URL路径映射到一个Servlet,以便当该URL被请求时能够调用相应的Servlet。

Servlet映射可以通过web.xml或注解(如@WebServlet)来配置。

5. Servlet过滤器:Servlet过滤器用于在Servlet容器调用特定Servlet之前或之后执行一些额外的处理。

过滤器可以被用于处理安全性、性能、日志记录等任务。

servlet概述以及API中文版及学习笔记综合

servlet概述以及API中文版及学习笔记综合

servlet概述Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。

它担当Web浏览器或其他HTTP客户程序发出请求,与HTTP服务器上的数据库或应用程序之间的中间层。

Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet 的Java虚拟机。

servlet由来servlet是在服务器上运行的小程序。

这个词是在Java applet的环境中创造的,Java applet 是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。

服务器上需要一些程序,常常是根据用户输入访问数据库的程序。

这些通常是使用公共网关接口(CGI)应用程序完成的。

然而,在服务器上运行Java,这种程序可使用Java编程语言实现。

在通信量大的服务器上,Java servlet的优点在于它们的执行速度更快于CGI 程序。

各个用户请求被激活成单个程序中的一个线程,而创建单独的程序,这意味着各个请求的系统开销比较小。

Java Servlet 与Applet 的比较相似之处:* 它们不是独立的应用程序,没有main()方法。

* 它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用。

* 它们都有一个生存周期,包含init()和destroy()方法。

不同之处:* Applet具有很好的图形界面(AWT),与浏览器一起,在客户端运行。

* Servlet 则没有图形界面,运行在服务器端。

与传统CGI的比较Java Servlet 与CGI(Common Gateway Interface) 的比较:与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。

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

Servlet 技术是JavaWeb中最核心的组件Servlet主要功能:1,动态生成HTML文档2,转发请求给同Web中的另一个Servlet组件3,转发请求至其他Web应用中的Servlet组件4.读取以及写入Cookie5.访问其他服务器资源(数据库or 基于java的应用程序)Servlet APIServlet接口:public interface Servlet{public abstract void init(ServletConfig servletconfig) throws ServletException;//init方法负责初始化Servlet对象,容器在创建好Servlet对象就会调用该方法(个人认为这方法估计在构造函数中调用的) public abstract void service(ServletRequestservletrequest, 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 GenericServletimplements 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) throwsServletException {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 implementsSerializable {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()为例。

此种写法很像抽象类中的抽象方法,此处虽不强制子类实现,但若想调用且未重写,则返回一个错误。

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String protocol = req.getProtocol();String msg = lStrings.getString("http.method_get_not_supported");if (protocol.endsWith("1.1"))resp.sendError(405, msg);elseresp.sendError(400, msg);}protected long getLastModified(HttpServletRequest req) {return -1L;}private Method[] getAllDeclaredMethods(Class c) {if (c.getName().equals("javax.servlet.http.HttpServlet"))return null;int j = 0;Method parentMethods[] = getAllDeclaredMethods(c.getSuperclass());Method thisMethods[] = c.getDeclaredMethods();if (parentMethods != null) {Method allMethods[] = new Method[parentMethods.length+ thisMethods.length];for (int i = 0; i < parentMethods.length; i++) {allMethods[i] = parentMethods[i];j = i;}for (int i = ++j; i < thisMethods.length + j; i++)allMethods[i] = thisMethods[i - j];return allMethods;} else {return thisMethods;}}protected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {String method = req.getMethod();if (method.equals("GET")) {long lastModified = getLastModified(req);if (lastModified == -1L) {doGet(req, resp);} else {long ifModifiedSince = req.getDateHeader("If-Modified-Since");if (ifModifiedSince < (lastModified / 1000L) * 1000L) {maybeSetLastModified(resp, lastModified);doGet(req, resp);} else {resp.setStatus(304);}}} else if (method.equals("HEAD")) {long lastModified = getLastModified(req);maybeSetLastModified(resp, lastModified);doHead(req, resp);} else if (method.equals("POST"))doPost(req, resp);else if (method.equals("PUT"))doPut(req, resp);else if (method.equals("DELETE"))doDelete(req, resp);else if (method.equals("OPTIONS"))doOptions(req, resp);else if (method.equals("TRACE")) {doTrace(req, resp);} else {String errMsg = lStrings.getString("http.method_not_implemented");Object errArgs[] = new Object[1];errArgs[0] = method;errMsg = MessageFormat.format(errMsg, errArgs);resp.sendError(501, errMsg);}}// 该方法其实是调用了重载过后的service(HttpServletRequest req, HttpServletResponse resp)方法;然后根据request对象获得用户的请求类型,决定调用不同方法public void service(ServletRequest req, ServletResponse res)throws ServletException, IOException {HttpServletRequest request;HttpServletResponse response;try {request = (HttpServletRequest) req;response = (HttpServletResponse) res;} catch (ClassCastException e) {throw new ServletException("non-HTTP request or response");}service(request, response);}}ServletRequest接口ServletRequest类表示来自客户端的请求;当Servlet容器接收到客户端要求访问的特定的Servlet请求时,容器先解析客户端请求的数据,并包装成一个Servlet 对象。

相关文档
最新文档