gpt4 book ai didi

HttpServletRequest对象简介_动力节点Java学院整理

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章HttpServletRequest对象简介_动力节点Java学院整理由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

通过getmethod方法获得的是客户端访问该web应用的http请求方式.

代码和结果如下:

?
1
2
string requestmethod = request.getmethod();
system.out.println(requestmethod);

HttpServletRequest对象简介_动力节点Java学院整理

想获取客户端发来的http请求头中的内容可以使用如下方法:

getdateheader() 。

getheader(string) 。

getheadernames() 。

getheaders(string) 。

getintheader(string),

这些方法在各个特定的情况下能有不同的用途,体现出获取客户端请求头方式的多样性.

如通过getheader(string)可以获取指定请求头的数据内容:

?
1
2
string connectionstate = request.getheader( "connection" );
system.out.println(connectionstate);

HttpServletRequest对象简介_动力节点Java学院整理

而通过getheadernames()可以获取发送的所有请求头,例:

?
1
2
3
4
5
6
enumeration e = request.getheadernames();
  while (e.hasmoreelements()) {
     string headername = (string) e.nextelement();
     string headervalue = request.getheader(headername);
     system.out.println(headername+ ":" +headervalue);
  }

HttpServletRequest对象简介_动力节点Java学院整理

而通过getheaders(string)方法获取的是某个同名头的内容,适用于当某个请求头有多个内容时使用.

介绍完获取请求行和请求头,下面介绍获取请求数据中内容的方法:

getpatameter(string) 。

getparameternames() 。

getparametervalues(string) 。

getparametermap() 。

和getinputstream() 。

使用getpatameter(string)方式可以获取请求数据中指定的数据值 。

代码如下:

?
1
2
string value = request.getparameter( "username" );
system.out.println(value);

  。

常可以在浏览器地址url后直接写入参数数据来模拟get方式:

HttpServletRequest对象简介_动力节点Java学院整理

最终在控制台得到:

HttpServletRequest对象简介_动力节点Java学院整理

通过getparameternames()可以获取多个参数:

?
1
2
3
4
5
6
enumeration e = request.getparameternames();
  while (e.hasmoreelements()) {
   string paramname = (string)e.nextelement();
   string paramvalue = request.getparameter(paramname);
   system.out.println(paramname+ ":" +paramvalue);
  }

HttpServletRequest对象简介_动力节点Java学院整理

HttpServletRequest对象简介_动力节点Java学院整理

使用getparametervalues(string)有助于获取当请求数据参数名有相同时的情况:

比如下面这种情况:

HttpServletRequest对象简介_动力节点Java学院整理

代码:

?
1
2
3
4
string[] values = request.getparametervalues( "username" );
   for ( int i= 0 ;i<values.length;i++) {
    system.out.println(values[i]);
   }

在控制台观察:

  HttpServletRequest对象简介_动力节点Java学院整理

(注意:像getpatameter(string)、getparametervalues(string)等等这样的方法,都要小心空指针异常,可能的原因在于并没有这样的参数,还有一种就是在url后没有任何参数传入,所以要特别注意,应该加入健壮性判断。这也是编程过程中会碰到传入参数都应该注意的问题。) 。

使用getparametermap()可以获取以请求数据中参数和参数值作为的键值对的map集合。这样我们就能同时获取键值对。假设有如下情况:

HttpServletRequest对象简介_动力节点Java学院整理

代码为:

?
1
2
3
4
5
6
7
8
map<string,string[]> map = request.getparametermap();
  for (map.entry<string, string[]> entry :map.entryset()) {
   string paramname = entry.getkey();
   for ( int i= 0 ;i<entry.getvalue().length;i++){
    string paramvalue = entry.getvalue()[i];
    system.out.println(paramname+ ":" +paramvalue);
   }
  }

如果请求数据参数为:

HttpServletRequest对象简介_动力节点Java学院整理

那么在控制台上看到的则是:

HttpServletRequest对象简介_动力节点Java学院整理

以上说明了常用的获取数据的方式,还有一种属于request响应对象的getinutstream方法,而这个方法一般只用于大容量的数据获取,比如文件上传,将在之后的篇章中介绍.

下面介绍其他常用方法 。

通过getrequesturi方法和getrequesturl可以获取http请求服务器资源的uri和url,关于uri和url的区别可以通过获取后的字符串来查看:

代码:

?
1
2
3
4
5
string fileuri = request.getrequesturi();
system.out.println( "uri: " +fileuri);
 
stringbuffer fileurl = request.getrequesturl();
system.out.println( "url: " +fileurl.tostring());

访问该servlet,得到:

HttpServletRequest对象简介_动力节点Java学院整理

可以看出uri只包括在服务器中的web应用名和资源对外访问路径(虚拟目录).

通过getquerystring()方法可以获取url上由get方式带来的参数:

若代码为:

?
1
system.out.println(request.getquerystring());

而我在访问这个servlet的url上添加:“?username=fjdingsd&password=123”:

HttpServletRequest对象简介_动力节点Java学院整理

那么当访问这个servlet之后,在myeclipse的控制台将看到:

HttpServletRequest对象简介_动力节点Java学院整理

通过getremoteaddr方法可以获取访问该web应用的客户端ip地址.

代码:

?
1
system.out.println(request.getremoteaddr());

而通过getremotehost方法获取的是访问该web应用的客户端主机名,如果没有在dns服务器上注册的则是获取ip地址。这里说的主机名是指在dns上注册的,比如www.baidu.com,那么通过该方法如果从该主机上来访问,则获取到的是:baidu.com.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

最后此篇关于HttpServletRequest对象简介_动力节点Java学院整理的文章就讲到这里了,如果你想了解更多关于HttpServletRequest对象简介_动力节点Java学院整理的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com