JavaWeb学习-Servlet系列-20-HttpServletRequest获取请求正文方法介绍(一)

前面分别说过了获取请求消息行和请求消息头的方法,这篇来介绍内容比较多的获取请求正文的相关方法。什么是请求正文呢,如果是get请求,类似?name=anthony就是请求正文,如果是post请求,例如表单注册,这个表单里面全部元素就是请求正文。本篇先来写一个表单,然后介绍获取表单内属性值的方法。

1.写一个注册表单

在Eclipse项目下WebContent下新建一个register.html页面,内容如下






Register Page


	
用户名:
密码:
性别:
爱好: 篮球 唱歌 编码
所在城市:

2.注册表单效果图

JavaWeb学习-Servlet系列-20-HttpServletRequest获取请求正文方法介绍(一)_第1张图片

3.根据表单属性name获取value的方法

写一个ServletDemo3,代码如下

package com.anthony.servlet;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class ServletDemo3 extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//设置post方式,告诉服务器客户端采用什么编码
		req.setCharacterEncoding("UTF-8");
		//根据表单中name属性名获取value属性值的方法
		String name = req.getParameter("userName");
		System.out.println(name);
		//获取pwd
		String pwd = req.getParameter("pwd"); 
		System.out.println(pwd);
		//获取性别,因为是单选,所以使用getParameter就可以
		String gender = req.getParameter("gender"); 
		System.out.println(gender);
		
		//获取爱好,这里爱好是多选,所以需要使用getParameterNames()
		String[] values = req.getParameterValues("hobby");
		for (String e : values) {
			System.out.print(e + "\t");
		}
		System.out.println();
		
		//获取所在城市
		String city = req.getParameter("city"); 
		System.out.println(city);
	}
	
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
	
}

部署到tomcat,测试打开http://localhost:8080/Servlet01/register.html

JavaWeb学习-Servlet系列-20-HttpServletRequest获取请求正文方法介绍(一)_第2张图片

点击注册提交,Eclipse控制台日志输出是下面这些内容

Anthony
123abc
编码
篮球	
BJ

这里需要注意ServletDemo3中设置编码的问题,主要看你html文件中编码是什么,这里就设置什么,不然会产生问号。这篇其实就介绍了两个方法getParameter()和getParameterValues()

 

你可能感兴趣的:(JavaWeb学习-Servlet系列-20-HttpServletRequest获取请求正文方法介绍(一))