java web获取请求体内容

简介:

Java Web中如何获取请求体内容呢?

我们知道请求方式分为两种:Get,Post

Java代码   收藏代码
  1. /*** 
  2.      * Compatible with GET and POST 
  3.      *  
  4.      * @param request 
  5.      * @return : <code>byte[]</code> 
  6.      * @throws IOException 
  7.      */  
  8.     public static byte[] getRequestQuery(HttpServletRequest request)  
  9.             throws IOException {  
  10.         String submitMehtod = request.getMethod();  
  11.         String queryString = null;  
  12.   
  13.         if (submitMehtod.equals("GET")) {// GET  
  14.             queryString = request.getQueryString();  
  15.             String charEncoding = request.getCharacterEncoding();// charset  
  16.             if (charEncoding == null) {  
  17.                 charEncoding = "UTF-8";  
  18.             }  
  19.             return queryString.getBytes(charEncoding);  
  20.         } else {// POST  
  21.             return getRequestPostBytes(request);  
  22.         }  
  23.     }  
  24.   
  25. /*** 
  26.      * Get request query string, form method : post 
  27.      *  
  28.      * @param request 
  29.      * @return byte[] 
  30.      * @throws IOException 
  31.      */  
  32.     public static byte[] getRequestPostBytes(HttpServletRequest request)  
  33.             throws IOException {  
  34.         int contentLength = request.getContentLength();  
  35.         if(contentLength<0){  
  36.             return null;  
  37.         }  
  38.         byte buffer[] = new byte[contentLength];  
  39.         for (int i = 0; i < contentLength;) {  
  40.   
  41.             int readlen = request.getInputStream().read(buffer, i,  
  42.                     contentLength - i);  
  43.             if (readlen == -1) {  
  44.                 break;  
  45.             }  
  46.             i += readlen;  
  47.         }  
  48.         return buffer;  
  49.     }  
  50. /*** 
  51.      * Get request query string, form method : post 
  52.      *  
  53.      * @param request 
  54.      * @return 
  55.      * @throws IOException 
  56.      */  
  57.     public static String getRequestPostStr(HttpServletRequest request)  
  58.             throws IOException {  
  59.         byte buffer[] = getRequestPostBytes(request);  
  60.         String charEncoding = request.getCharacterEncoding();  
  61.         if (charEncoding == null) {  
  62.             charEncoding = "UTF-8";  
  63.         }  
  64.         return new String(buffer, charEncoding);  
  65.     }  

 说明:当请求方式为“Get”时,直接使用request.getQueryString()获取String

当请求方式为“Post”时,读取InputStream(request.getInputStream())

相关文章
|
5天前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
10 1
|
11天前
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
43 2
|
22天前
|
SQL 存储 安全
Web安全-CSRF跨站请求伪造
Web安全-CSRF跨站请求伪造
37 5
|
1月前
|
数据采集 Java 数据挖掘
Java IO异常处理:在Web爬虫开发中的实践
Java IO异常处理:在Web爬虫开发中的实践
|
2月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
26 1
|
1月前
|
关系型数据库 Java MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【9月更文挑战第6天】在Linux环境下安装JDK 1.8、Tomcat和MariaDB是搭建Java Web应用的关键步骤。本文详细介绍了使用apt-get安装OpenJDK 1.8、下载并配置Tomcat,以及安装和安全设置MariaDB(MySQL的开源分支)的方法。通过这些步骤,您可以快速构建一个稳定、高效的开发和部署环境,并验证各组件是否正确安装和运行。这为您的Java Web应用提供了一个坚实的基础。
37 0
|
2月前
|
Java Maven Android开发
解锁Web开发新技能:从零开始的Struts 2之旅——让你的Java编程之路更加宽广,首个应用实例带你飞!
【8月更文挑战第31天】对于初学者,掌握 Struts 2 框架不仅能提升 Web 开发能力,还能深入了解 MVC 架构。Struts 2 是一个基于 Servlet 的 Java 框架,提供表单验证、文件上传、国际化等功能,便于快速构建易维护的 Web 应用。本文通过示例演示如何从零开始搭建环境并创建一个简单的 Struts 2 项目,包括配置 `struts.xml`、编写 Action 类及视图文件,并配置 web.xml。通过这些步骤,你将学会基本的开发流程,为进一步学习高级功能打下基础。
37 0
|
2月前
|
前端开发 Java UED
JSF遇上Material Design:一场视觉革命,如何让传统Java Web应用焕发新生?
【8月更文挑战第31天】在当前的Web开发领域,用户体验和界面美观性至关重要。Google推出的Material Design凭借其独特的动画、鲜艳的颜色和简洁的布局广受好评。将其应用于JavaServer Faces(JSF)项目,能显著提升应用的现代感和用户交互体验。本文介绍如何通过PrimeFaces等组件库在JSF应用中实现Material Design风格,包括添加依赖、使用组件及响应式布局等步骤,为用户提供美观且功能丰富的界面。
34 0
|
2月前
|
Java 前端开发 Apache
Apache Wicket与Spring MVC等Java Web框架大PK,究竟谁才是你的最佳拍档?点击揭秘!
【8月更文挑战第31天】在Java Web开发领域,众多框架各具特色。Apache Wicket以组件化开发和易用性脱颖而出,提高了代码的可维护性和可读性。相比之下,Spring MVC拥有强大的生态系统,但学习曲线较陡;JSF与Java EE紧密集成,但在性能和灵活性上略逊一筹;Struts2虽成熟,但在RESTful API支持上不足。选择框架时还需考虑社区支持和文档完善程度。希望本文能帮助开发者找到最适合自己的框架。
31 0
|
2月前
|
Java Spring 开发者
Java Web开发新潮流:Vaadin与Spring Boot强强联手,打造高效便捷的应用体验!
【8月更文挑战第31天】《Vaadin与Spring Boot集成:最佳实践指南》介绍了如何结合Vaadin和Spring Boot的优势进行高效Java Web开发。文章首先概述了集成的基本步骤,包括引入依赖和配置自动功能,然后通过示例展示了如何创建和使用Vaadin组件。相较于传统框架,这种集成方式简化了配置、提升了开发效率并便于部署。尽管可能存在性能和学习曲线方面的挑战,但合理的框架组合能显著提升应用开发的质量和速度。
33 0
下一篇
无影云桌面