您的位置:首页 > 产品设计 > UI/UE

request中的方法小结

2016-06-28 15:50 441 查看

一.request常用方法

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

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

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

getRemoteAddr方法返回发出请求的客户机的IP地址。

getRemoteHost方法返回发出请求的客户机的完整主机名。

getRemotePort方法返回客户机所使用的网络端口号。

getLocalAddr方法返回WEB服务器的IP地址。

getLocalName方法返回WEB服务器的主机名。

getMethod得到客户机请求方式。

二.获取客户端请求的头信息

getHeader(String name) //用来获取你想要的头信息

getHeaders(String name) //获取所有头信息的值

getHeaderNames() //获取头信息的名字和值

举例

request.getHeader("Host") //请求的地址。
request.getHeader("Referer") //请求的完整地址。
request.getHeader("Accept-Language")//语言
request.getHeader("User-agent") //返回客户端浏览器的版本号

getHeaders(String name)这个方法返回结果集是一个Enumeration(枚举)类的实例,包含指定头信息的所有值
如:
Enumeration e = request.getHeaders("Accept-Encoding");
while(e.hasMoreElements()){
String value = (String ) e.nextElement();
System.out.println(value); //输出指定信息的所有值
}

getHeaderNames();这个方法返回结果集是一个Enumeration(枚举)类的实例,包含所有头和值

Enumeration<String> enu=request.getHeaderNames();
while(enu.hasMoreElements()){
String headerName=(String)enu.nextElement();
String headerValue=request.getHeader(headerName);
System.out.println(headerValue);
}


三.获得客户端请求参数(客户端提交的数据)

getParameter(String name) // 获得请求的参数的值

getParameterNames() // 获得所有的参数名,返回Enumeration的实例

getParameterValues(String name) // 获得所有的参数值,返回String数组

getParameterMap() 方法,做框架时大量使用

举例

//1.getParameter(String name)的用法
jsp页面学员账户:<input  type="text" name="username">
servlet:String name=req.getParameter("username");

// 2.getParameterNames()的用法
String values="";
Enumeration params = req.getParameterNames(); // 获得所有请求参数名
while (params.hasMoreElements()) {
String name = params.nextElement().toString();
String[] value = req.getParameterValues(name);
for (int i = 0; i < value.length; i++) {
values = values + value[i];
}
}

// 3.getParameterValues(String name)的用法
//getParameterValues这个方法是获得传过来的参数名相同的一个数组;
//比如:url="a.do?name=2321&name=42423&name=3432";
//String[] name=request.getParameterValues("name");获得就是一个数组

String likes[] = request.getParameterValues("like");
if(likes!=null){
for(String like : likes){
System.out.println(like);
}
}
//下面是这种遍历的专业写法,获取数组数据的方式(可避免空指针异常)
for(int i=0;likes!=null&&i<likes.length;i++){
System.out.println(likes[i]);
}

//4.getParameterMap()的用法
request.getParameterMap()的返回类型是Map类型的对象,也就是符合key-value的对应关系,但这里要注
意的是,value的类型是String[],而不是String.
得到jsp页面提交的参数很容易,但通过它可以将request中的参数和值变成一个map,以下是将得到的参数和值
打印出来,形成的map结构:map(key,value[]),即:key是String型,value是String型数组。
例如:request中的参数t1=1&t1=2&t2=3
形成的map结构:
key=t1;value[0]=1,value[1]=2
key=t2;value[0]=3
如果直接用map.get("t1"),得到的将是:Ljava.lang.String; value只所以是数组形式,就是防止参数名有相同的
情况。

jdk1.4
Map map = new HashMap();
Set set = map.entrySet();
Iterator it = set.iterator();
while (it.hasNext()) {
Entry entry = (Entry) it.next();
String[] tmp = (String[]) entry.getValue();
for (int i = 0; i < tmp.length; i++) {
System.out.println(tmp[i]);
}
}
JDK1.5版本
Map<String, String[]> map = request.getParameterMap();
Set<Entry<String, String[]>> set = map.entrySet();
Iterator<Entry<String, String[]>> it = set.iterator();
while (it.hasNext()) {
Entry<String, String[]> entry = it.next();

System.out.println("KEY:"+entry.getKey());
for (String i : entry.getValue()) {
System.out.println(i);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: