入门servlet:request获取请求参数通用方式

时间:2023-03-08 21:51:03

一、获取请求参数通用方式

1. String getParameter(String name):根据参数名称获取参数值 例:username=flypig&password=2343

2. String[] getParameterValues(String name):根据参数名称获取参数值的数组  例:hooby=xx&hobby=name

3. Enumeration<String> getParameterNames():获取所有请求的参数名称

4. Map<String, String[]> getParameterMap():获取所有参数的map集合

 @WebServlet("/RequestDemo6")
public class RequestDemo6 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//post 获取请求参数 //根据参数名称获取参数值
String username = request.getParameter("username");
// System.out.println("post");
// System.out.println(username); //根据参数名称获取参数值的数组
String[] hobbies = request.getParameterValues("hobby");
// for (String hobby : hobbies) {
// System.out.println(hobby);
// } //获取所有请求的参数名称 Enumeration<String> parameterNames = request.getParameterNames();
// while(parameterNames.hasMoreElements()){
// String name = parameterNames.nextElement();
// System.out.print(name+":");
// String value = request.getParameter(name);
// System.out.println(value);
// } //获取所有参数的map集合
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("--------------");
} } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//get获取请求参数 //根据参数名称获取参数值
// String username = request.getParameter("username");
// System.out.println("get");
// System.out.println(username); this.doPost(request,response);
}
}

二、解决乱码问题

解决请求参数中文乱码问题:

  * get方式:tomcat 8已经将get方式乱码问题解决

  * post方式:会乱码

    *解决:在获取参数前,设置request的编码request.setCharacterEncoding("utf-8")

 @WebServlet("/RequestDemo7")
public class RequestDemo7 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置流的编码
request.setCharacterEncoding("utf-8"); //post 获取请求参数username
String username = request.getParameter("username");
System.out.println(username); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//get获取请求参数 //根据参数名称获取参数值
// String username = request.getParameter("username");
// System.out.println("get");
// System.out.println(username); this.doPost(request,response);
}
}