热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Java中request对象常用方法汇总

这篇文章主要为大家详细汇总了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 map = request.getParameterMap();
   for(Entry 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对象常用方法的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细探讨了HTTP 500内部服务器错误的成因、解决方案及其在Web开发中的影响。通过对具体案例的分析,帮助读者理解并解决此类问题。 ... [详细]
  • 本文介绍了如何在具备多个IP地址的FTP服务器环境中,通过动态地址端口复用和地址转换技术优化网络配置。重点讨论了2Mb/s DDN专线连接、Cisco 2611路由器及内部网络地址规划。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 如何在PHPcms网站中添加广告
    本文详细介绍了在PHPcms网站后台添加广告的方法,涵盖多种常见的广告形式,如百度广告和Google广告,并提供了相关设置的步骤。同时,文章还探讨了优化网站流量的SEO策略。 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • Windows 系统下 MySQL 8.0.11 的安装与配置
    本文详细介绍了在 Windows 操作系统中安装和配置 MySQL 8.0.11 的步骤,包括环境准备、安装过程以及后续配置,帮助用户顺利完成数据库的部署。 ... [详细]
  • 在Windows系统上安装VMware Workstation 2022的详细步骤
    本文将详细介绍如何在Windows系统上安装VMware Workstation 2022。包括从官方网站下载软件、选择合适的版本以及安装过程中的关键步骤。此外,还将提供一些激活密钥供参考。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 解决MongoDB Compass远程连接问题
    本文记录了在使用阿里云服务器部署MongoDB后,通过MongoDB Compass进行远程连接时遇到的问题及解决方案。详细介绍了从防火墙配置到安全组设置的各个步骤,帮助读者顺利解决问题。 ... [详细]
  • 百度服务再次遭遇技术问题,疑似DNS解析故障
    近日晚间,百度多项在线服务出现加载异常,包括移动端搜索在内的多个功能受到影响。初步迹象表明,问题可能与DNS服务器解析有关。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
author-avatar
吃货程序猿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有