以下内容引用自http://wiki.jikexueyuan.com/project/jsp/client-request.html

当浏览器请求一个网页时,它向Web服务器发送大量的信息,信息不能直接阅读,因为这些信息作为HTTP请求标题的一部分行进。

以下是来自浏览器端的重要的标题,在网络编程中将会频繁的使用:

标题 描述
Accept 该标题指定了浏览器或其他客户可以处理的MIME类型。image/png或image/jpeg的值是两种最常见的可能性。
Accept-Charset 该标题指定了浏览器可以用来显示信息的字符集。例如iso-8859-1。
Accept-Encoding 这个标题指定了浏览器知道如何处理的编码类型。gzip或compressare的值是两种最常见的可能性。
Accept-Language 这个标题指定客户的首选语言,以防Servlet可以产生多个语言的结果。例如英语,美语,俄语等。
Authorization 这个标题是客户访问密码保护的Web页面时用来识别他们自己的。
Connection 这个标题表明客户端是否能处理持续的HTTP连接。持续连接允许客户端或其他浏览器用单个请求检索多个文件。Keep-Alive的值意味着应该使用持续连接
Content-Length 该标题只适用于POST请求和以字节形式给出POST数据的大小。
Cookie 这个标题为之前发送它们到浏览器的服务器返回Cookies。
Host 这个标题指定主机和端口正如原始URL给出的一样。
If-Modified-Since 这个标题表明,客户只想得到在指定日期后更改的页面。服务器发送一个代码,304意味着没有修改标题如果没有更新的结果是可用的。
If-Unmodified-Since 这个标题的作用与if-modified–since是相反的;它指定当且仅当文档比指定的日期要早时,操作应该成功。
Referer 这个标题表示了引用的Web页面的URL。例如,如果在Web页面1,点击一个链接到Web页面2,当浏览器请求Web页面2时,Web页面1的URL是包含在引用标题中的。
User-Agent 这个标题标识浏览器或其他做出请求的客户,对应不同类型的浏览器可以返回不同的内容。

一、HttpServletRequest对象

该请求对象是javax.servlet.http. HttpServletRequest对象的一个实例。每次客户端请求一个页面时,JSP引擎就会创建一个新的对象来表示这个请求。

请求对象提供方法来获取HTTP标题信息,包括表单数据,Cookies,HTTP方法等。

有以下重要的方法可用于读取JSP程序中的HTTP标题。有了HttpServletRequest对象,这些方法都可用的,该对象代表客户端对网络服务器的请求。

方法 描述

Cookie[] getCookies()

返回一个数组,其中包含客户端用这个请求发送的所有Cookie对象。

Enumeration getAttributeNames()

返回一个枚举包含此请求可用的属性的名称。

Enumeration getHeaderNames()

返回一个这个请求包含的所有标题名称的枚举。

Enumeration getParameterNames()

返回一个字符串对象的枚举,该字符串对象包括包含在此请求中的参数的名称。

HttpSession getSession()

返回与此请求相关的当前会话,或者如果该请求没有会话,那么就创建一个。

HttpSession getSession(boolean create)

返回与这个请求相关的当前的HttpSession或,如果没有当前会话并且create为真,那么返回一个新的会话。

Locale getLocale()

返回客户会接受内容的首选区域设置,基于所包含的accept–language标题

Object getAttribute(String name)

作为一个对象返回指定属性的值,如果指定的名称没有属性,返回null。

ServletInputStream getInputStream()

使用ServletInputStream将请求的主体作为二进制数据检索。

String getAuthType()

返回用于保护Servlet的验证方案的名称,例如,“BASIC”或“SSL”,如果JSP没有被保护,那么返回null

String getCharacterEncoding()

返回在该请求内部使用的字符编码的名称。

String getContentType()

返回该请求主体的MIME类型,如果不知道类型,返回null。

String getContextPath()

返回表示请求上下文的请求URI的一部分。

String getHeader(String name)

将指定的请求标题的值作为一个字符串返回。

String getMethod()

返回生成该请求的HTTP方法的名称,比如GET,POST,或PUT。

String getParameter(String name)

将一个请求参数的值作为字符串返回,如果参数不存在,返回null。

String getPathInfo()

返回与客户端生成请求时发送的URL相关联的任何额外的路径信息。

String getProtocol()

返回请求协议的名称和版本。

String getQueryString()

返回在路径后包含在请求URL的查询字符串。

String getRemoteAddr()

返回发送请求的客户端的互联网协议(IP)地址。

String getRemoteHost()

返回发送请求的客户机的全称。

String getRemoteUser()

如果用户已经通过身份验证,就返回发出这一请求的登录用户,如果用户没有被验证,那么返回null。

String getRequestURI()

从取决于HTTP请求首行的查询字符串的协议名称中返回请求URL的一部分。

String getRequestedSessionId()

返回客户端指定的会话ID。

String getServletPath()

返回调用JSP的请求URL的部分。

String[] getParameterValues(String name)

返回一个字符串对象数组,其中包含所有的给定的请求参数的值,如果参数不存在,那么返回null。

boolean isSecure()

返回一个布尔值表示是否使用一个安全通道发出了这个请求,比如HTTPS。

int getContentLength()

以字节为单位,返回请求的主体长度并通过输入流使其可用,如果长度是未知的,那么返回-1。

int getIntHeader(String name)

作为int返回指定请求标题的值。

int getServerPort()

返回收到这个请求的端口号。

二、HTTP标题请求实例

下面是使用HttpServletRequest的getHeaderNames()方法读取HTTP标题信息的实例。该方法返回一个枚举,包含与当前HTTP请求相关的标题信息。

一旦得到一个枚举,可以以标准的方式循环枚举,使用hasMoreElements()方法来确定何时停止,使用nextElement()方法得到每个参数的名字。

<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>HTTP Header Request Example</title>
</head>
<body>
<center>
<h2>HTTP Header Request Example</h2>
<table width="100%" border="1" align="center">
<tr bgcolor="#949494">
<th>Header Name</th><th>Header Value(s)</th>
</tr>
<%
Enumeration headerNames = request.getHeaderNames();
while(headerNames.hasMoreElements()) {
String paramName = (String)headerNames.nextElement();
out.print("<tr><td>" + paramName + "</td>\n");
String paramValue = request.getHeader(paramName);
out.println("<td> " + paramValue + "</td></tr>\n");
}
%>
</table>
</center>
</body>
</html>

现在把上述代码添加到main.jsp中并试图访问它。这将产生的如下所示的结果:

测试工程:https://github.com/easonjim/5_java_example/tree/master/jspbasics/test4

JSP的客户端请求的更多相关文章

  1. JSP 客户端请求

    当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信息头的一部分来传送的.您可以查阅HTTP协议来获得更多的信息. 下表列出了浏览器端信息头的一些重要内 ...

  2. JSP基础知识➣客户端请求与服务端响应(三)

    JSP客户端请求 浏览器请求服务器端,信息头的一些重要内容,在以后的网络编程中将会经常见到这些信息: Accept:指定浏览器或其他客户端可以处理的MIME类型.它的值通常为 image/png 或 ...

  3. JSP-Runood:JSP 客户端请求

    ylbtech-JSP-Runood:JSP 客户端请求 1.返回顶部 1. JSP 客户端请求 当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信息 ...

  4. 客户端请求、服务器响应及其HTTP状态码

    一JSP客户端请求 当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信 息头的一部分来传送的.我们可以查阅HTTP协议来获得更多的信息. 下表列出了浏 ...

  5. Java Web学习(1): 客户端请求、服务器响应及其HTTP状态码

    一JSP客户端请求 当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信 息头的一部分来传送的.我们可以查阅HTTP协议来获得更多的信息. 下表列出了浏 ...

  6. http客户端请求及服务端详解

    http客户端请求及服务端详解 引言 HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展. ...

  7. #1126-JSP客户端请求

    JSP 客户端请求 当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信息头的一部分来传送的.您可以查阅HTTP协议来获得更多的信息. 下表列出了浏览器 ...

  8. Java Web学习(六)HttpServletRequest(客户端请求)

    一.定义 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有 ...

  9. SpringMVC处理客户端请求的过程

    SpringMVC处理客户端请求的过程 以程序部署在Tomcat上为例,网站程序使用SpringMVC框架开发. 1.客户端发起一个访问网站的请求(如: localhost:8080/index). ...

随机推荐

  1. bootstrap基本布局

    中文API bootstrap.cn   HTML5文档 类型   移动设备优先 width 属性控制设备的宽度.设置为 device-width 确保它能正确呈现在不同设备上. initial-sc ...

  2. iOS/Android 视频编辑SDK

    锐动天地为开发者提供短视频编辑.特效.直播.录屏.编解码.视频转换,等多种解决方案,涵盖PC.iOS.Android多平台.以市场为导向,不断打磨并创新技术,在稳定性,兼容性,硬件设备效率优化上千捶百 ...

  3. 掌握Spark机器学习库-07-随机梯度下降

    1)何为随机梯度下降 优化方法 迭代更新,来寻找函数全局最优解的方法 与最小二乘法相比:适用于变量众多,模型更复杂 2)梯度 变化最快,“陡峭” 通过函数表达式来衡量梯度 3)随机梯度下降原理推导过程 ...

  4. (转)淘淘商城系列——分布式文件系统FastDFS

    http://blog.csdn.net/yerenyuan_pku/article/details/72801777 商品添加的实现,包括商品的类目选择,即商品属于哪个分类?还包括图片上传,对于图片 ...

  5. Vue + Django 2.0.6 学习笔记 6.1-6.2 商品类别数据接口

    这两节主要是说获取商品类别的1 2 3类的列表和某个类的详情 我直接上代码吧 views.py: from .serializers import CategorySerializer class C ...

  6. chvt - 修改虚拟终端的前台环境

    SYNOPSIS(总览) chvtN DESCRIPTION(描述) chvt N 命令用来生成 /dev/ttyN 的前台终端.如果它本来不存在,即创建相应的屏幕.为了删除掉不用的VT(虚拟终端), ...

  7. Vim中文编码问题

    1.影响中文编码的设置项 encoding(enc):encoding是Vim的内部使用编码,encoding的设置会影响Vim内部的Buffer.消息文字等.在 Unix环境下,encoding的默 ...

  8. CAD参数绘制对齐标注(网页版)

    主要用到函数说明: _DMxDrawX::DrawDimAligned 绘制一个对齐标注.详细说明如下: 参数 说明 DOUBLE dExtLine1PointX 第一条界线开始点X值 DOUBLE ...

  9. CAD参数绘mcdbsolid对象(网页版)

    主要用到函数说明: _DMxDrawX::DrawSolid 绘McDbSolid对象.详细说明如下: 参数 说明 DOUBLE dX1 第一个点X DOUBLE dY1 第一个点Y DOUBLE d ...

  10. idea文件全部变红, 文件全部红色

    idea如果当前project用了版本控制器,其下面新建的所有的项目默认都是加入到版本控制里面,所以项目名称和文件都是红色的,如图: 看起来非常不爽, 那么如何解决呢? File–>Settin ...