|
|||||||||||
| 上一个类 下一个类 | 框架 无框架 所有类 | ||||||||||
| 摘要:NESTED | FIELD | CONSTR | 方法 | DETAIL:FIELD | CONSTR | 方法 | ||||||||||
javax.servlet.http
类HttpServlet
java.lang.Object

javax.servlet.GenericServlet

javax.servlet.http.HttpServlet
- 所有实现的接口:
- java.io.Serializable,Servlet,ServletConfig
- 公共抽象类HttpServlet
- 扩展GenericServlet
- 实现java.io.Serializable
提供一个要子类化的抽象类,以创建适用于Web站点的HTTP servlet。一个子类 HttpServlet必须至少覆盖一个方法,通常是以下之一:
doGet如果servlet支持HTTP GET请求doPost,用于HTTP POST请求doPut,用于HTTP PUT请求doDelete,用于HTTP DELETE请求init并且destroy管理在servlet生命周期中保存的资源getServletInfo,servlet用于提供有关本身的信息
几乎没有理由重写该service 方法。service通过将标准HTTP请求发送到每个HTTP请求类型的处理程序方法( 上面列出的doXXX方法)来处理标准的HTTP请求。
同样,几乎没有理由重写 doOptions和doTrace方法。
Servlet通常在多线程服务器上运行,因此请注意,servlet必须处理并发请求,并小心地将访问权限同步到共享资源。共享资源包括内存中的数据,如实例或类变量以及外部对象,如文件,数据库连接和网络连接。有关在 Java程序中处理多个线程的更多信息,请参阅有关多线程编程的 Java教程。
- 版:
- $版本$
- 作者:
- 各个
- 也可以看看:
- 序列表
| 构造函数摘要 | |
HttpServlet() 没有什么,因为这是一个抽象类。 |
|
| 方法摘要 | |
protected void |
doDelete(HttpServletRequest req, HttpServletResponse resp) 由服务器调用(通过 service方法)允许servlet处理DELETE请求。 |
protected void |
doGet(HttpServletRequest req, HttpServletResponse resp) 由服务器调用(通过 service方法)允许servlet处理GET请求。 |
protected void |
doHead(HttpServletRequest req, HttpServletResponse resp) 从受保护的 service方法接收HTTP HEAD请求 并处理请求。 |
protected void |
doOptions(HttpServletRequest req, HttpServletResponse resp) 由服务器调用(通过 service方法)允许servlet处理OPTIONS请求。 |
protected void |
doPost(HttpServletRequest req, HttpServletResponse resp) 由服务器调用(通过 service方法)允许servlet处理POST请求。 |
protected void |
doPut(HttpServletRequest req, HttpServletResponse resp) 由服务器调用(通过 service方法)允许servlet处理PUT请求。 |
protected void |
doTrace(HttpServletRequest req, HttpServletResponse resp) 由服务器调用(通过 service方法)允许servlet处理TRACE请求。 |
protected long |
getLastModified(HttpServletRequest req) 返回 HttpServletRequest 上一次修改对象的时间,以1970年1月1日GMT格林尼治时间以来的毫秒为单位。 |
protected void |
service(HttpServletRequest req, HttpServletResponse resp) 从公共 service方法接收标准HTTP请求, 并将它们分派到此类中定义的doXXX方法。 |
void |
service(ServletRequest req, ServletResponse res) 将客户端请求调度到受保护的 service方法。 |
| 从类javax.servlet继承的方法。GenericServlet类 |
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, init, log, log |
| 从类java.lang.Object继承的方法 |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造函数详细信息 |
HttpServlet的
public HttpServlet()
- 没有什么,因为这是一个抽象类。
| 方法细节 |
的doGet
protected void doGet(HttpServletRequest req, HttpServletResponse resp) 抛出ServletException, java.io.IOException异常
- 由服务器调用(通过
service方法)允许servlet处理GET请求。覆盖此方法以支持GET请求也自动支持HTTP HEAD请求。HEAD请求是GET请求,在响应中不返回任何正文,只有请求头字段。
当覆盖此方法时,读取请求数据,写入响应头,获取响应的写入器或输出流对象,最后写入响应数据。最好包含内容类型和编码。使用
PrintWriter对象返回响应时,请在访问PrintWriter对象之前设置内容类型 。在提交响应之前,servlet容器必须写入头,因为在HTTP中,头部必须在响应体之前发送。
在可能的情况下,设置Content-Length头(使用
ServletResponse.setContentLength(int)方法),以允许servlet容器使用持久连接将其响应返回给客户端,从而提高性能。如果整个响应适合于响应缓冲区内,内容长度将自动设置。当使用HTTP 1.1分块编码(这意味着响应具有传输编码头)时,不要设置Content-Length头。
GET方法应该是安全的,也就是没有任何副作用,对用户负责。例如,大多数表单查询都没有副作用。如果客户端请求是为了更改存储的数据,请求应该使用其他一些HTTP方法。
GET方法也应该是幂等的,这意味着它可以安全地重复。有时使方法安全也使其幂等。例如,重复查询既安全又具有幂等级,但在线购买产品或修改数据既不安全也不是幂等。
如果请求格式不正确,则
doGet返回HTTP“错误请求”消息。 - 参数:
req- 一个HttpServletRequest包含客户端对servlet所做的请求的对象resp-HttpServletResponse包含servlet发送给客户端的响应的对象- 抛出:
java.io.IOException- 如果servlet处理GET请求时检测到输入或输出错误ServletException- 如果GET请求无法处理- 也可以看看:
ServletResponse.setContentType(java.lang.String)
getLastModified
protected long getLastModified(HttpServletRequest req)
- 返回
HttpServletRequest上一次修改对象的时间,以1970年1月1日GMT格林尼治时间以来的毫秒为单位。如果时间未知,此方法返回一个负数(默认值)。支持HTTP GET请求并可以快速确定其最后修改时间的Servlet应该覆盖此方法。这使得浏览器和代理缓存更有效地工作,减少了对服务器和网络资源的负担。
- 参数:
req-HttpServletRequest发送到servlet 的对象- 返回:
- 一个
long整数,指定HttpServletRequest对象上次修改的时间,以毫秒为单位,自1970年1月1日GMT以来的毫秒,如果时间未知,则为-1。
doHead
protected void doHead(HttpServletRequest req, HttpServletResponse resp) 抛出ServletException, java.io.IOException异常
-
从受保护的
service方法接收HTTP HEAD请求 并处理请求。当客户端想要仅查看响应的标头(如Content-Type或Content-Length)时,客户端发送HEAD请求。HTTP HEAD方法对响应中的输出字节进行计数,以准确地设置Content-Length头。如果覆盖此方法,则可以避免计算响应体,并直接设置响应头以提高性能。确保
doHead您编写的 方法既安全又具有幂等性(即,为一个HTTP HEAD请求保护自己不被多次调用)。如果HTTP HEAD请求格式不正确,则
doHead返回HTTP“错误请求”消息。 - 参数:
req- 传递给servlet的请求对象resp- servlet用于将标头返回到clien的响应对象- 抛出:
java.io.IOException- 如果发生输入或输出错误ServletException- 如果对HEAD的请求无法处理
doPost方法
protected void doPost(HttpServletRequest req, HttpServletResponse resp) 抛出ServletException, java.io.IOException异常
- 由服务器调用(通过
service方法)允许servlet处理POST请求。HTTP POST方法允许客户端发送无限长度的数据到Web服务器一次,并且在发布诸如信用卡号码之类的信息时是有用的。当覆盖此方法时,读取请求数据,写入响应头,获取响应的写入器或输出流对象,最后写入响应数据。最好包含内容类型和编码。使用
PrintWriter对象返回响应时,请在访问PrintWriter对象之前设置内容类型。在提交响应之前,servlet容器必须写入头,因为在HTTP中,头部必须在响应体之前发送。
在可能的情况下,设置Content-Length头(使用
ServletResponse.setContentLength(int)方法),以允许servlet容器使用持久连接将其响应返回给客户端,从而提高性能。如果整个响应适合于响应缓冲区内,内容长度将自动设置。当使用HTTP 1.1分块编码(这意味着响应具有传输编码头)时,不要设置Content-Length头。
该方法不需要是安全的或幂等的。通过POST请求的操作可能会产生副作用,用户可以对此负责,例如更新存储的数据或在线购买项目。
如果HTTP POST请求格式不正确,则
doPost返回HTTP“错误请求”消息。 - 参数:
req- 一个HttpServletRequest包含客户端对servlet所做的请求的对象resp-HttpServletResponse包含servlet发送给客户端的响应的对象- 抛出:
java.io.IOException- 如果在servlet处理请求时检测到输入或输出错误ServletException- 如果POST请求无法处理- 也可以看看:
ServletOutputStream,ServletResponse.setContentType(java.lang.String)
doPut
protected void doPut(HttpServletRequest req, HttpServletResponse resp) 抛出ServletException, java.io.IOException异常
- 由服务器调用(通过
service方法)允许servlet处理PUT请求。PUT操作允许客户端将文件放在服务器上,类似于通过FTP发送文件。当覆盖此方法时,请保留与请求一起发送的任何内容标题(包括Content-Length,Content-Type,Content-Transfer-Encoding,Content-Encoding,Content-Base,Content-Language,Content-Location,Content-MD5,和Content-Range)。如果您的方法无法处理内容头,则必须发出错误消息(HTTP 501 - 未实现)并放弃该请求。有关HTTP 1.1的更多信息,请参阅RFC 2616 。
该方法不需要是安全的或幂等的。
doPut执行的操作可能会产生副作用,用户可以对此负责。使用此方法时,可能会将受影响的URL的副本保存在临时存储中。如果HTTP PUT请求格式不正确,则
doPut返回HTTP“错误请求”消息。 - 参数:
req-HttpServletRequest包含客户端使用servlet的请求的对象resp-HttpServletResponse包含servlet返回给客户端的响应的对象- 抛出:
java.io.IOException- 如果在servlet处理PUT请求时发生输入或输出错误ServletException- 如果PUT的请求无法处理
doDelete
protected void doDelete(HttpServletRequest req, HttpServletResponse resp) 抛出ServletException, java.io.IOException异常
- 由服务器调用(通过
service方法)允许servlet处理DELETE请求。DELETE操作允许客户端从服务器中删除文档或Web页面。该方法不需要是安全的或幂等的。通过DELETE请求的操作可能会产生副作用,用户可以对此负责。使用此方法时,可能会将受影响的URL的副本保存在临时存储中。
如果HTTP DELETE请求格式不正确,则
doDelete返回HTTP“错误请求”消息。 - 参数:
req-HttpServletRequest包含客户端使用servlet的请求的对象resp-HttpServletResponse包含servlet返回给客户端的响应的对象- 抛出:
java.io.IOException- 如果在servlet正在处理DELETE请求时发生输入或输出错误ServletException- 如果DELETE的请求无法处理
doOptions
protected void doOptions(HttpServletRequest req, HttpServletResponse resp) 抛出ServletException, java.io.IOException异常
- 由服务器调用(通过
service方法)允许servlet处理OPTIONS请求。OPTIONS请求确定服务器支持哪些HTTP方法并返回相应的头。例如,如果servlet覆盖doGet,则此方法返回以下标题:Allow: GET, HEAD, TRACE, OPTIONS除非servlet实现了新的HTTP方法,否则不需要重写此方法,除了HTTP 1.1实现之外。
- 参数:
req-HttpServletRequest包含客户端使用servlet的请求的对象resp-HttpServletResponse包含servlet返回给客户端的响应的对象- 抛出:
java.io.IOException- 如果在servlet处理OPTIONS请求时发生输入或输出错误ServletException- 如果对OPTIONS的请求无法处理
doTrace
protected void doTrace(HttpServletRequest req, HttpServletResponse resp) 抛出ServletException, java.io.IOException异常
- 由服务器调用(通过
service方法)允许servlet处理TRACE请求。TRACE将带有TRACE请求的标头返回给客户机,以便它们可以在调试中使用。没有必要重写这个方法。 - 参数:
req-HttpServletRequest包含客户端使用servlet的请求的对象resp-HttpServletResponse包含servlet返回给客户端的响应的对象- 抛出:
java.io.IOException- 如果在servlet处理TRACE请求时发生输入或输出错误ServletException- 如果TRACE的请求无法处理
服务
protected void service(HttpServletRequest req, HttpServletResponse resp) 抛出ServletException, java.io.IOException异常
- 从公共
service方法接收标准HTTP请求, 并将它们分派到此类中定义的doXXX方法。该方法是该方法的HTTP特定版本Servlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)。没有必要重写这个方法。 - 参数:
req-HttpServletRequest包含客户端使用servlet的请求的对象resp-HttpServletResponse包含servlet返回给客户端的响应的对象- 抛出:
java.io.IOException- 如果servlet处理HTTP请求时发生输入或输出错误ServletException- 如果HTTP请求无法处理- 也可以看看:
Servlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
服务
public void service(ServletRequest req, ServletResponse res) 抛出ServletException, java.io.IOException异常
- 将客户端请求调度到受保护的
service方法。没有必要重写这个方法。 - 指定者:
service在界面Servlet- 指定者:
service在班上GenericServlet
- 参数:
req-HttpServletRequest包含客户端使用servlet的请求的对象res-HttpServletResponse包含servlet返回给客户端的响应的对象- 抛出:
java.io.IOException- 如果servlet处理HTTP请求时发生输入或输出错误ServletException- 如果HTTP请求无法处理- 也可以看看:
Servlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
|
|||||||||||
| 上一个类 下一个类 | 框架 无框架 所有类 | ||||||||||
| 摘要:NESTED | FIELD | CONSTR | 方法 | DETAIL:FIELD | CONSTR | 方法 | ||||||||||
版权所有©1999-2012 Apache Software Foundation。版权所有。
浙公网安备 33010602011771号