相关文章推荐
帅呆的电脑桌  ·  使用VBA从Excel复制/粘贴到Power ...·  1 年前    · 
无邪的大熊猫  ·  springboot数据库密码加密-使用自定 ...·  1 年前    · 
腼腆的火柴  ·  Python数据分析基础——CSV文件——添 ...·  2 年前    · 
有腹肌的火锅  ·  camunda spring boot ...·  2 年前    · 
爱热闹的小狗  ·  AIGC爆火背后,都有哪些未来之星?_腾讯新闻·  2 年前    · 
Code  ›  request获取请求参数开发者社区
https://cloud.tencent.com/developer/article/2106937
风流的人字拖
2 年前
作者头像
星哥玩云
0 篇文章

request获取请求参数

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 开源部署 > request获取请求参数

request获取请求参数

作者头像
星哥玩云
发布 于 2022-09-14 21:02:29
1.2K 0
发布 于 2022-09-14 21:02:29
举报

一、客户端传递给浏览器参数的两种方式

1、get请求

2、post请求

例如:

浏览器地址栏直接输入:一定是GET请求;

超链接:一定是GET请求;

表单:可以是GET,也可以是POST,这取决与

的method属性值;

二、GET请求和POST请求的区别

GET请求:

​ 请求参数会在浏览器的地址栏中显示,所以不安全;

​ 请求参数长度限制长度在1K之内;

​ GET请求没有请求体,无法通过request.setCharacterEncoding()来设置参数的编码;

POST请求:

​ 请求参数不会显示浏览器的地址栏,相对安全;

​ 请求参数长度没有限制;

    <!--
		请求方法是get
		hello是应用名,ParamServlet是Servlet绑定URL路径,在问号后面的是请求参		数,第一个参数是p1,值为v1,第二个参数为p2,值为v2
	<a href="/hello/ParamServlet?p1=v1&p2=v2 ">超链接</a>
		请求方法是post
    <form action="/hello/ParamServlet" method="post ">
    	参数1:<input type="text" name="p1"/><br/>
    	参数2:<input type="text" name="p2"/><br/>
    	<input type="submit" value="提交"/>
    </form>
image20200212141838493.png
image20200212141838493.png

三、使用 request获取请求参数 的API:

String getParameter(String name):通过指定名称获取参数值;

	//点击超链接是GET请求,所以会执行doGet()方法
	public void doGet (HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String v1 = request.getParameter("p1");
		String v2 = request.getParameter("p2");
		System.out.println("p1=" + v1);
		System.out.println("p2=" + v2);
	//提交表单是POST请求,所以会调用doPost()方法
	public void doPost (HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String v1 = request.getParameter("p1");
		String v2 = request.getParameter("p2");
		System.out.println("p1=" + v1);
		System.out.println("p2=" + v2);		
	}

String[] getParameterValues(String name):当多个参数名称相同时,可以使用方法来获取;

<!--多个名为name的参数-->
<a href="/hello/ParamServlet?name=zhangSan&name=liSi ">超链接</a>
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
        //获取所有名为name的参数值
		String[] names = request.getParameterValues("name"); 
        //打印数组,输出结果为:[zhangSan, liSi]
		System.out.println(Arrays.toString(names)); 
	}

Enumeration getParameterNames():获取所有参数的名字;

	<form action="/hello/ParamServlet" method="post">
    	参数1:<input type="text" name="p1"/><br/>
    	参数2:<input type="text" name="p2"/><br/>
    	<input type="submit" value="提交"/>
    </form>
	public void doPost(HttpServletRequest request, 
		HttpServletResponse response)
			throws ServletException, IOException {
		Enumeration names = request.getParameterNames() ;
		while(names.hasMoreElements()) {
			System.out.println(names.nextElement());
 
推荐文章
帅呆的电脑桌  ·  使用VBA从Excel复制/粘贴到PowerPoint时的定位和大小调整问题_从excel复制粘贴到powerpoint时要调整图形的形状和定位吗? - 腾讯云开发者社区 - 腾讯云
1 年前
无邪的大熊猫  ·  springboot数据库密码加密-使用自定义加密算法 - 西风恶 - 博客园
1 年前
腼腆的火柴  ·  Python数据分析基础——CSV文件——添加标题行_python 保存csv设定横纵标题_紫罗兰与海棠的博客-CSDN博客
2 年前
有腹肌的火锅  ·  camunda spring boot oracle database configuration-掘金
2 年前
爱热闹的小狗  ·  AIGC爆火背后,都有哪些未来之星?_腾讯新闻
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号