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); } }
相关文章推荐
- UINavigationController、UITabBarController
- 导致UIButton半透明的原因
- UITextField 全属性
- Sprite (2D and UI)
- Android 更新UI的两种方式--Handler & runOnUiThread
- android进行异步更新UI的四种方式
- UIView 中常见的方法总结
- easyui dataGrid 动态添加列
- android的BuildConfig学习
- Workqueue的应用
- Android酷炫实用的开源框架(UI框架)
- SpannableString&SpannableStringBuilder定制文本
- IOS UIProgressView控件用法(进度条)
- The SQL Server Service Broker for the current database is not enabled, and as a result query notifications are not supported.
- vuejsLearn---通过手脚架快速搭建一个vuejs项目
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
- Android漂亮的UI库集合
- AndroidStudio部署项目时出现错误:Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled
- vuejsLearn--- -- 怎么查看、修改、追加数据---->data对象
- UITableview顶部视图缩放效果