添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

java获取request中的参数、java解析URL问号后的参数。有时候我们需要从request中获取参数,或者获取拼接在Url后面的参数,有时候一个一个去拿有点麻烦,一起拿出来放在一个map里面需要用哪个就取哪个,方便省事。

1. java获取request中的参数:

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;  
 * <p>java获取request中的参数、java解析URL问号后的参数<p>
public class RequestParametersUtil {
     *  获取request中参数
     * @param request 页面请求
    public static Map<String, Object> getRequestParameters(HttpServletRequest request) {
         String parameters="";//请求参数
            if("GET".equals(request.getMethod())){//GET请求时的参数
                String urlParameter=request.getQueryString();//网址中的参数
                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请求时的参数
                String totalParameter="";//表单及网址中全部参数
                Map<String, String[]> params = request.getParameterMap();
                int parametersNum=request.getParameterMap().size();//参数个数
                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问号后的参数:

2.1 获取全部参数放进HashMap中返回:

import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;
 * <p>java获取request中的参数、java解析URL问号后的参数<p>
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 = "www.xxxx.com?longitude=117.191364&latitude=36.684343";
        Map<String,Object> map = getParameter(url);
        System.out.println(map);

测试结果
{latitude=36.684343, longitude=117.191364}

2.2 直接获取Url中某个参数:

mport java.net.URLDecoder;
 * <p>java获取request中的参数、java解析URL问号后的参数<p>
 * @version 1.0
 * @author li_hao
 * @date 2016年12月21日
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 = "www.xxxx.com?id=100001&name=&age=25";
        String value = getOneParameter(url,"id");
        String name = getOneParameter(url,"name");
        System.out.println(value);
        System.out.println("".equals(name));
                    java获取request中的参数、java解析URL问号后的参数。有时候我们需要从request中获取参数,或者获取拼接在Url后面的参数,有时候一个一个去拿有点麻烦,一起拿出来放在一个map里面需要用哪个就取哪个,方便省事。1. java获取request中的参数:import java.io.UnsupportedEncodingException;import java.net.UR...
				
最近工作经常会碰到处理 URL ,可能会要求获取 URL 的文件名或拓展名,也有可能需要获取 URL 参数 Key 的值。 比如下面这样一个 URL http://127.0.0.1:8800/user/designer?userId=38&entry=1&appKey=340506427690999808 获取请求名 利用org.apache.commons.io.FilenameUtils String s = "http://127.0.0.1:8800/user/designe
代码如下: package RequestPackage; import java.util.HashMap; import java.util.Map; public class CRequest { /** * 解析url请求的路径,包括页面 * @param strURL url地址 * @return url路径 */ public static String UrlPage(String strURL) { String strPage=null; String[] arrSplit=null; strURL=strURL.trim().toLowerCase(); arrSpli
htmlform提交参数一般通过post和get这两种方法,其get提交参数的方法对应于HttpServlet的doGet方法,而post提交参数的方法对应于HttpServlet的doPost方法。 get方法提交参数的话会在url上显示,假如我们有的数据不想让别人看...
Java ,可以使用 `HttpServletRequest` 对象的 `getInputStream()` 或 `getReader()` 方法来获取请求体的输入流或读取器,然后从读取请求体参数。 下面是一个使用 `getInputStream()` 方法获取请求体参数的例子: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/api") public class MyServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { InputStream inputStream = request.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder sb = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { sb.append(line); String requestBody = sb.toString(); System.out.println(requestBody); 在上面的例子,我们获取了请求体的输入流,并使用 `BufferedReader` 读取器将其读取为字符串。这里假设请求体参数是一个字符串,如果是 JSON 对象或其他格式的数据,可以使用相应的库进行解析。 另外,如果请求体参数是表单数据,可以使用 `request.getParameter()` 方法来获取它们。例如: ```java String name = request.getParameter("name"); String age = request.getParameter("age"); String email = request.getParameter("email"); 这里假设表单有名为 `name`、`age` 和 `email` 的字段。
com.alibaba.fastjson.JSONException: syntax error, expect [, actual string, pos 0, fieldName null 12900
com.alibaba.fastjson.JSONException: syntax error, expect [, actual string, pos 0, fieldName null 001_memory: 深入一点,怎么判断是否多加了一层双引号?代码中有时候多加有时候不多加 购物车(一)展示商品,以及将商品加入购物车,jdbc连接oracle数据库(用连接池) LeePP22: 检查一下 使用a标签的时候,传入的url值 若依数据权限类 wenhai_zhang: 经常会遇到“复杂sql”,mybatis-plus处理失败的问题。这种需要自己在SQL里写租户字段过滤 Echarts制作横向坐标轴,并且文字名称和数值都在横向坐标轴的上面 SnowMan1993: Make A Pie关了,个人制作的备份镜像弄好了,地址是https://www.isqqw.com/ 直接使用,我会尽量完善内容和功能