GET方式和POST方式获取表单数据举例2(统一方式获取)
传递的请求参数如何获取
GET方式:参数放在URI后面
POST方式:参数放在实体内容中
获取GET方式参数:
request.getQueryString();
获取POST方式参数:
request.getInputStream();
问题:但是以上两种不通用,而且获取的参数需要进行进一步的解析。所以可以使用统一方便的获取参数方式:
核心的API:
request.getParameter(“参数名”);根据参数名获取参数值(注意,只能获取一个值得参数)
request.getParameterValues(“参数名”);根据参数名获取参数值(可以获取多个值的参数)
request.getParameterNames();获取所有参数名称列表
html文件:testParam.html
<!DOCTYPE html>
<html>
<head>
<title>请求参数传递和接收的问题</title>
<meta name="keywords" content="keyword1,keyword2,keyword3">
<meta name="description" content="this is my page">
<meta name="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body>
<h3>GET请求</h3>
<form action="/day08_web/Demo_Request2" method="GET">
用户名:<input type="text" name="name"/></br>
密码:<input type="password" name="password"></br>
<input type="submit" value="提交"/>
<br/>
性别:
<input type="radio" name="gender" value="male"/>男
<input type="radio" name="gender" value="female"/>女
<br/>
籍贯:
<select name="jiguan">
<option value="gd">广东</option>
<option value="gx">广西</option>
<option value="hn">湖南</option>
</select>
<br/>
爱好:
<input type="checkbox" name="hobit" value="lq"/>篮球
<input type="checkbox" name="hobit" value="zq"/>足球
<input type="checkbox" name="hobit" value="ymq"/>羽毛球
<br/>
个人简介:
<textarea rows="5" cols="10" name="info"></textarea>
<br/>
<!-- 隐藏域 -->
<input type="hidden" name="id" value="001">
<br/>
<input type="submit" value="提交">
</form>
<hr/>
<h3>POST请求</h3>
<form action="/day08_web/Demo_Request2" method="POST">
用户名:<input type="text" name="name"/></br>
密码:<input type="text" name="password"></br>
<input type="submit" value="提交"/>
<br/>
性别:
<input type="radio" name="gender" value="male"/>男
<input type="radio" name="gender" value="female"/>女
<br/>
籍贯:
<select name="jiguan">
<option value="gd">广东</option>
<option value="gx">广西</option>
<option value="hn">湖南</option>
</select>
<br/>
爱好:
<input type="checkbox" name="hobit" value="lq"/>篮球
<input type="checkbox" name="hobit" value="zq"/>足球
<input type="checkbox" name="hobit" value="ymq"/>羽毛球
<br/>
个人简介:
<textarea rows="5" cols="10" name="info"></textarea>
<br/>
<!-- 隐藏域 -->
<input type="hidden" name="id" value="001">
<br/>
<input type="submit" value="提交">
</form>
</body>
</html>
主程序:Demo_Request2.java
package Request;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*
* 获取GET方式和POST方式提交的参数
*/
public class Demo_Request2 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// System.out.println("GET方式提交");
// //接收GET方式提交的参数
// String value = request.getQueryString();
// System.out.println(value);
/*
* 统一方便的获取请求参数方法
*/
System.out.println(request.getMethod()+"方式获取数据");
//根据参数名得到参数值(只能获取一个值得参数)
String name = request.getParameter("name");
String password = request.getParameter("password");
System.out.println(name+"---"+password);
System.out.println("=================================================");
//获取全部的参数名和参数值
Enumeration<String> enums = request.getParameterNames();
while(enums.hasMoreElements()) {
String paramName = enums.nextElement();
if("hobit".equals(paramName)) {
/*
* 根据参数名获取参数值(但是可以获取多个值)
*/
String[] hobits = request.getParameterValues("hobit");
for(String h : hobits) {
System.out.println(paramName+"---"+h+", ");
}
} else {
String paramValue = request.getParameter(paramName);
System.out.println(paramName+"---"+paramValue);
}
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// System.out.println("POST方式提交");
// InputStream in = request.getInputStream();
// byte[] buf = new byte[1024];
// int len = 0;
// while((len = in.read(buf)) != -1) {
// System.out.println(new String(buf,0,len));
// }
// System.out.println(request.getMethod()+"方式获取数据");
// //根据参数名得到参数值
// String name = request.getParameter("name");
// String password = request.getParameter("password");
// System.out.println(name+"---"+password);
// //获取全部的参数名和参数值
// Enumeration<String> enums = request.getParameterNames();
// while(enums.hasMoreElements()) {
// String paramName = enums.nextElement();
// String paramValue = request.getParameter(paramName);
// System.out.println(paramName+"---"+paramValue);
// }
//一定调用doGet方法
this.doGet(request, response);
}
}