HttpServletRequest简介

1、 HttpServletRequest简介:

1WEB客户端发送给WEB服务器的HTTP请求消息分为三个部分:

a) 请求行 POST /demo/login HTTP/1.1

b) 请求消息头

c) 消息正文(也叫实体内容) username=xxxx&password=1234

(2)Servlet API中定义的ServletRequest接口类用于封装请求消息。 

(3)HttpServletRequest是专用于HTTP协议的ServletRequest子接口,它用于封装HTTP请求消息。 

(4)service()方法内部调用HttpServletRequest对象的各种方法来获取请求消息。 

2获取请求行的相关信息 :

1HTTP请求消息的请求行包括请求方式、资源路径和HTTP协议版本:

GET /it315/servlet/RequestURI?param1=a¶m2=b HTTP/1.1

2getMethod方法返回HTTP请求消息中的请求方式。

3getRequestURI方法返回请求行中的资源名部分。

4getQueryString 方法返回请求行中的参数部分。

5getProtocol方法返回请求行中的协议名和版本。

6getContextPath方法返回请求资源所属于的WEB应用程序的路径。

7getPathInfo方法返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。

8getPathTranslated方法返回URL中的额外路径信息所对应的资源的真实路径。 

9getServletPath方法返回Servlet的名称或Servlet所映射的路径。  

3获取请求行的相关信息---------举例

 

4获取网络连接信息 

1getRemoteAddr方法返回发出请求的客户机的IP地址,其格式为“192.168.0.3”这种形式的字符文本。 (* 

2getRemoteHost方法返回发出请求的客户机的完整主机名,即“pc1.it315.org”这种格式。

3getRemotePort方法返回发出请求的客户机所使用的网络接口的端口号。

4getLocalAddr方法返回WEB服务器上接收当前请求的网络接口的IP地址。

5getLocalName方法返回WEB服务器上接收当前请求的网络接口的IP地址所对应的主机名。

6getLocalPort方法返回WEB服务器上接收当前请求的网络接口的端口号。

7getServerName方法返回当前请求所指向的主机名。 

8getServerPort方法返回当前请求所连接的服务器端口号。

9getScheme方法返回请求的协议名,例如httphttpsftp

10getRequestURL方法返回客户端发出请求时的完整URL   

5、获取所有请求头的编程实例 

Enumeration headerNames = request.getHeaderNames();

while(headerNames.hasMoreElements())

{

String headerName = (String)headerNames.nextElement();

out.print(headerName + " : " + request.getHeader(headerName) + "<br>");

/*如果要考虑同一个请求头名可能出现多次,

那么应该用下面的代码段代替上面一行程序代码*/

/*Enumeration values = request.getHeaders(headerName);

while(values.hasMoreElements())

 {

out.print(headerName + " : " + (String)values.nextElement() + "<br>");

}*/

}  

6、利用Referer请求头阻止“盗链” 

String referrer = request.getHeader("referer");

String sitePart = "http://" + request.getServerName();

if(referrer!=null && referrer.startsWith(sitePart))

{

//处理正当的下载请求,这里只进行示意

out.println("dealing download ...");

}

else

{

//非法下载请求跳转到本站的下载说明页

RequestDispatcher rd = request.getRequestDispatcher("/down.html");

rd.forward(request,response);

}

今天redarmy老师还重要的说了俺们写博文的事情,老师看到我这名字,不知道我是谁,我觉得有些纠结了,哎、、挺悲催的吧。这次我把头像改成自己的照片了,希望老师能够一眼就认出我来。哈哈。哎,我也要告诉自己,我会坚持滴!在苦在累,我就记着高中的兄弟姐们儿滴一句话:天空中飘着五个大字:这都不叫事!加油哦~~~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值