Servlet中獲取POST請求的參數


 

在servlet、filter等中獲取POST請求的參數

  1. form表單形式提交post方式,可以直接從 request 的 getParameterMap 方法中獲取到參數
  2. JSON形式提交post方式,則必須從 request 的 輸入流 中解析獲取參數,使用apache commons io 解析

 

maven配置

      <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.6</version>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    
      <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.50</version>
    </dependency>
      

 

 

獲取POST請求中的參數

    /**
     * @author tianwyam
     * @description 從POST請求中獲取參數
     * @param request
     * @return
     * @throws Exception
     */
    public static Map<String, Object> getParam4Post(HttpServletRequest request) throws Exception {
        
     // 返回參數 Map
<String, Object> params = new HashMap<>(); // 獲取內容格式 String contentType = request.getContentType(); if (contentType != null && !contentType.equals("")) { contentType = contentType.split(";")[0]; } // form表單格式 表單形式可以從 ParameterMap中獲取 if ("appliction/x-www-form-urlencoded".equalsIgnoreCase(contentType)) { // 獲取參數 Map<String, String[]> parameterMap = request.getParameterMap(); if (parameterMap != null) { for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) { params.put(entry.getKey(), entry.getValue()[0]); } } } // json格式 json格式需要從request的輸入流中解析獲取 if ("application/json".equalsIgnoreCase(contentType)) { // 使用 commons-io中 IOUtils 類快速獲取輸入流內容 String paramJson = IOUtils.toString(request.getInputStream(), "UTF-8"); Map parseObject = JSON.parseObject(paramJson, Map.class); params.putAll(parseObject); } return params ; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM