热门标签 | 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对象常用方法的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了求解gcdexgcd斐蜀定理的迭代法和递归法,并解释了exgcd的概念和应用。exgcd是指对于不完全为0的非负整数a和b,gcd(a,b)表示a和b的最大公约数,必然存在整数对x和y,使得gcd(a,b)=ax+by。此外,本文还给出了相应的代码示例。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了一些好用的搜索引擎的替代品,包括网盘搜索工具、百度网盘搜索引擎等。同时还介绍了一些笑话大全、GIF笑话图片、动态图等资源的搜索引擎。此外,还推荐了一些迅雷快传搜索和360云盘资源搜索的网盘搜索引擎。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文详细介绍了解决全栈跨域问题的方法及步骤,包括添加权限、设置Access-Control-Allow-Origin、白名单等。通过这些操作,可以实现在不同服务器上的数据访问,并解决后台报错问题。同时,还提供了解决second页面访问数据的方法。 ... [详细]
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社区 版权所有