无论GET还是POST都可以用通用方式获取请求参数
程序员文章站
2023-12-27 10:10:57
...
获取请求参数通用方式
不论get还是post都能用
1.String getParameter(String name):根据参数名称获取参数值
username = xxx & password = 123
小例子:
rotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取请求参数 POST
//根据名请求参数称获取请求参数值
String username = request.getParameter("username");
System.out.println("post");
System.out.println(username);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取请求参数 GET
//String username = req.getParameter("username");
//System.out.println("get");
//System.out.println(username);
this.doPost(request,response);
}
控制台输出
2.String getParameterValues(String name):根据参数名称获取参数值的数组
html
<input type="checkbox" name="hobby" value="study">学习
<input type="checkbox" name="hobby" value="game"> 游戏
servlet
String username = request.getParameter("username");
//根据参数名称获取参数值的数组
String[] hobbies = request.getParameterValues("hobby");
for(String hobby : hobbies){
System.out.println(hobby);
控制台输出
hobby = study & hobby = game等多用于复选框
3.Enumeration String getParameterNames():获取所有请求的参数名称
//获取所有请求参数名称
Enumeration<String> parameterNames = request.getParameterNames();
while (parameterNames.hasMoreElements()){
String name = parameterNames.nextElement();
System.out.println(name);
String value = request.getParameter(name);
System.out.println(value);
System.out.println("-------------");
}
控制台输出(注:hobby没有全部输出,因为getparameter只能获取一个值
4.Map<String , String[]> getParameterMap():获取所有参数Map键值对的集合
//获取所有参数的map集合
Map<String, String[]> parameterMap = request.getParameterMap();
//map遍历
Set<String> keyset = parameterMap.keySet();
for(String name : keyset){
//根据name键获取值
String[] values = parameterMap.get(name);
System.out.println(name);
for (String value:values){
System.out.println(value);
}
System.out.println("-------------");
}
控制台输出
*中文乱码问题
get方式:不会乱码Tomcat 8已经自我解决了。
post方式:会乱码,在获取参数前设置请求方式中流的编码即可。
//设置流的编码
request.setCharacterEncoding("utf-8");