第一个100日计划之 第2天 Servlet002--HTTP请求

上一篇 主要总结了Servlet的helloWorld实现,基于web.xml和注解配置方式,生命周期 init(),service(),destroy()方法,以及doGet(),doPost()方法,service()方法内部路由依据请求方式分别调用doget()方法和doPost()方法,另外servlet如何获取表单数据,getParameter()方法等。接下来继续总结servlet的其它知识点。

一、servlet客户端Http请求

1.1 HTTP请求头主要信息

请求头重要信息如下表:

头信息描述
Accept指定浏览器或者其它客户端可以处理的MIME类型。image/png或image/jpeg是最常见的2种
Accept-Charset指定浏览器可以用来显示信息的字符集。如:UTF-8
Accept-Encoding指定浏览器知道如何处理的编码类型。gizp或compress是最常见的2种可能值。
Accept-Language客户端首选语言,值一般为 en、en-us、ru等
Authorization用于客户端在访问受密码保护的网页时识别自己的身份
Connection指示客户端是否可以处理持久 HTTP 连接,持久连接允许客户端或其他浏览器通过单个请求来检索多个文件。值 Keep-Alive 意味着使用了持续连接
Content-Length只适用于 POST 请求,并给出 POST 数据的大小(以字节为单位)
Cookie这个头信息把之前发送到浏览器的 cookies 返回到服务器
Host这个头信息指定原始的 URL 中的主机和端口
If-Modified-Since这个头信息表示只有当页面在指定的日期后已更改时,客户端想要的页面。如果没有新的结果可以使用,服务器会发送一个 304 代码,表示 Not Modified 头信息
If-Unmodified-Since这个头信息是 If-Modified-Since 的对立面,它指定只有当文档早于指定日期时,操作才会成功
Referer这个头信息指示所指向的 Web 页的 URL。例如,如果您在网页 1,点击一个链接到网页 2,当浏览器请求网页 2 时,网页 1 的 URL 就会包含在 Referer 头信息中
User-Agent这个头信息识别发出请求的浏览器或其他客户端,并可以向不同类型的浏览器返回不同的内容.

例如下图所示:

1.2 读取HTTP头的方法

Cookie[] getCookies():返回一个数组,包含客户端发送该请求的所有Cookie对象。

Enumeration getAtrributeNames():返回一个枚举,包含提供给请求可用的属性名称。

Enumeration getHeaderNames():返回该请求种所有的头名

Enumeration getParameterNames():返回String对象的枚举,包含请求种参数名称。

HttpSession getSession():返回请求相关联的session会话,如果没有则新建一个。

HttpSession getSession(boolean create):返回请求相关联的session会话,依据传入参数决定是否创建一个

Locale getLocale():基于Accept-Languaget头,返回客户端接受内容的首选的区域设置

Object getAttribute(String name):以对象形式返回对应key值的属性值,如果不存在返回null

ServletInputStream getInputStream():获取输入流,以二进制数据形式检索请求主体。

String getAuthType():返回保护Servlet的身份验证方案的名称,比如:BASIC、SSL

String getCharacterEncoding():返回请求主体中使用的字符编码的名称

String getContentType():返回请求主体MIME类型,如果不知道类型返回null

String getContentPath():返回请求URI部分

String getHeader(String name):返回指定请求头的值

String getMethod():返回请求HTTP方法名称,如GET,POST,PUT

String getParameter(String name):返回对应name的参数的值,不存在返回null

String getPathInfo():返回客户端发送的URL相关的任何额外的路劲信息

String getProtocol():返回协议的名称和版本。

String getQueryString():返回包含在路径的请求URL中的查询字符串。

String getRemoteAddr():返回发送请求的客户端的IP地址

String getRemoteHost():返回客户端的完全限定名称

String getRequestUser():如果用户已经认证,返回发出请求的登陆用户,否则返回null

String getRequestURI():从协议名称直到HTTP请求的第一行的查询字符串中,返回该请求的URL的一部分。

String getRequestedSessionId():返回会话ID

String getServletPath():返回调用jsp的请求的URL的一部分

Sring[] getParameterValues(String name):返回给定参数的所有值,不存在返回null

boolean isSecure():返回是否使用安全通道,即HTTPS

int getContentLength():请求主体的长度(字节),并提供输入流,长度未知返回-1

int getIntHeader(String name) :返回指定请求头的int值

int getServerPort():返回服务器端口号

Map getParameterMap():参数封装成Map类型

1.3 以上方法部分演示实例

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值