一.Servlet的结构
在Servlet API中最重要的是Servlet interface. 所有的servlets implement(执行)这个interface, 方式多种:或者是直接的,或者通过extending 这个class执行它,如 HttpServlet. 这个Servlet interface 提供安排servlet与客户端联系的方法. Servlet 编写者可以在他们开发servlet程序时提供更多一些或所有的这样方法.
当一个servlet接收来自客户端的调用请求, 它接收两个对象: 一个是ServletRequest,另外一个是ServletResponse. 这个ServletRequest class 概括从客户端到服务器之间的联系, 而 ServletResponse class 概括从servlet返回客户端的联系.
ServletRequest interface 可以获取到这样一些信息如由客户端传送的阐述名称,客户端正在使用的协议, 产生请求并且接收请求的服务器远端主机名. 它也提供获取数据流的servlet, ServletInputStream, 这些数据是客户端引用中使用HTTP POST 和 PUT 方法递交的. 一个ServletRequest的子类可以让servlet获取更多的协议特性数据. 例如: HttpServletRequest 包含获取HTTP-specific头部信息的方法.
ServletResponse interface 给出相应客户端的servlet方法. 它允许servlet设置内容长度和回应的mime类型, 并且提供输出流, ServletOutputStream, 通过编写者可以发回相应数据. ServletResponse子类可以给出更多protocol-specific容量的信息。 例如: HttpServletResponse 包含允许servlet操作HTTP-specific头部信息的方法.
上面有关classes 和 interfaces描述构成了一个基本的Servlet框架. HTTP servlets有一些附加的可以提供session-tracking capabilities的方法. servlet编写者可以用这些API在有他人操作时维护servlet与客户端之间的状态.
二.编写Servlet
Servlets 执行 javax.servlet.Servlet interface. servlet编写者可以通过直接implement interface开发servlet, 但这样通常没有必要. 因为大多数servlet是针对用HTTP协议的web服务器, 这样最通用开发servlet办法是用 javax.servlet.http.HttpServlet 内.HttpServlet 类通过extend GenericServlet基类执行 Servlet interface, 提供了处理HTTP协议的功能. 他的service方法支持标准HTTP/1.1请求. 一般地, 用HttpServlet指定的类编写的servlets可以多线程地并发运行service方法.
Servlet编写者注意HttpServlet类有几个欠缺的方法,你可以自己定义方法中内容,但是必须使用这些方法名称以使servlet知道你想做什么。
doGet, 用于处理 GET、有条件的GET 和头部 HEAD请求
doPost, 用户处理 POST 请求
doPut, 用于处理 PUT 请求
doDelete, 用于处理 DELETE请求
HttpServlet的service方法, 一般地, 当它接收到一个OPTIONS请求时,会调用doOptions 方法, 当接收一个TRACE请求是调用doTrace . doOptions缺省执行方式是自动决定什么样的HTTP被选择并且返回哪个信息. 在你使用这些方法时,必须带两个阐述. 第一个包含来自客户端的数据HttpServletRequest. 第二个参数包含客户端的响应HttpServletResponse.
在下例中是这样的情况.
一个HttpServletRequest对象提供到达HTTP 头部数据, 也允许你获取客户端的数据. 怎样获取这些数据取决于HTTP端请求方法.
不管任何HTTP方式, 你可以用]getParameterValues方法, 这个用来返回特定名称的参数值. 对于用 HTTP GET 请求的方式, 这个getQueryString方法将会返回一个可以用来解剖分析的。
对于用HTTP POST, PUT, 和 DELETE请求的方式, 你有两种方法可以选择. 如果是文本数据,你能通过getReader方法用BufferedReader获取;如果是二进制数据, 能通过getReader 方法用 ServletInputStream获取。
为了响应客户端, 一个HttpServletResponse对象提供返回数据给用户的两个方法。你可以用getWriter 方法返回,或者 getOutputStream 方法以输出流返回。 你应该用getWriter返回文本数据,而用getOutputStream返回二进制数据. 在使用Writer 或 OutputStream之前, HTTP 头部应该先被设置。HttpServletResponse内提供这样一个方法,之后可以用writer 或 outputstream 将响应主体部分发回用户. 完成后要关闭 writer 或 output stream以便让服务器知道响应已经完毕.
分享到:
相关推荐
1、Servlet 是 JavaEE的规范之一。(规范就是接口) 2、Servlet是 三大组件之一。 JavaWeb 三大组件分别是:**Servlet 程序、Filter 过滤器、Listener 监听器**。 3、Servlet 是运行在服务器上的一个 java 小程序,...
【JavaWeb概述】 JavaWeb是Java技术在Web开发领域的应用,它涵盖了用于构建Web应用程序的各种技术和框架。在JavaWeb中,Servlet是一个核心概念,对于初学者来说,理解Servlet的含义和作用至关重要。 1. **Servlet...
Servlet是Java平台上的一个核心技术,用于开发动态Web应用程序。Servlet是Java EE规范的一部分,它提供了服务器端处理HTTP请求的能力,使得开发者能够构建基于Web的交互式应用。Servlet API提供了丰富的类和接口,...
Servlet是Java世界中用于处理Web请求的关键技术,它是一种服务器端的Java应用程序,能够生成动态的Web内容。Servlet的设计目标是提供一个独立于操作系统和Web服务器的接口,以便开发人员可以利用Java的强大功能来...
# 一、JavaWeb介绍 ## 1、Web ...是建立在**Internet**上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的...
**Servlet概述** Servlet是一种Java API,允许开发人员创建能够处理HTTP请求的服务器端程序。它是Java平台上的一个标准接口,定义了如何与Web服务器集成,接收和响应HTTP请求。Servlet生命周期包括加载、初始化、...
#### 一、Servlet概述 Servlet是一种服务器端的Java技术,用于扩展应用程序的功能。它主要用于Web应用程序开发,可以处理客户端发送到Web服务器的各种请求,并且能够生成动态网页。Servlet通常用于执行复杂的操作,...
一、Servlet概述 Servlet是一种Java类,它遵循Servlet API规范,由Java Servlet容器(如Tomcat、Jetty等)管理,用于动态生成Web内容。Servlet生命周期包括加载、初始化、服务、销毁四个阶段。通过继承HttpServlet类...
Servlet概述 Servlet是Java Servlet API的一部分,用于生成动态网页内容。Servlet是一种小型Java程序,运行在Web服务器上,用于处理来自客户端的请求并生成响应。 Servlet生命周期 Servlet生命周期包括以下几个...
1. **Servlet概述**: Servlet是一个Java类,它扩展了Java平台的服务能力,特别是对于Web服务器。Servlet可以处理来自客户端的请求,执行业务逻辑,然后生成动态内容返回给客户端。在Java Web应用中,Servlet通常...
主讲:吕鹏 lvpeng@hwadee.com
1. **Servlet概述**: Servlet是一种Java类,用于扩展服务器的功能。它们主要用于处理HTTP请求,可以接收和响应来自客户端(如Web浏览器)的请求,并返回相应的数据。Servlet是基于Java平台的,因此具备跨平台的...
一、Servlet概述 Servlet是一个Java类,它遵循Servlet接口的规范,由Web服务器加载并执行以响应客户端(通常是Web浏览器)的请求。Servlet的主要任务是接收和响应HTTP请求,生成动态内容,并将其返回给客户端。...
1. **Servlet概述** Servlet是一个Java类,它扩展了服务器的功能,可以处理HTTP请求并生成响应。通过Servlet,开发者能够创建服务器端程序,接收来自客户端的请求,处理这些请求,并将结果返回给客户端。 2. **...
#### 一、Servlet概述 Servlet是一种用Java语言编写的Web组件,运行在Web服务器端,主要用于扩展Web服务器的功能,产生动态网页输出。Servlet自诞生以来,逐渐取代了CGI(Common Gateway Interface),成为J2EE应用...
Servlet概述 Servlet是一种Java应用程序,它运行在服务器端,接收并响应来自客户端(通常是Web浏览器)的请求。Servlet通过实现Servlet接口或其子接口来提供服务,这些接口定义了处理HTTP请求和响应的方法。 ### 2...
#### 一、Servlet概述 Servlet是一种服务器端的Java技术,用于扩展Web服务器的功能。Servlet能够动态地生成Web页面,并且可以处理来自客户端的HTTP请求。Servlet是Java EE的重要组成部分之一,它遵循Java Servlet ...
#### 一、Servlet概述 Servlet是一种服务器端的应用程序接口(API),主要用于构建动态Web应用程序。它比JSP技术出现得更早,在JSP诞生前,Servlet不仅负责处理业务逻辑(Controller层),还要处理视图(View层),这...
一、Servlet概述 Servlet是一个Java类,它扩展了服务器的功能,可以接收并响应来自客户端(通常是Web浏览器)的请求。Java Servlet API提供了接口和类,让开发者能够编写Servlet,这些Servlet可以运行在支持Java的...
一、Servlet概述 1.1 B/S架构(Browser/Server浏览器-服务器架构) B/S架构是一种基于互联网的软件应用模式,用户通过浏览器进行交互,服务器负责处理请求并返回数据。这种模式简化了用户界面,降低了客户端的维护...