java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要为大家详细汇总了 Java 中 request 对象的常用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文主要介绍了 Java 中的 request 对象,并且对 request 对象中的一些常用方法作了一点总结,如果你是 Java 初学者,或许这篇文章对你会有所帮助。
HttpServletRequest 对象代表客户端的请求,当客户端通过 HTTP 协议访问服务器时,HTTP 请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。
request 常用方法:
一、获取客户机环境信息常见方法:
1.getRequestURL 方法返回客户端发出请求时的完整 URL。
2.getRequestURI 方法返回请求行中的资源名部分。
3.getQueryString 方法返回请求行的参数部分。
4.getRemoteAddr 方法返回发出请求的客户机的 IP 地址。
5.getRemoteHost 方法返回发出请求的客户机的完整主机名。
6.getRemotePort 方法返回客户机所使用的网络端口号。
7.getLocalAddr 方法返回 web 服务器的 IP 地址。
8.getLocalName 方法返回 WEB 服务器的主机名。
9.getMethod 得到客户机请求方式。
- package com.yyz.request;
- import java.io.IOException;
- import java.io.OutputStream;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class RequestDemo extends HttpServlet {
- public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
- IOException {
- /**
- * URL是URI的子集。
- * URI用来标识一个资源。
- * URL用来标识互联网上的一个资源。
- */
- System.out.println(request.getRequestURL()); //得到请求URL地址
- System.out.println(request.getRequestURI()); //得到请求的资源
- System.out.println(request.getQueryString());
- System.out.println(request.getRemoteAddr()); //得到来访者IP
- System.out.println(request.getRemoteHost());
- //由于没有在dns上注册所以打印结果还是127.0.0.1,如果是百度访问这个程序,则打印www.baidu.com
- System.out.println(request.getRemotePort()); //得到请求的资源
- System.out.println(request.getMethod()); //得到请求的资源
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
- IOException {
- doGet(request, response);
- }
- }
在浏览器地址栏输入:http://localhost:8080/test/servlet/RequestDemo 后,后台输出入下图:
二、获得客户机请求头:
1.getHeader(String name)方法
2.getHeaders(String name)方法
3.getHeaderNames()方法
- package com.yyz.request;
- import java.io.IOException;
- import java.util.Enumeration;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- //获取请求头
- public class RequestDemo extends HttpServlet {
- public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
- IOException {
- String head = request.getHeader("Accept-Encoding");
- //有些浏览器不支持压缩数据
- if (head.contains("gzip")) {
- //输出压缩数据
- } else {
- //输出不压缩数据
- }
- //获取指定名称的头的所有值
- Enumeration e = request.getHeaders("Accept-Encoding");
- while (e.hasMoreElements()) {
- String value = (String) e.nextElement();
- System.out.println(value);
- }
- System.out.println("------------------------");
- //获取所有的头和值
- e = request.getHeaderNames();
- while (e.hasMoreElements()) {
- String name = (String) e.nextElement();
- String value = request.getHeader(name);
- System.out.println(name + "=" + value);
- }
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
- IOException {
- doGet(request, response);
- }
- }
在浏览器访问该程序,后台输出如下:
三、获得客户机请求参数(客户端提交的数据):
1.getParameter(name)方法
2.getParameterValues(String name)方法
3.getParameterNames 方法
4.getParameterMap 方法,做框架时大量使用
- package com.yyz.request;
- import java.io.IOException;
- import java.util.Enumeration;
- import java.util.Map;
- import java.util.Map.Entry;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- //获取请求数据
- public class RequestDemo extends HttpServlet {
- public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
- IOException {
- //http://localhost:8080/test/servlet/RequestDemo?name=yyz
- String value = request.getParameter("name");
- System.out.println(value);
- //http://localhost:8080/test/servlet/RequestDemo?like=sing&like=dance
- 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]);
- }
- //获取所有名称,并根据名称获取值
- Enumeration e = request.getParameterNames();
- while (e.hasMoreElements()) {
- String name = (String) e.nextElement();
- value = request.getParameter(name);
- System.out.println(name + "=" + value);
- }
- System.out.println("----------------------");
- //得到request对象中用来封装数据的Map集合
- Map < String,
- String[] > map = request.getParameterMap();
- for (Entry < String, String[] > me: map.entrySet()) {
- String name = me.getKey();
- String[] v = me.getValue();
- System.out.println(name + "=" + v[0]);
- }
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
- IOException {
- doGet(request, response);
- }
- }
来源: http://www.phperz.com/article/17/1222/358485.html