java如何得到GET和POST请求URL和参数列表

来源:互联网 发布:三体电影跳票知乎 编辑:程序博客网 时间:2024/05/18 00:39

刚开始以为request.getQueryString()也能得到post body里面的参数 后来发现其实是行不通的,request.getQueryString()方法只能得到url?后面的参数

以下是网上搜到的post 和get都通用的拿去参数的方法


在servlet中GET请求可以通过HttpServletRequest的getRequestURL方法和getQueryString()得到完整的请求路径和请求所有参数列表,POST的需要getParameterMap()方法遍历得到,不论GET或POST都可以通过getRequestURL+getParameterMap()来得到请求完整路径

package com.zuidaima                          import java.io.IOException;  import java.io.PrintWriter;  import java.util.Map;    import javax.servlet.ServletException;  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;    public class GetParams extends HttpServlet {      private static final long serialVersionUID = 1L;        public GetParams() {          super();      }        protected void doGet(HttpServletRequest request,              HttpServletResponse response) throws ServletException, IOException {          PrintWriter writer = response.getWriter();          writer.println("GET " + request.getRequestURL() + " "                  + request.getQueryString());            Map<String, String[]> params = request.getParameterMap();          String queryString = "";          for (String key : params.keySet()) {              String[] values = params.get(key);              for (int i = 0; i < values.length; i++) {                  String value = values[i];                  queryString += key + "=" + value + "&";              }          }          // 去掉最后一个空格          queryString = queryString.substring(0, queryString.length() - 1);          writer.println("GET " + request.getRequestURL() + " " + queryString);      }        protected void doPost(HttpServletRequest request,              HttpServletResponse response) throws ServletException, IOException {          PrintWriter writer = response.getWriter();          Map<String, String[]> params = request.getParameterMap();          String queryString = "";          for (String key : params.keySet()) {              String[] values = params.get(key);              for (int i = 0; i < values.length; i++) {                  String value = values[i];                  queryString += key + "=" + value + "&";              }          }          // 去掉最后一个空格          queryString = queryString.substring(0, queryString.length() - 1);          writer.println("POST " + request.getRequestURL() + " " + queryString);      }  }


0 0
原创粉丝点击