亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java通過(guò)HttpServletRequest獲取post請(qǐng)求中的body內(nèi)容的方法

 更新時(shí)間:2018年02月11日 10:56:27   作者:luffy5459  
本篇文章主要介紹了java通過(guò)HttpServletRequest獲取post請(qǐng)求中的body內(nèi)容的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

在java web應(yīng)用中,我們?nèi)绾潍@取post請(qǐng)求body中的內(nèi)容?以及需要注意的問(wèn)題。

通常利用request獲取參數(shù)可以直接通過(guò)req.getParameter(name)的方式獲取url上面或者ajax data提交上來(lái)的參數(shù)。但是body是沒(méi)有名字的,無(wú)法通過(guò)參數(shù)名字這種方式獲取。這時(shí)候需要用到io流的方式來(lái)獲取body中的內(nèi)容。

這里先貼出一段代碼:

package com.lenovo.servlet;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;

import com.alibaba.dubbo.common.utils.IOUtils;
import com.lenovo.service.BusinessService;
import com.lenovo.utils.WebContext;
public class BusinessServlet extends HttpServlet{
 public static final Logger log = Logger.getLogger(BusinessServlet.class);
 
 /**
 * 
 */
 private static final long serialVersionUID = 1L;
 private static BusinessService service;
 static{
 service = (BusinessService) WebContext.getBean("businessService"); 
 }
 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  throws ServletException, IOException {
 doPost(req, resp);
 }
 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse res)
  throws ServletException, IOException {
 
 BufferedReader reader = new BufferedReader(new InputStreamReader(req.getInputStream()));
 String body = IOUtils.read(reader);
 String name = req.getParameter("name");
 if(StringUtils.isNotBlank(body)){
  log.info("business receive somthing with body :"+body);
 }
 res.setCharacterEncoding("UTF-8");
 res.setContentType("application/json");
 res.setStatus(HttpServletResponse.SC_OK);
 res.getWriter().println(service.getName(name));
 }
 
}

在這段代碼doPost方法中,用到了IO流來(lái)獲取post提交的body,這樣我們就獲取了客戶端提交的參數(shù)。

需要注意的是:獲取body參數(shù),需要在request.getParameter()方法之前調(diào)用(如果有需要取QueryString參數(shù)的話),因?yàn)橐坏┱{(diào)用了getParameter()方法之后,再通過(guò)IO流的方式獲取body參數(shù)就失效了(親測(cè)返回"")。

另外,這里使用了dubbo-2.5.3.jar的IOUtils.read(reader)方法來(lái)讀取post body的內(nèi)容。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于Java實(shí)現(xiàn)計(jì)數(shù)排序,桶排序和基數(shù)排序

    基于Java實(shí)現(xiàn)計(jì)數(shù)排序,桶排序和基數(shù)排序

    這篇文章主要為大家詳細(xì)介紹了計(jì)數(shù)排序,桶排序和基數(shù)排序的多種語(yǔ)言的實(shí)現(xiàn)(JavaScript、Python、Go語(yǔ)言、Java),感興趣的小伙伴可以了解一下
    2022-12-12
  • Java實(shí)現(xiàn)WebSocket四個(gè)步驟

    Java實(shí)現(xiàn)WebSocket四個(gè)步驟

    這篇文章主要為大家介紹了Java實(shí)現(xiàn)WebSocket的方法實(shí)例,只需要簡(jiǎn)單四個(gè)步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • SpringBoot自定義路由覆蓋實(shí)現(xiàn)流程詳解

    SpringBoot自定義路由覆蓋實(shí)現(xiàn)流程詳解

    這篇文章主要介紹了SpringBoot自定義路由覆蓋實(shí)現(xiàn)流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • Spring實(shí)戰(zhàn)之獲得Bean本身的id操作示例

    Spring實(shí)戰(zhàn)之獲得Bean本身的id操作示例

    這篇文章主要介紹了Spring實(shí)戰(zhàn)之獲得Bean本身的id操作,結(jié)合實(shí)例形式分析了spring獲取Bean本身id的相關(guān)配置與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-11-11
  • 分布式消息隊(duì)列RocketMQ概念詳解

    分布式消息隊(duì)列RocketMQ概念詳解

    RocketMQ?是阿里開(kāi)源的分布式消息中間件,跟其它中間件相比,RocketMQ?的特點(diǎn)是純JAVA實(shí)現(xiàn),是一套提供了消息生產(chǎn),存儲(chǔ),消費(fèi)全過(guò)程API的軟件系統(tǒng),本文詳細(xì)介紹了分布式消息隊(duì)列RocketMQ概念,需要的朋友可以參考下
    2023-05-05
  • 聊聊SpringMVC項(xiàng)目依賴和靜態(tài)資源導(dǎo)出問(wèn)題

    聊聊SpringMVC項(xiàng)目依賴和靜態(tài)資源導(dǎo)出問(wèn)題

    這篇文章主要介紹了SpringMVC項(xiàng)目依賴和靜態(tài)資源導(dǎo)出問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • 詳解kafka中的消息分區(qū)分配算法

    詳解kafka中的消息分區(qū)分配算法

    kafka有分區(qū)機(jī)制,一個(gè)主題topic在創(chuàng)建的時(shí)候,會(huì)設(shè)置分區(qū)。如果只有一個(gè)分區(qū),那所有的消費(fèi)者都訂閱的是這一個(gè)分區(qū)消息;如果有多個(gè)分區(qū)的話,那消費(fèi)者之間又是如何分配的呢?本文就來(lái)為大家詳細(xì)講解一下
    2022-04-04
  • Java實(shí)現(xiàn)統(tǒng)計(jì)文檔中關(guān)鍵字出現(xiàn)的次數(shù)

    Java實(shí)現(xiàn)統(tǒng)計(jì)文檔中關(guān)鍵字出現(xiàn)的次數(shù)

    這篇文章主要為大家分享了利用Java語(yǔ)言實(shí)現(xiàn)統(tǒng)計(jì)關(guān)鍵字在文檔中出現(xiàn)的次數(shù)的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-05-05
  • Spring Boot如何優(yōu)化內(nèi)嵌的Tomcat示例詳解

    Spring Boot如何優(yōu)化內(nèi)嵌的Tomcat示例詳解

    spring boot默認(rèn)web程序啟用tomcat內(nèi)嵌容器,監(jiān)聽(tīng)8080端口,下面這篇文章主要給大家介紹了關(guān)于Spring Boot如何優(yōu)化內(nèi)嵌Tomcat的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-09-09
  • 詳解java中面向?qū)ο笤O(shè)計(jì)模式類與類的關(guān)系

    詳解java中面向?qū)ο笤O(shè)計(jì)模式類與類的關(guān)系

    這篇文章主要介紹了java面向?qū)ο笤O(shè)計(jì)模式中類與類之間的關(guān)系,下面小編和大家一起來(lái)學(xué)習(xí)一下吧
    2019-05-05

最新評(píng)論