最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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());
    }
}

測試結果如下:

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));
    }
}

輸出結果如下:

總結

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

相關文章

  • Java項目防止SQL注入的幾種方法總結

    Java項目防止SQL注入的幾種方法總結

    SQL注入是比較常見的網(wǎng)絡攻擊方式之一,在客戶端在向服務器發(fā)送請求的時候,sql命令通過表單提交或者url字符串拼接傳遞到后臺持久層,最終達到欺騙服務器執(zhí)行惡意的SQL命令,下面這篇文章主要給大家總結介紹了關于Java項目防止SQL注入的幾種方法,需要的朋友可以參考下
    2023-04-04
  • 查看Spring容器中bean的五種方法小結

    查看Spring容器中bean的五種方法小結

    近期在寫Spring項目的時候,需要通過注解的形式去替代之前直接將Bean存放在Spring容器這種方式,以此來簡化對于Bean對象的操作,這篇文章主要給大家介紹了關于如何查看Spring容器中bean的五種方法,需要的朋友可以參考下
    2024-05-05
  • 在java8中使用流區(qū)分質數(shù)與非質數(shù)詳解

    在java8中使用流區(qū)分質數(shù)與非質數(shù)詳解

    這篇文章主要介紹了在java8中使用流區(qū)分質數(shù)與非質數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Spring實戰(zhàn)之協(xié)調(diào)作用域不同步的Bean操作示例

    Spring實戰(zhàn)之協(xié)調(diào)作用域不同步的Bean操作示例

    這篇文章主要介紹了Spring實戰(zhàn)之協(xié)調(diào)作用域不同步的Bean操作,結合實例形式分析了Spring協(xié)調(diào)作用域不同步的Bean相關配置及使用技巧,需要的朋友可以參考下
    2019-11-11
  • Java實例講解注解的應用

    Java實例講解注解的應用

    JAVA注解?Annotation(注解)是JDK1.5及以后版本引入的。它可以用于創(chuàng)建文檔,跟蹤代碼中的依賴性,甚至執(zhí)行基本編譯時檢查。注解是以‘@注解名’在代碼中存在的
    2022-06-06
  • 使用@Autowired注解警告Field injection is not recommended的解決

    使用@Autowired注解警告Field injection is not recommended的解決

    這篇文章主要介紹了使用@Autowired注解警告Field injection is not recommended的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • SpringBoot?+?Redis如何解決重復提交問題(冪等)

    SpringBoot?+?Redis如何解決重復提交問題(冪等)

    在開發(fā)中,一個對外暴露的接口可能會面臨瞬間的大量重復請求,本文就介紹了SpringBoot + Redis如何解決重復提交問題,具有一定的參考價值,感興趣的可以了解一下
    2021-12-12
  • SpringBoot程序CPU飆升的排查指南

    SpringBoot程序CPU飆升的排查指南

    在生產(chǎn)環(huán)境里,大家或多或少都遇到過這種場景:某個 Spring Boot 應用突然 CPU 飆升,打滿服務器資源,監(jiān)控報警狂響,業(yè)務接口開始超時,登錄服務器,top一看,只能看到是 java 進程在耗 CPU,所以本文給大家介紹了SpringBoot程序CPU飆升的排查指南,需要的朋友可以參考下
    2025-08-08
  • Java對象數(shù)組的添加、刪除和遍歷代碼示例

    Java對象數(shù)組的添加、刪除和遍歷代碼示例

    在Java編程中,我們經(jīng)常需要對數(shù)據(jù)結構進行遍歷操作,并根據(jù)業(yè)務需求刪除部分元素,這篇文章主要給大家介紹了關于Java對象數(shù)組的添加、刪除和遍歷的相關資料,需要的朋友可以參考下
    2024-04-04
  • java+io+swing實現(xiàn)學生信息管理系統(tǒng)

    java+io+swing實現(xiàn)學生信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了java+io+swing實現(xiàn)學生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評論

阿拉尔市| 浏阳市| 高邑县| 自治县| 宁夏| 娱乐| 泾源县| 桦南县| 永寿县| 东源县| 南宁市| 临泽县| 平陆县| 西林县| 无极县| 荣成市| 泸溪县| 吉安市| 农安县| 大兴区| 达日县| 凤城市| 城固县| 南昌市| 南安市| 甘谷县| 泸定县| 天祝| 丹寨县| 深州市| 南充市| 郴州市| 台中县| 依安县| 襄垣县| 新巴尔虎右旗| 伽师县| 德钦县| 特克斯县| 建瓯市| 建昌县|