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

简介: 本节书摘来自华章出版社《Servlet和JSP学习指南》一书中的第1章,第1.9节,作者(加)Budi Kurniawan,更多章节内容可以访问云栖社区“华章计算机”公众号查看

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

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

相关文章
|
11月前
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
224 0
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
|
12月前
|
API
探索研究Servlet HTTP 状态码
【9月更文挑战第24天】
122 0
|
Java 应用服务中间件 Maven
JavaWeb基础5——HTTP,Tomcat&Servlet
JavaWeb技术栈、HTTP、get和post区别、响应状态码、请求响应格数据式、IDEA使用Tomcat、报错解决、Servlet的体系结构、IDEA使用模板创建Servlet
JavaWeb基础5——HTTP,Tomcat&Servlet
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
123 3
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
130 1
|
供应链 前端开发 Java
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
这篇文章通过一个服装库存管理系统的实例,展示了在Spring Boot项目中使用Ajax、JSON、layui、MVC架构和iframe等技术,涵盖了注册登录、权限管理、用户管理、库存管理等功能,并提供了系统运行环境和技术要求的详细说明。
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
334 0
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
98 0
|
应用服务中间件
SpringMVC系列之 javax.servlet.http.HttpServletRequest.getDispatcherType()Ljavax/servlet/DispatcherType;
文章讨论了在SpringMVC中遇到的`javax.servlet.http.HttpServletRequest.getDispatcherType()Ljavax/servlet/DispatcherType;`错误,并提供了通过升级Tomcat到8.x版本和检查pom依赖配置来解决这个问题的方法。

热门文章

最新文章