时间:2021-05-20
通过getMethod方法获得的是客户端访问该web应用的Http请求方式。
代码和结果如下:
String requestMethod = request.getMethod();System.out.println(requestMethod);想获取客户端发来的HTTP请求头中的内容可以使用如下方法:
getDateHeader()
getHeader(String)
getHeaderNames()
getHeaders(String)
getIntHeader(String);
这些方法在各个特定的情况下能有不同的用途,体现出获取客户端请求头方式的多样性。
如通过getHeader(String)可以获取指定请求头的数据内容:
String connectionState = request.getHeader("Connection");System.out.println(connectionState);而通过getHeaderNames()可以获取发送的所有请求头,例:
Enumeration e = request.getHeaderNames(); while(e.hasMoreElements()) { String headerName = (String) e.nextElement(); String headerValue = request.getHeader(headerName); System.out.println(headerName+":"+headerValue); }而通过getHeaders(String)方法获取的是某个同名头的内容,适用于当某个请求头有多个内容时使用。
介绍完获取请求行和请求头,下面介绍获取请求数据中内容的方法:
getPatameter(String)
getParameterNames()
getParameterValues(String)
getParameterMap()
和getInputStream()
使用getPatameter(String)方式可以获取请求数据中指定的数据值
代码如下:
String value = request.getParameter("username");System.out.println(value);常可以在浏览器地址URL后直接写入参数数据来模拟GET方式:
最终在控制台得到:
通过getParameterNames()可以获取多个参数:
Enumeration e = request.getParameterNames(); while(e.hasMoreElements()) { String paramName = (String)e.nextElement(); String paramValue = request.getParameter(paramName); System.out.println(paramName+":"+paramValue); }使用getParameterValues(String)有助于获取当请求数据参数名有相同时的情况:
比如下面这种情况:
代码:
String[] values = request.getParameterValues("username"); for(int i=0;i<values.length;i++) { System.out.println(values[i]); }在控制台观察:
(注意:像getPatameter(String)、getParameterValues(String)等等这样的方法,都要小心空指针异常,可能的原因在于并没有这样的参数,还有一种就是在URL后没有任何参数传入,所以要特别注意,应该加入健壮性判断。这也是编程过程中会碰到传入参数都应该注意的问题。)
使用getParameterMap()可以获取以请求数据中参数和参数值作为的键值对的Map集合。这样我们就能同时获取键值对。假设有如下情况:
代码为:
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); } }如果请求数据参数为:
那么在控制台上看到的则是:
以上说明了常用的获取数据的方式,还有一种属于request响应对象的getInutStream方法,而这个方法一般只用于大容量的数据获取,比如文件上传,将在之后的篇章中介绍。
下面介绍其他常用方法
通过getRequestURI方法和getRequestURL可以获取http请求服务器资源的URI和URL,关于URI和URL的区别可以通过获取后的字符串来查看:
代码:
String fileURI = request.getRequestURI();System.out.println("URI: "+fileURI);StringBuffer fileURL = request.getRequestURL();System.out.println("URL: "+fileURL.toString());访问该Servlet,得到:
可以看出URI只包括在服务器中的web应用名和资源对外访问路径(虚拟目录)。
通过getQueryString()方法可以获取URL上由GET方式带来的参数:
若代码为:
System.out.println(request.getQueryString());而我在访问这个Servlet的URL上添加:“?username=fjdingsd&password=123”:
那么当访问这个Servlet之后,在MyEclipse的控制台将看到:
通过getRemoteAddr方法可以获取访问该web应用的客户端IP地址。
代码:
System.out.println(request.getRemoteAddr());而通过getRemoteHost方法获取的是访问该web应用的客户端主机名,如果没有在DNS服务器上注册的则是获取IP地址。这里说的主机名是指在DNS上注册的,比如。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.request对象是javax.servlet.HttpServletRequest接口的实例化2.response对象是javax.servlet.Htt
Java开发之request对象常用方法整理本文主要介绍了Java中的request对象,并且对request对象中的一些常用方法作了一点总结,如果你是Java
实现步骤:(1)创建servletBrowserServer(2)调用HttpServletRequest对象的getServerName()方法获取服务器名称
亿邦动力网获悉,2017天猫双11从今日开始正式招商。亿邦动力网根据天猫官方公布相关规则信息整理如下:时间节点海选报名:8.28-9.1海选结果:9.5预售申报
PDT4J是动力节点为了提高Java语言教学效果的探索与实践而开发的一种更适合于Java教学的一种项目驱动教学方式。注:PDT4J:AProjectDriven