您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
14_Request_获取请求参数通用方式演示
发布时间:2022-08-10 22:59:10编辑:雪饮阅读()
一种通用的获取request请求参数的方式
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username=request.getParameter("username");
System.out.println("doPost方法中获取到username:"+username);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username=request.getParameter("username");
System.out.println("doGet方法中获取到username:"+username);
}
可以看到这里doGet和doPost中获取username的语法是一样的。
那么对于表单提交如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="Movie" method="POST">
<input name="username">
<input name="password">
<input type="submit" value="提交">
</form>
</body>
</html>
这种方式或像是浏览器直接get方式访问如:
http://localhost:8080/youku_war_exploded/Movie?username=kasumi2
这两种方式都是可以获取到参数username的。
那么既然这两种方式比较通用,所以这里doGet和doPost可以整体简写如:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username=request.getParameter("username");
System.out.println("doPost方法中获取到username:"+username);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username=request.getParameter("username");
doPost(request,response);
}
复选框数据提交的获取
如果有复选框这样的数据:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="Movie" method="POST">
<input name="username">
<input name="password">
<input type="checkbox" name="hobby" value="game">游戏
<input type="checkbox" name="hobby" value="study">学习
<input type="submit" value="提交">
</form>
</body>
</html>
则可以使用request.getParameterValues来获取。具体如:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String[] hobbies=request.getParameterValues("hobby");
for(String hobby:hobbies){
System.out.println("兴趣:"+hobby);
}
}
获取所有请求参数名
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Enumeration<String> parameterNames=request.getParameterNames();
while(parameterNames.hasMoreElements()){
String name=parameterNames.nextElement();
System.out.println("参数名:"+name);
}
}
不过实际测试,当复选框checkbox被勾选后才能拿到请求的参数名(checkbox的name)
进一步可以通过获取的这些所有请求参数名来获取对应的参数值:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Enumeration<String> parameterNames=request.getParameterNames();
while(parameterNames.hasMoreElements()){
String name=parameterNames.nextElement();
String value=request.getParameter(name);
System.out.println("参数名:"+name);
//checkbox时好像是获取的第一个值,即使你勾选了多个值(。。。因为checkbox的多个值都共享一个name的缘故吧)
System.out.println("参数值:"+value);
}
}
用map集合获取所有请求参数
为了弥补上面复选框这种数组类型的数据每次只能获取到一个值的尴尬情况,所以这里可以通过map集合来解决这个问题。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Map<String,String[]> parameterMap=request.getParameterMap();
Set<String> keyset=parameterMap.keySet();
for(String name:keyset){
String[] values=parameterMap.get(name);
System.out.println(name);
//这里对值循环是因为像是复选框这种就会有多个值的原因
for(String value:values){
System.out.println(value);
}
System.out.println("------------");
}
}
关键字词:Request,获取,请求,参数,通用,方式,演示
上一篇:经纬度合法检查-php