欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java獲取request中的參數(shù)以及java解析URL問(wèn)號(hào)后的參數(shù)

 更新時(shí)間:2023年12月28日 10:29:41   作者:angelasp  
這篇文章主要介紹了java獲取request中的參數(shù)以及java解析URL問(wèn)號(hào)后的參數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

放在一個(gè)map里面需要用哪個(gè)就取哪個(gè),方便省事

1.java獲取request中的參數(shù)

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;  
 
/**
 * <p>java獲取request中的參數(shù)、java解析URL問(wèn)號(hào)后的參數(shù)<p>
 * @version 1.0
 * @author Alcedo
 * @date 2022年5月22日
 */
public class RequestParametersUtil {
    /**
     *  獲取request中參數(shù)
     * @param request 頁(yè)面請(qǐng)求
     */
    public static Map<String, Object> getRequestParameters(HttpServletRequest request) {
         String parameters="";//請(qǐng)求參數(shù)
            if("GET".equals(request.getMethod())){//GET請(qǐng)求時(shí)的參數(shù)
                String urlParameter=request.getQueryString();//網(wǎng)址中的參數(shù)
                if(urlParameter!=null&&!"".equals(urlParameter)){
                    try {
                        urlParameter=URLDecoder.decode(urlParameter,"UTF-8");
                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }
                }else {
                    urlParameter="";
                }
                parameters=urlParameter;
            }else if("POST".equals(request.getMethod())){//POST請(qǐng)求時(shí)的參數(shù)
                String totalParameter="";//表單及網(wǎng)址中全部參數(shù)
                Map<String, String[]> params = request.getParameterMap();
                int parametersNum=request.getParameterMap().size();//參數(shù)個(gè)數(shù)
                int flag=1;
                for (String key : params.keySet()) {    
 
                    String[] values = params.get(key);
                    for (int i = 0; i < values.length; i++) {
                        String value = values[i];
                        totalParameter+= key + "=" + value;
                    }
                    if(flag<parametersNum){
                        totalParameter+="&";
                    }
                    flag+=1;
                }
                parameters=totalParameter;
            }
            Map<String, Object> map=new HashMap<String, Object>();
            String[] arr=parameters.split("&");
            for (int i = 0; i <arr.length; i++) {
                String key=arr[i].substring(0, arr[i].indexOf("="));
                String value=arr[i].substring( arr[i].indexOf("=")+1);
                map.put(key, value);
            }
           return map;
    }
} 

2.java解析URL問(wèn)號(hào)后的參數(shù)

獲取全部參數(shù)放進(jìn)HashMap中返回:

import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;
 
/**
 * <p>java獲取request中的參數(shù)、java解析URL問(wèn)號(hào)后的參數(shù)<p>
 * @version 1.0
 * @author Alcedo
 * @date 2022年5月22日
 */
public class GetUrlParameter {
 
    public static Map<String, Object> getParameter(String url) {
        Map<String, Object> map = new HashMap<String, Object>();
        try {
            final String charset = "utf-8";
            url = URLDecoder.decode(url, charset);
            if (url.indexOf('?') != -1) {
                final String contents = url.substring(url.indexOf('?') + 1);
                String[] keyValues = contents.split("&");
                for (int i = 0; i < keyValues.length; i++) {
                    String key = keyValues[i].substring(0, keyValues[i].indexOf("="));
                    String value = keyValues[i].substring(keyValues[i].indexOf("=") + 1);
                    map.put(key, value);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return map;
    }
 
    /**
     * 測(cè)試
     * @param args
     */
    public static void main(String[] args) {
        String url = "jdbc:postgresql://localhost:5432/mydb?currentSchema=public&useSSL=false";
        Map<String,Object> map = getParameter(url);
 
        System.out.println(map.toString());
    }
}

測(cè)試結(jié)果如下:

3.直接獲取Url中某個(gè)參數(shù)

import java.net.URLDecoder;
 
/**
 * <p>java獲取request中的參數(shù)、java解析URL問(wèn)號(hào)后的參數(shù)<p>
 * @version 1.0
 * @author Alcedo
 * @date 2022年5月22日
 */
public class GetUrlParameter {
 
    public static String getOneParameter(String url,String keyWord) {
        String retValue = "";
        try {
            final String charset = "utf-8";
            url = URLDecoder.decode(url, charset);
            if (url.indexOf('?') != -1) {
                final String contents = url.substring(url.indexOf('?') + 1);
                String[] keyValues = contents.split("&");
                for (int i = 0; i < keyValues.length; i++) {
                    String key = keyValues[i].substring(0, keyValues[i].indexOf("="));
                    String value = keyValues[i].substring(keyValues[i].indexOf("=") + 1);
                    if (key.equals(keyWord)) {
                        if (value != null || !"".equals(value.trim())) {
                            retValue = value;
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return retValue;
    }
 
    /**
     * 測(cè)試
     */
    public static void main(String[] args) {
        String url = "jdbc:postgresql://localhost:5432/mydb?currentSchema=public&useSSL=false";
        String value = getOneParameter(url,"currentSchema");
        String name = getOneParameter(url,"useSSL");
 
        System.out.println(value);
        System.out.println("useSSL".equals(name));
    }
}

輸出結(jié)果如下:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot創(chuàng)建WebService方法詳解

    SpringBoot創(chuàng)建WebService方法詳解

    這篇文章主要介紹了SpringBoot如何創(chuàng)建WebService,文中有詳細(xì)的實(shí)現(xiàn)步驟以及示例代碼,對(duì)學(xué)習(xí)或工作有一定的幫助,需要的朋友跟著小編一起來(lái)學(xué)習(xí)吧
    2023-05-05
  • 淺談mybatis中的#和$的區(qū)別

    淺談mybatis中的#和$的區(qū)別

    下面小編就為大家?guī)?lái)一篇淺談mybatis中的#和$的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • Java如何判斷整數(shù)溢出,溢出后怎么得到提示

    Java如何判斷整數(shù)溢出,溢出后怎么得到提示

    這篇文章主要介紹了Java如何判斷整數(shù)溢出,溢出后怎么得到提示,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 如何用java程序(JSch)運(yùn)行遠(yuǎn)程linux主機(jī)上的shell腳本

    如何用java程序(JSch)運(yùn)行遠(yuǎn)程linux主機(jī)上的shell腳本

    這篇文章主要介紹了如何用java程序(JSch)運(yùn)行遠(yuǎn)程linux主機(jī)上的shell腳本,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • java算法實(shí)現(xiàn)紅黑樹(shù)完整代碼示例

    java算法實(shí)現(xiàn)紅黑樹(shù)完整代碼示例

    這篇文章主要介紹了java算法實(shí)現(xiàn)紅黑樹(shù)完整代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • ThreadPoolExecutor線(xiàn)程池的使用方法

    ThreadPoolExecutor線(xiàn)程池的使用方法

    這篇文章主要為大家詳細(xì)介紹了ThreadPoolExecutor線(xiàn)程池的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 10k+點(diǎn)贊的 SpringBoot 后臺(tái)管理系統(tǒng)教程詳解

    10k+點(diǎn)贊的 SpringBoot 后臺(tái)管理系統(tǒng)教程詳解

    這篇文章主要介紹了10k+點(diǎn)贊的 SpringBoot 后臺(tái)管理系統(tǒng)教程詳解,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Spring多種加載Bean方式解析

    Spring多種加載Bean方式解析

    本篇文章主要介紹了Spring多種加載Bean方式解析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • SpringBoot整合Lombok插件與使用詳解

    SpringBoot整合Lombok插件與使用詳解

    Lombok是Java開(kāi)發(fā)的插件,通過(guò)注解自動(dòng)生成常用代碼,如getter/setter,節(jié)省開(kāi)發(fā)時(shí)間,提高效率,它在編譯期生成方法,不影響性能,安裝Lombok需要添加Maven依賴(lài)和IDEA插件,使用注解如@Data、@Getter等簡(jiǎn)化代碼編寫(xiě),官網(wǎng)提供詳細(xì)文檔
    2024-09-09
  • Java注解Annotation解析

    Java注解Annotation解析

    這篇文章主要為大家詳細(xì)介紹了Java注解Annotation,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評(píng)論