(二)Servlet 表单数据

使用 Servlet 读取表单数据

在Web应用中,对于客户端数据的收集通常会使用表单来进行。当用户端请求到达服务器时,Servlet主要通过HttpServletRequest对象的三种方法来获取用户请求的参数:

(1)Public String getParameter(String name):用来获取表单单个请求参数的值。

(2)Public Enumeration getParameterNames():如果您想要得到当前请求中的所有参数的完整列表,则调用该方法。

(3)Public String[] getParameterValues(String name):如果参数name的值不止一个,则调用该方法,并返回多个值。

示例如下:

(1)源代码

submitForm.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Submit From</title>
	</head>
	<body>
		<form action="showParameter" method="get" id="submitFrom">
			<label for="method">提交方式</label>
			<select id="method">
				<option value="get" name="submitmethod" selected="selected">get</option>
				<option value="post" name="submitmethod">post</option>
			</select>
			<br/>
			<script type="text/javascript">
				document.getElementById("method").onchange = function(){
					var index = this.selectedIndex;
					var selMethod = this.options[index].value;
					document.getElementById("submitFrom").method = selMethod;
				}
			</script>
			<label for="man">男</label>
			<input type="checkbox" value="man" id="sex" name="sex">
			<label for="woman">女</label>
			<input type="checkbox" value="woman" id="woman" name="sex"><br>
			<label for="name">姓名</label>
			<input type="text" id="name" name="name"><br>
			<label for="age">年龄</label>
			<input type="text" id="age" name="age"><br>
			<input type="submit" name="submit">
		</form>
	</body>
</html>

showParameter.java

package cn.border.parameter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class showParameter
 */
@WebServlet("/showParameter")
public class showParameter extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public showParameter() {
        super();
        // TODO Auto-generated constructor stub
    }
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//解决中文参数乱码
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		
		PrintWriter out = response.getWriter();
		Enumeration<String> parameterNames = request.getParameterNames();
		while (parameterNames.hasMoreElements()) {
			String parameterName = (String) parameterNames.nextElement();
			out.println(parameterName+"   :   ");
			String[] parameterValues = request.getParameterValues(parameterName);
			if (parameterValues.length == 1) { 		//只有一个值
				String parameterValue = parameterValues[0];
				if(parameterValue.length() == 0){
					out.println("值为空");
				}else {
					out.print(parameterValue);
				}
			} else {								//
				for (String parametervalue : parameterValues) {
					out.println(parametervalue+" | ");
				}
			}
			out.println("<br>");
		}
	}
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

(2)运行结果

05120614_NXz4.png05120614_zb49.png

 

转载于:https://my.oschina.net/u/2321708/blog/742441

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值