serlvet为什么只需要实现doGet和doPost
2007-03-16 10:51
330 查看
Serlvet接口只定义了一个服务方法就是service,而HttpServlet类实现了该方法并且要求调用下列的方法之一:
doGet:处理GET请求
doPost:处理POST请求
doPut:处理PUT请求
doDelete:处理DELETE请求
doHead:处理HEAD请求
doOptions:处理OPTIONS请求
doTrace:处理TRACE请求
通常情况下,在开发基于HTTP的servlet时,开发者只需要关心doGet和doPost方法,其它的方法需要开发者非常的熟悉HTTP编程,因此这些方法被认为是高级方法。
而通常情况下,我们实现的servlet都是从HttpServlet扩展而来。
doPut和doDelete方法允许开发者支持HTTP/1.1的对应特性;
doHead是一个已经实现的方法,它将执行doGet但是仅仅向客户端返回doGet应该向客户端返回的头部的内容;
doOptions方法自动的返回servlet所直接支持的HTTP方法信息;
doTrace方法返回TRACE请求中的所有头部信息。
对于那些仅仅支持HTTP/1.0的容器而言,只有doGet,doHead和doPost方法被使用,因为HTTP/1.0协议没有定义PUT,DELETE,OPTIONS,或者TRACE请求。
另外,HttpServlet定义了getLastModified方法以支持有条件的(conditional)get操作。有条件的get操作是指使用GET方式请求资源并且在头部指定只有在资源内容在指定时间后被修改的情况下服务器才有必要回应请求并发送请求的内容。对于那些实现doGet方法并且在不同请求之间内容相同的servlet而言,它应该实现这个方法以提高网络资源的利用率。
另外要提及的是,按照规范的要求,servlet容器至少要实现HTTP/1.0协议规范,推荐实现HTTP/1.1规范,在此基础上可以实现其它的基于请求回应模式(basedrequestresponsemodel)的协议(例如HTTPS)。
doGet:处理GET请求
doPost:处理POST请求
doPut:处理PUT请求
doDelete:处理DELETE请求
doHead:处理HEAD请求
doOptions:处理OPTIONS请求
doTrace:处理TRACE请求
通常情况下,在开发基于HTTP的servlet时,开发者只需要关心doGet和doPost方法,其它的方法需要开发者非常的熟悉HTTP编程,因此这些方法被认为是高级方法。
而通常情况下,我们实现的servlet都是从HttpServlet扩展而来。
doPut和doDelete方法允许开发者支持HTTP/1.1的对应特性;
doHead是一个已经实现的方法,它将执行doGet但是仅仅向客户端返回doGet应该向客户端返回的头部的内容;
doOptions方法自动的返回servlet所直接支持的HTTP方法信息;
doTrace方法返回TRACE请求中的所有头部信息。
对于那些仅仅支持HTTP/1.0的容器而言,只有doGet,doHead和doPost方法被使用,因为HTTP/1.0协议没有定义PUT,DELETE,OPTIONS,或者TRACE请求。
另外,HttpServlet定义了getLastModified方法以支持有条件的(conditional)get操作。有条件的get操作是指使用GET方式请求资源并且在头部指定只有在资源内容在指定时间后被修改的情况下服务器才有必要回应请求并发送请求的内容。对于那些实现doGet方法并且在不同请求之间内容相同的servlet而言,它应该实现这个方法以提高网络资源的利用率。
另外要提及的是,按照规范的要求,servlet容器至少要实现HTTP/1.0协议规范,推荐实现HTTP/1.1规范,在此基础上可以实现其它的基于请求回应模式(basedrequestresponsemodel)的协议(例如HTTPS)。
相关文章推荐
- Serlet为什么只需要实现doGet和doPost
- 为什么需要自己实现前端框架
- HttpClientUtil 实现doget 和 dopost
- 为什么通信服务提供商需要实现SD-WAN
- java 中为什么实体类需要实现序列化
- 12_Android中HttpClient的应用,doGet,doPost,doHttpClientGet,doHttpClient请求,另外借助第三方框架实现网络连接的应用,
- 今天无意中发现JavaBean类基本都要求实现了Serializable接口,以前只是知道序列化以后,可以通过io流的方式将对象序列化和反序列化,进行存取,但不知道为什么需要序列化,今天总结一下
- 为什么JAVA对象需要实现序列化?
- 为什么abstract类需要实现接口成员
- 为什么需要htons(), ntohl(), ntohs(),htons() 函数 .模拟htonl、ntohl、htons、ntohs函数实现
- 学习记录——Serlvet接口doGet()、doPost()
- Servlet学习笔记(一)--HttpServlet实现doGet和doPost请求的原理
- hibernate 对象为什么需要实现 Serializable接口
- Tensorflow中实现BN为什么需要加入这个额外依赖?见CS231N作业源码
- 为什么需要htons(), ntohl(), ntohs(),htons() 函数 .模拟htonl、ntohl、htons、ntohs函数实现
- 12_Android中HttpClient的应用,doGet,doPost,doHttpClientGet,doHttpClient请求,另外借助第三方框架实现网络连接的应用,
- 为什么需要自己实现前端框架
- ID的生成策略(hibernate的id生成策略,主键类为什么需要实现序列化接口,同时还要重写hashCode()和equals()方法)
- 关于Session(javax.servlet.HttpSession)持久化----为什么实体类需要实现序列化接口
- doget和dopost方法的意思,为什么在servlet中dopost中调用doget方法