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);

}

}
----------------------

二、获得客户机请求头

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 {
     String value = request.getParameter("name");
     System.out .println(value);
     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);
 }
 }
 
 
 
 
 
 
 
下一集预告(response)
-----------------------------------------------------------------------------
 
 
 

servlet(1)request常用方法的更多相关文章

  1. request常用方法小结

    HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息. req ...

  2. HttpServletRequest、request常用方法、request常见应用、请求转发、RequestDispatcher

        HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息. ...

  3. Request常用方法 (总结)

    一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...

  4. servlet中request和response

    一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...

  5. Request常用方法

    一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...

  6. javaWeb核心技术第七篇之HTTP、Tomcat、Servlet、Request和Response

    - Web服务器 - 概念: - web资源: "英文直译"网"的意思 资源:一切数据文件 web资源:通过网络可以访问到的资源,通常指的是一切放在服务器上的文件&quo ...

  7. Servlet技术——request、respone详解

    Servlet之request.respone详解 Request (一) 概述 request是Servlet.service()方法的一个参数,在客户端发出每个请求时,服务器都会创建一个reque ...

  8. Servlet的Request.getInputStream()只能读取一次问题

    Servlet的Request.getInputStream()只能读取一次问题 这个星期公司的项目接口进行改造,公司的接口有的采用了WebService的方式,有的使用的是Http协议+Servle ...

  9. 过滤器将获取到的内容注入到servlet的request中

    过滤器将获取到的内容注入到servlet的request中

随机推荐

  1. tomcat简单使用(二)

    这次主要说一说tomcat的目录文件和配置文件 先看一看tomcat的目录结构, bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat6.exe.to ...

  2. flume用场景及架构原理

    Flume是什么 1.flume可以将采集到的数据存储到HDFS上,也可以放在Hbase上. 2.flume就是一个中间插件,他的作用就是屏蔽数据源和数据存储系统的差异.可以在不同的数据源采集数据,因 ...

  3. MySQL关于sql_mode的修改(timestamp的默认值不正确)

    timestamp的默认值不正确原因: MySQL5.7版本中有了一个STRICT mode(严格模式),而在此模式下默认是不允许设置日期的值为全0值的,所以想要解决这个问题,就需要修改sql_mod ...

  4. 关于basler线阵相机和Mtrox采集卡的安装

    说明: 本系列博文是我自己研究生课题,采用做一步记录一步,在论文答辩结束或者机器设计结束之后才会附上源代码! 以前都是用opencv,直接拿个照片去处理,基本都是软件的使用,这次做课题要用到Matro ...

  5. unicode转中文以及str形态的unicode转中文

    今天在工作中遇到这样一个问题(工作环境为Python2.7.1),需要将一个字典中字符串形态的Unicode类型的汉字转换成中文,随便总结一下: 1.unicode转中文 old = u'\u4e2d ...

  6. tree-data

    [{ label: '一级 1', children: [{ label: '二级 1-1', children: [{ label: '三级 1-1-1' }] }] }, { label: '一级 ...

  7. java se 随机数。生成

    public class test { public static void main(String[] args) { getRandomNum1(); getRandomNum2(); getRa ...

  8. 改变jupyter notebook默认初始文件路径 - 关于快捷方式

    jupyter notebook home path changing - %USERFROFILE% and Configure file 如何改变jupyter notebook默认初始文件路径, ...

  9. 37.如何把握好 transition 和 animation 的时序,创作描边按钮特效

    原文地址:https://segmentfault.com/a/1190000015089396 拓展地址:https://scrimba.com/c/cWqNNnC2 HTML code: < ...

  10. 分布式计算课程补充笔记 part 1

    ▶ 高性能计算机发展历程 真空管电子计算机,向量机(Vector Machine),并行向量处理机(Parallel Vector Processors,PVP),分布式并行机(Parallel Pr ...