澳门新葡萄京官网注册 2

澳门新葡萄京官网注册Java中request对象常用方法总结

正文首要介绍了Java中的request对象,况兼对request对象中的一些常用方法作了少数计算,假设您是Java初读书人,或然那篇文章对你会持有利于。

  HttpServletRequest对象表示客商端的央浼,当客户端通过HTTP左券访谈服务器时,HTTP请求头中的全体新闻都封装在此个指标中,开辟人士通过那么些目的的秘技,能够获取客商那么些新闻。

HttpServletRequest对象表示客户端的伏乞,当客商端通过HTTP合同访问服务器时,HTTP需要头中的全数消息都封装在此个指标中,开采职员通过这些指标的点子,能够收获客商那一个消息。

转自:

request常用艺术

 HttpServletRequest常用艺术

一、获取顾客机蒙受音信听而不闻方法

获得客商机消息

  getRequestURAV4L方法再次回到看客端发出供给时的总体U景逸SUVL。

  getRequestUENVISIONI方法再次回到伏乞行中的能源名部分。

  getQueryString 方法再次回到央求行中的参数部分。

  getRemoteAddr方法重临发出诉求的顾客机的IP地址

  getRemoteHost方法重临发出央求的顾客机的完全主机名

  getRemotePort方法重临看客机所使用的网络端口号

  getLocalAddr方法再次回到WEB服务器的IP地址。

  getLocalName方法再次来到WEB服务器的主机名

  getMethod得到客商机央求方式

1.getRequestU奥迪Q3L措施再次来到看客端发出央浼时的完整URubiconL。

收获客商机央浼头

  getHead(name)方法

  getHeaders(String name)方法

  getHeaderNames方法

2.getRequestURubiconI主意再次来到诉求行中的财富名部分。

获取顾客机诉求参数(顾客端提交的数目State of Qatar

  getParameter(name卡塔尔国:获取内定名称的参数值。那是最为常用的艺术之一。

  getParameterValues(String
name):获取钦点名称参数的有所值数组。它适用于二个参数名对应三个值的气象。如页面表单中的复选框,多选列表提交的值。

  getParameterNames(卡塔尔国:再次来到一个含有倡议音信中的全数参数名的Enumeration对象。通过遍历那个Enumeration对象,就能够赢得央浼音讯中享有的参数名。

  getParameterMap(卡塔尔国:再次来到多少个保存了央求消息中的全数参数名和值的Map对象。Map对象的key是字符串类型的参数名,value是那么些参数所对应的Object类型的值数组

 

  调用RequestDispatcher.forward
方法的呼吁转载进程截止后,浏览器地址栏保持开始的U奔驰M级L地址不改变。

  HttpServletResponse.sendRedirect方法对浏览器的呼吁间接作出响应,响应的结果正是告诉浏览器去重新发出对别的五个UEscortL的拜望乞请;

  RequestDispatcher.forward方法在服务器端内部将恳求转载给其余二个财富,浏览器只知道爆发了央求并得到了响应结果,并不知道在服务器程序内部发生了转载行为。

  RequestDispatcher.forward方法的调用者与被调用者之间分享雷同的request对象和response对象,它们归属同三个拜谒需求和响应进程;

  而HttpServletResponse.sendRedirect方法调用者与被调用者使用各自的request对象和response对象,它们归属多少个独立的拜访央求和响应进程。

 

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
二、获得顾客机央浼头

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

 }

在浏览器访谈该程序,后台输出如下:

澳门新葡萄京官网注册 2

三、获得客户机央浼参数(顾客端提交的数码):

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

上述正是Java中request对象常用方法的全体内容,款待收藏分享。

发表评论

电子邮件地址不会被公开。 必填项已用*标注