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,文中有詳細(xì)的實(shí)現(xiàn)步驟以及示例代碼,對(duì)學(xué)習(xí)或工作有一定的幫助,需要的朋友跟著小編一起來(lái)學(xué)習(xí)吧2023-05-05如何用java程序(JSch)運(yùn)行遠(yuǎn)程linux主機(jī)上的shell腳本
這篇文章主要介紹了如何用java程序(JSch)運(yùn)行遠(yuǎn)程linux主機(jī)上的shell腳本,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-08-08java算法實(shí)現(xiàn)紅黑樹(shù)完整代碼示例
這篇文章主要介紹了java算法實(shí)現(xiàn)紅黑樹(shù)完整代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11ThreadPoolExecutor線(xiàn)程池的使用方法
這篇文章主要為大家詳細(xì)介紹了ThreadPoolExecutor線(xiàn)程池的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-0910k+點(diǎn)贊的 SpringBoot 后臺(tái)管理系統(tǒng)教程詳解
這篇文章主要介紹了10k+點(diǎn)贊的 SpringBoot 后臺(tái)管理系統(tǒng)教程詳解,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01