《Servlet、JSP和Spring MVC初学指南》——1.4 ServletRequest

1.4 ServletRequest

对于每一个HTTP请求,Servlet容器都会创建一个ServletRequest实例,并将它传给Servlet的Service方法。ServletRequest封装了关于这个请求的信息。

ServletRequest接口中有一些方法。

public int getContentLength()
返回请求主体的字节数。如果不知道字节长度,这个方法就会返回−1。

public java.lang.String getContentType()
返回请求主体的MIME类型,如果不知道类型,则返回null。

public java.lang.String getParameter(java.lang.String name)
返回指定请求参数的值。

public java.lang.String getProtocol()
返回这个HTTP请求的协议名称和版本。

getParameter是在ServletRequest中最常用的方法。该方法通常用于返回HTML表单域的值。在本章后续的“处理表单”小节中,将会学到如何获取表单值。

getParameter也可以用于获取查询字符串的值。例如,利用下面的URI调用Servlet:

http://domain/context/servletName?id=123
用下面这个语句,可以通过Servlet内部获取id值:

String id = request.getParameter("id");
注意,如果该参数不存在,getParameter将返回null。

除了getParameter外,还可以使用getParameterNames、getParameterMap和getParameterValues获取表单域名、值以及查询字符串。这些方法的使用范例请参阅“Http Servlets”小节。

时间: 2024-09-06 14:00:35

《Servlet、JSP和Spring MVC初学指南》——1.4 ServletRequest的相关文章

《Servlet、JSP和Spring MVC初学指南》——导读

前言 Java Servlet技术简称Servlet技术,是Java开发Web应用的底层技术.由Sun公司于1996年发布,用来代替CGI--当时生成Web动态内容的主流技术.CGI技术的主要问题是每个Web请求都需要新启动一个进程来处理.创建进程会消耗不少CPU周期,导致难以编写可扩展的CGI程序.而Servlet有着比CGI程序更好的性能,因为Servlet在创建后(处理第一个请求时)就一直保持在内存中.此后,SUN公司发布了JavaServer Pages(JSP)技术,以进一步简化ser

《Servlet、JSP和Spring MVC初学指南》——1.3 编写基础的Servlet应用程序

1.3 编写基础的Servlet应用程序 其实,编写Servlet应用程序出奇简单.只需要创建一个目录结构,并把Servlet类放在某个目录下.本节将教你如何编写一个名为app01a的Servlet应用程序.最初,它会包含一个Servlet,即MyServlet,其效果是向用户发出一条问候. 要运行Servlets,还需要一个Servlet容器.Tomcat是一个开源的Servlet容器,它是免费的,并且可以在任何能跑Java的平台上运行.如果你到现在都还没有安装Tomcat,就应该去看看附录A

《Servlet、JSP和Spring MVC初学指南》——2.4 HttpSession对象

2.4 HttpSession对象 在所有的会话跟踪技术中,HttpSession 对象是最强大和最通用的.一个用户可以有且最多有一个HttpSession,并且不会被其他用户访问到. HttpSession对象在用户第一次访问网站的时候自动被创建,你可以通过调用HttpServletRequest的getSession方法获取该对象.getSession有两个重载方法: HttpSession getSession() HttpSession getSession(boolean create

《Servlet、JSP和Spring MVC初学指南》——1.11 使用部署描述符

1.11 使用部署描述符 如在前面的例子中所见,编写和部署Servlet都是很容易的事情.部署的一个方面是用一个路径配置Servlet的映射.在这些范例中,是利用WebServlet标注类型,用一个路径映射了一个Servlet. 利用部署描述符是配置Servlet应用程序的另一种方法,部署描述符的详情将在第13章"部署描述符"中探讨.部署描述符总是命名为web.xml,并且放在WEB-INF目录下.本章介绍了如何创建一个名为app01c的Servlet应用程序,并为它编写了一个web.

《Servlet、JSP和Spring MVC初学指南》——2.3 Cookies

2.3 Cookies URL重写和隐藏域仅适合保存无须跨越太多页面的信息.如果需要在多个页面间传递信息,则以上两种技术实现成本高昂,因为你不得不在每个页面都进行相应处理.幸运的是,Cookies技术可以帮助我们. Cookies是一个很少的信息片段,可自动地在浏览器和Web服务器间交互,因此cookies可存储在多个页面间传递的信息.Cookie作为HTTP header的一部分,其传输由HTTP协议控制.此外,你可以控制cookies的有效时间.浏览器通常支持每个网站高达20个cookies

《Servlet、JSP和Spring MVC初学指南》——1.6 ServletConfig

1.6 ServletConfig 当Servlet容器初始化Servlet时,Servlet容器会给Servlet的init方法传入一个ServletConfig.ServletConfig封装可以通过@WebServlet或者部署描述符传给Servlet的配置信息.这样传入的每一条信息就叫一个初始参数.一个初始参数有key和value两个元件. 为了从Servlet内部获取到初始参数的值,要在Servlet容器传给Servlet的init方法的ServletConfig中调用getInitP

《Servlet、JSP和Spring MVC初学指南》——1.9 Http Servlets

1.9 Http Servlets 不说全部,至少大多数应用程序都要与HTTP结合起来使用.这意味着可以利用HTTP提供的特性.javax.servlet.http包是Servlet API中的第二个包,其中包含了用于编写Servlet应用程序的类和接口.javax.servlet.http中的许多类型都覆盖了javax.servlet中的类型. 图1.5展示了javax.servlet.http中的主要类型. 图1.5 javax.servlet.http中的主要类型 1.9.1 HttpSe

《Servlet、JSP和Spring MVC初学指南》——2.2 隐藏域

2.2 隐藏域 使用隐藏域来保持状态类似于URL重写技术,但不是将值附加到URL上,而是放到HTML表单的隐藏域中.当表单提交时,隐藏域的值也同时提交到服务器端.隐藏域技术仅当网页有表单时有效.该技术相对于URL重写的优势在于:没有字符数限制,同时无须额外的编码.但该技术同URL重写一样,不适合跨越多个界面. 清单2.3展示了如何通过隐藏域来更新客户信息.清单2.2的Customer类为客户对象模型. 清单2.2 Customer类 package app02a.hiddenfields; pu

《Servlet、JSP和Spring MVC初学指南》——1.10 处理HTML表单

1.10 处理HTML表单 一个Web应用程序中几乎总会包含一个或者多个HTML表单,供用户输入值.你可以轻松地将一个HTML表单从一个Servlet发送到浏览器.当用户提交表单时,在表单元素中输入的值就会被当作请求参数发送到服务器. HTML输入域(文本域.隐藏域或者密码域)或者文本区的值,会被当作字符串发送到服务器.空的输入域或者文本区会发送空的字符串.因此,有输入域名称的,ServletRequest.getParameter绝对不会返回null. HTML的select元素也向heade