HttpServletRequest

本文详细解析了HTTP请求参数的获取方法,包括通用参数、复杂参数(如radio、checkbox)、参数编码设置,并展示了如何在Java Servlet环境中进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取请求参数[通用单值]

HTTP 请求包中的元素通常为字符串类型, 索引就是 HTML表单元素的 name 或者URL中等式右边名, 使用 getParameter 获取

诺出现 name相同的, 则取 URL中排在前面的, 表单中相对考前的[不好说], 当然, name相同的参数要消除


HTML 表单

    <form action="SetAttribute" method="post" >
    
    user : <input type="text" name = "user" value =  "admin" ><br>
    pwd  : <input type="text" name = "pwd" value = "1234" ><br>
    <input type="submit" value="submit"  >
    
    </form>


带参数的请求 URL, 表单做 GET 方式提交即可生成


http://127.0.0.1:8080/day06/SetAttribute?user=admin&pwd=1234


	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html");
		
		System.out.println( request.getParameter("user") );	//输出admin
		System.out.println( request.getParameter("pwd") );	//输出1234
		
		
	}

获取请求参数[复杂参数项]

radio
<form action="SetAttribute" method="post" >
    
    sex : <input type="radio" checked="checked" name="sex" value="boy" > <input type="radio" name="sex" value="girl" ><br>
	    
    <input type="submit" value="submit"  >
    
    </form>

表单中最好初始化某个 radio 为选中状态, 避免提交空值

public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html");
		
		System.out.println( request.getParameter("sex") );	//输出 boy
		
		
	}

参数获取时, 与上无异, 但是  radio值可在 浏览器端或者URL参数方式中自由修改, 要求高的话, 需要在服务器端校验radio项参数值合法性

checkbox 多值参数
该类型参数 URL上传方式为 多个 name相同的 等式, 服务器端获取使用 getParameterValues 获取一个 String[]

html表单
    <form action="SetAttribute" method="POST" >
   
   interest : A : <input type = "checkbox" name = "interest" value = "A" checked="checked" >
   			  B : <input type = "checkbox" name = "interest" value = "B" checked="checked" >
   			  C : <input type = "checkbox" name = "interest" value = "C" >
   			  <br>
      
    <input type="submit" value="submit">
    
    </form>

URL 请求方式

http://127.0.0.1:8080/day06/SetAttribute?interest=A&interest=B

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html");
		
		String[] interests = request.getParameterValues("interest");
		
		for( String value : interests )
		{
			System.out.println(value);	//分别输出 A B
		}
		
		
	}

设置请求编码格式, 获取中文值

POST 方式比较简单, 调用 request 中的 setCharacterEncoding 通知 tomcat该次请求的编码格式

request.setCharacterEncoding("UTF-8");

GET 方式这么搞没用, 等看看哪个项目中怎么搞的, 应该不是视频里面那么来的, 我看那老师自己也晕了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值