Servlet读取请求头方法

对于Http请求,由于我没有在这之前没有仔细研究过协议之类的东西,所以在这也说的不详细。

Http请求头是和网页中的表单数据相对应的,如果说网页中需要客户填写的表单是显式的话,那么由浏览器发送的、封装在Http请求头中的信息就是隐式的了,这些信息对于程序编写来说非常重要。

在Servlet中读取请求头其实就在request对象中把那些信息给取出来,还记得request对象是封装了来自请求的信息的么,记住这一点就不难理解下面这些方法的来历了。

读取请求头,只需要调用HttpServletRequest的getHeader方法几科,如果程序编写人员指定了某一个头信息的话,getHeader返回对应的字符串,否在就是返回null了。注意:请求头是不区分大小写的。例如,getHeader("connection")跟getHeader("Connection")是一样的。

部分头信息经常用到,故在这里记录下来,日后好翻阅~

getCookies

getCookies方法返回cookies头的内容(关于Cookies是什么,这个值得百度),经解析后存放在cookie对象数组中。

getAuthType和getRemoteUser

getAuthType和getRemoteUser方法分别读取Authorization头中的一部分内容。当用户访问受密码保护的网页这个头用来做身份验证。

getContentTypeLength

返回Content-Length头(整形)。

getContentType

返回Content-Type头(字符串)。


getDateHeader和getIntHeader

getDateHeader和getIntHeader方法读取指定的头,然后分别返回日期值或整数值。

getHeaderNames

这个方法返回一个Enummeration对象,有点类似request对象中的getParmeterNames方法。

getMethod

返回请求方法,通常是get啊post之类的。

getRequestURI

注意这里不是URL,这个方法返回的是从主机和端口之后到表单数据之前的那部分。

getQuryString

这个方法返回表单请求的参数。例如,?query=string。

User-Agent

这个方法也挺实用的,返回浏览器类型。类似的还有UA-Pixels,UA-Color,UA-OS和UA-CPU。

getLastModified    在Servlet中实现这个方法,系统会自动处理日期。对应的请求头是If-Modified-Since,只有当所请求的内容在指定的日期之后又经过修改才可以返回它,即某个文档发生了变化,浏览器存储文档,并在网络上重新下载,否则会返回“304 Not Modified”。对应的是If-Modified-Since请求头,这和它是相反的只有文档日期比指定的早,操作才会进行。

常见的来自浏览器和客户端的请求,是由Http命令(通常是post或get),一个或多个请求头已经空行组成,如果请求方法是post,还会附带有某些询问数据。一个典型的星球如下所示:

GET(POST) /servlet/SomeName HTTP/1.1

Host:...

头2:...

```

```

头N:...

(空行)

而对应的Web服务器的响应的话则一般包括以下几部分:一个状态行,几个响应头,一个空行和内容文档。一个典型的响应如下:

HTTP/1.1 200 OK

Content-Type: text/plain

头2:...

```

```

头N:...

(空行)


Hello World!

另外,切记:以上这些头信息的顺序是不能颠倒的。

当然还有一些Accept开头的方法啦,其实见多几次,对这些有印象的看到这些方法就可以顾名思义的了,但具体的这些方法的使用还是得实战去练习。另外有一点是不同的浏览器获得到的头信息会有不同。

转载于:https://my.oschina.net/zjh92119/blog/104277

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值