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

  1. 在servlet中GET请求可以通过HttpServletRequest的getRequestURL方法和getQueryString()得到完整的请求路径和请求所有参数列表,POST的需要getParameterMap()方法遍历得到,不论GET或POST都可以通过getRequestURL+getParameterMap()来得到请求完整路径
  2. package com.zuidaima
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5. import java.util.Map;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. public class GetParams extends HttpServlet {
  11. private static final long serialVersionUID = 1L;
  12. public GetParams() {
  13. super();
  14. }
  15. protected void doGet(HttpServletRequest request,
  16. HttpServletResponse response) throws ServletException, IOException {
  17. PrintWriter writer = response.getWriter();
  18. writer.println("GET " + request.getRequestURL() + " "
  19. + request.getQueryString());
  20. Map<String, String[]> params = request.getParameterMap();
  21. String queryString = "";
  22. for (String key : params.keySet()) {
  23. String[] values = params.get(key);
  24. for (int i = 0; i < values.length; i++) {
  25. String value = values[i];
  26. queryString += key + "=" + value + "&";
  27. }
  28. }
  29. // 去掉最后一个空格
  30. queryString = queryString.substring(0, queryString.length() - 1);
  31. writer.println("GET " + request.getRequestURL() + " " + queryString);
  32. }
  33. protected void doPost(HttpServletRequest request,
  34. HttpServletResponse response) throws ServletException, IOException {
  35. PrintWriter writer = response.getWriter();
  36. Map<String, String[]> params = request.getParameterMap();
  37. String queryString = "";
  38. for (String key : params.keySet()) {
  39. String[] values = params.get(key);
  40. for (int i = 0; i < values.length; i++) {
  41. String value = values[i];
  42. queryString += key + "=" + value + "&";
  43. }
  44. }
  45. // 去掉最后一个空格
  46. queryString = queryString.substring(0, queryString.length() - 1);
  47. writer.println("POST " + request.getRequestURL() + " " + queryString);
  48. }
  49. }
时间: 2024-12-17 22:39:02

java如何得到GET和POST请求URL和参数列表的相关文章

在SSH框架中,如何得到POST请求的URL和参数列表

在做项目的API通知接口的时候,发现在SSH框架中无法获取到对方服务器发来的异步通知信息.最后排查到的原因可能是struts2对HttpServletRequest进行了二次处理,那么该如何拿到post的请求数据呢,方法很多,下面只给出一种方式. 在servlet中GET请求可以通过HttpServletRequest的getRequestURL方法和getQueryString()得到完 整的请求路径和请求所有参数列表, POST的需要getParameterMap()方法遍历得到,不论GET

http请求 url 传递参数(特殊字符)解决方法

有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码       十六进制值 1. + URL 中+号表示空格 %2B 2. 空格 URL中的空格可以用+号或者编码 %20 3. / 分隔目录和子目录 %2F 4. ? 分隔实际的 URL 和参数 %3F 5. % 指定特殊字符 %25 6. # 表示书签 %23 7. & URL 中指定的参数间的分隔符 %26 8. = URL 中指定参数的值 %3D 解决的方法:

Django之get请求url的参数

当get网址是127.0.0.1:8000/mysite10这种类型的网址时 有两种方法: 1,在urls的路由的urlpatterns里面这样定义路由 re_path('^mysite(\d+)$',mysite), views里面的mysite函数取值是这样的: def mysite(request,id): 2, 在urls的路由的urlpatterns里面这样定义路由 re_path(mysite(?P<a>\d+)$',mysite), views里面的mysite函数取值是这样的:

ajax请求Url加参数的使用方法

var cId = $(this).data('claim-id');var adoptUrl = "<?php echo $this->createUrl('claim/applyAdopt',array('t'=>time())); ?>";//还可以使用占位符 然后进行替换//发起请求$.ajax({ url: adoptUrl+'?cid='+cId, type: 'post', dataType: 'json', success:function(da

关于cas-client单点登录客户端拦截请求和忽略/排除不需要拦截的请求URL的问题(不需要修改任何代码,只需要一个配置)

前言:今天在网上无意间看到cas单点登录排除请求的问题,发现很多人在讨论如何通过改写AuthenticationFilter类来实现忽略/排除请求URL的功能:突发奇想搜了一下,还真蛮多人都是这么干的,原谅我是个耿直的boy,当时我笑的饭都喷出来了,只需要一个配置的问题,被你们搞的这么麻烦:虽然很想回复他们"你们这帮人用别人的东西都不看源码的吗?",转念一想,这也要怪作者不给力,文档里压根没有提到这个配置,在这里用少量篇幅讲解如何配置排除不需要拦截的请求URL,后面用大量篇幅介绍我是如

spring MVC 管理HttpClient---实现在java中直接向Controller发送请求

在spring MVC中,大多数时候是由客户端的页面通过ajax等方式向controller发送请求,但有时候需要在java代码中直接向controller发送请求,这时可以使用HttpCilent实现. 首先用到的包是httpclient-4.3.5.jar和httpcore-4.3.2.jar 先看下面代码: package module.system.common; import java.io.IOException; import java.util.ArrayList; import

解决使用webbrowser请求url时数据传递丢失问题

问题: 使用“ this.webBrowser.Url = new Uri(webBrowserUrl);”方式请求Action(Java Web)并传递数据,在webBrowserUrl中携带的参数过长时,java web中接收到的数据值部分丢失. 原因 使用此方式请求url,相当于GET请求,而GET方法提交的数据有长度限制(由浏览器.服务器决定,HTTP GET方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制),故而在传递数据过长时会出现数据部分丢失问题. 解决方

http post请求url封装相应的key token 及校验码

post请求本来是一种很常见的web请求方式,相信许多项目都有一系列的封装工具类. 今天遇着一个特殊的需求. 需要在post的请求url内封装相应的token 与及key相关的值,这就奇怪了,url封装相应的参数值不是get的做法么,post可以支持么 ,试试,例如Postman等常用的restful接口测试工具都能够调用成功,但是原来封装的普通的http的post方法,便不再能够正常支持参数的 封装,要么校验报错,或者说是直接提示url不符合规范. 常用的请求方式是httpClient 与Ht

JAVA web编程经验之: 一个请求一个事务

对于一个web请求,你会开启几个事务呢? 或许你没注意过吧. 又或许你不会对代码,性能要求太高,所以.... 一个请求一个事务, 因为一个事务往往和一个数据库连接关联, 如果开启了多个事务的话,也就意味着多个数据库连接, 性能不高吧? 前提 1.项目的代码结构分层如下: web层 ->  service层 -> infrastructure层(或DAO层) 2.所有事务都添加在 service层, 通过AOP(或其他类似的技术)实现 先看代码(一个Spring Controller 的调用代码