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-08
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

