《Servlet和JSP学习指南》一1.9 HTTP Servlet

1.9 HTTP Servlet

我们所编写的Servlet应用程序,尽管不能说全部,但其中大多数要用到HTTP。这意味着,可以利用HTTP提供的特性。javax.servlet.http包是Servlet API中的第二个包,其包含了编写Servlet应用程序的类和接口。javax.servlet.http中的许多类型覆盖了javax.servlet中的类型。
图1-5展示了javax.servlet.http中的主要类型。

image

1.9.1 HttpServlet

HttpServlet类覆盖javax.servlet.GenericServlet类。在使用HttpServlet时,还要使用HttpServletRequest和HttpServletResponse对象,它们分别表示Servlet请求和Servlet响应。HttpServletRequest接口继承javax.servlet.ServletRequest,HttpServletResponse继承javax.servlet.ServletResponse。
HttpServlet覆盖GenericServlet中的service方法,并用以下签名添加了另一个service方法:
image

这个新的service方法与javax.servlet.Servlet中的区别在于,前者接受的是HttpServlet-Request和HttpServletResponse,而不是ServletRequest和ServletResponse。
与往常一样,Servlet容器调用javax.servlet.Servlet中原始的service方法,HttpServlet中的service方法要如下这么写:
image

原始的service方法将请求和响应对象进行向下转换,分别从Servlet容器转换成HttpServletRequest和HttpServletResponse,并调用新的service方法。向下转换总是会成功,因为在调用一个Servlet的service方法时,Servlet容器总会预计使用HTTP,所以传递一个HttpServletRequest和一个HttpServletResponse。即使正在实现javax.servlet.Servlet接口或者继承javax.servlet.GenericServlet,也可以将传给service方法的Servlet请求和Servlet响应,分别向下转换成HttpServletRequest和HttpServletResponse。
之后,HttpServlet中新的service方法会查看通常用来发送请求(通过调用request.getMethod)的HTTP方法,并调用以下某个方法(doGet、doPost、doHead、doPut、doTrace、doOptions和doDelete)。这7个方法各自表示一个HTTP方法。其中,doGet和doPost是最常用的。因此,通常不需要再覆盖service方法,而是覆盖doGet或者doPost,或者将doGet和doPost都覆盖掉。
总之,HttpServlet中有两项特性是GenericServlet所没有的:
不覆盖service方法,而是覆盖doGet、doPost,或者两者都覆盖掉。在极少数情况下,还要覆盖以下某个方法:doHead、doPut、doTrace、doOptions或doDelete。
将用HttpServletRequest和HttpServletResponse代替ServletRequest和Servlet-Response。

1.9.2 HttpServletRequest

HttpServletRequest表示HTTP环境中的Servlet请求。它继承javax.servlet.ServletRequest接口,并增加了几个方法,例如:
image

返回表示请求context的请求URI部分。
image

返回一个Cookie对象数组。
image

返回指定HTTP标头的值。
image

返回发出这条请求的HTTP方法的名称。
image

返回请求URL中的查询字符串。
image

返回与这个请求有关的session对象。如果没有找到,则创建新的session对象。
image

返回与这个请求有关的session对象。如果没有找到,并且create参数为true,那么将创建新的session对象。
在接下来的章节中,将学习如何使用这些方法。

1.9.3 HttpServletResponse

HttpServletResponse表示HTTP环境下的Servlet响应。下面是其中定义的部分方法:
image

给这个响应对象添加cookie。
image

给这个响应对象添加标头。
image

发送响应代号,将浏览器重定向到指定的位置。
在接下来的章节中将进一步学习这些方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值