java獲取request中的參數(shù)以及java解析URL問號后的參數(shù)
更新時間:2023年12月28日 10:29:41 作者:angelasp
這篇文章主要介紹了java獲取request中的參數(shù)以及java解析URL問號后的參數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
放在一個map里面需要用哪個就取哪個,方便省事
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問號后的參數(shù)<p> * @version 1.0 * @author Alcedo * @date 2022年5月22日 */ public class RequestParametersUtil { /** * 獲取request中參數(shù) * @param request 頁面請求 */ public static Map<String, Object> getRequestParameters(HttpServletRequest request) { String parameters="";//請求參數(shù) if("GET".equals(request.getMethod())){//GET請求時的參數(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請求時的參數(shù) String totalParameter="";//表單及網(wǎng)址中全部參數(shù) Map<String, String[]> params = request.getParameterMap(); int parametersNum=request.getParameterMap().size();//參數(shù)個數(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問號后的參數(shù)
獲取全部參數(shù)放進HashMap中返回:
import java.net.URLDecoder; import java.util.HashMap; import java.util.Map; /** * <p>java獲取request中的參數(shù)、java解析URL問號后的參數(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; } /** * 測試 * @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()); } }
測試結(jié)果如下:
3.直接獲取Url中某個參數(shù)
import java.net.URLDecoder; /** * <p>java獲取request中的參數(shù)、java解析URL問號后的參數(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; } /** * 測試 */ 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é)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot創(chuàng)建WebService方法詳解
這篇文章主要介紹了SpringBoot如何創(chuàng)建WebService,文中有詳細(xì)的實現(xiàn)步驟以及示例代碼,對學(xué)習(xí)或工作有一定的幫助,需要的朋友跟著小編一起來學(xué)習(xí)吧2023-05-05如何用java程序(JSch)運行遠(yuǎn)程linux主機上的shell腳本
這篇文章主要介紹了如何用java程序(JSch)運行遠(yuǎn)程linux主機上的shell腳本,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-08-0810k+點贊的 SpringBoot 后臺管理系統(tǒng)教程詳解
這篇文章主要介紹了10k+點贊的 SpringBoot 后臺管理系統(tǒng)教程詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01