request方法获得客户信息

register.html输入客户信息

 

<!DOCTYPE html> <html>   <head>     <title>register.html</title>       <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">     <meta http-equiv="description" content="this is my page">     <meta http-equiv="content-type" content="text/html; charset=UTF-8">         <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  </head>     <body>    <div style="text-align: center;">    <form action="./servlet/RegisterServlet"  method="get">    用户名:<input type="text"  name="userName" /><br>    密码:<input type="password" name="userpass"/><br>    邮箱:<input type="email" name="useremail" /><br>    出生日期:<input type="date" name="userBirth"/><br>    性别:<input type="radio" name="sex" value="男"/>男    <input type="radio" name="sex" value="女"/>女<br>    学历:<select name="edu">    <option>博士</option>      <option>研究生</option>        <option>本科 </option>    </select>    爱好:<input type="checkbox" name="fav" value="看书">看书    <input type="checkbox" name="fav" value="游戏">游戏    <input type="checkbox" name="fav" value="编程">编程    <input type="checkbox" name="fav" value="睡觉">睡觉<br>   个人简历:<textarea rows="6" cols="20" name="intr"></textarea><br>   <input type="file" name="file">   <input type="submit" value="提交">    </form>     <br><br>      <a  href="./servlet/DemoServlet">链接</a>    </div>   </body> </html>


RegisterServlet.java

Request获得客户机请求参数(客户端提交的数据)
getParameter(name):获取指定名称的参数值。这是最为常用的方法之一。
getParameterValues(String name):获取指定名称参数的所有值数组。它适用于一个参数名对应多个值的情况。如页面表单中的复选框,多选列表提交的值。
getParameterNames():返回一个包含请求消息中的所有参数名的Enumeration对象。通过遍历这个Enumeration对象,就可以获取请求消息中所有的参数名。
getParameterMap():返回一个保存了请求消息中的所有参数名和值的Map对象。Map对象的key是字符串类型的参数名,value是这个参数所对应的Object类型的值数组。

package www.csdn.day37.servlet;

import java.io.IOException;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

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

public class RegisterServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		test1(request, response);
		//this.getServletConfig().getServletContext().getRequestDispatcher("./register.html").forward(request, response);
		//response.setContentType("text/html;charset=UTF-8");
		//request.getRequestDispatcher("../users.jsp").forward(request, response);
		//this.getServletConfig().getServletContext().getRequestDispatcher("./users.jsp").forward(request, response);
	}

	/**
	 * 加锁
	 * 
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	public void test3(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String referer = request.getHeader("referer");
		if (referer.equals("http://localhost:8080")) {
			System.out.println(referer);
		} else {
			System.out.println("访问不了------------");
		}
	}

	/**
	 * 
	 */
	public void test2(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 请求的编码
		request.setCharacterEncoding("UTF-8");
		// 获取地址栏中userName带过来的参数值
		// 获取指定名称的参数值。这是最为常用的方法之一
		String userName = request.getParameter("userName");
		System.out.println(userName);
		// 获取地址栏中 名称有多个的话 采用getParameterValues(“fav”)获取
		String favs[] = request.getParameterValues("fav");
		for (String fav : favs) {
			System.out.println(fav);
		}
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().print("欢迎谁:::" + userName);

	}

	/**
	 * 查询所有信息
	 * 
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	public void test1(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 获取地址栏中userName带过来的参数值
		// 获取指定名称的参数值。这是最为常用的方法之一
		String userName = request.getParameter("userName");
		System.out.println(userName);
		// 获取地址栏中 名称有多个的话 采用getParametValues("fav")获取
		// 获取指定名称参数的所有值数组。它适用于一个参数名对应多个值得情况。如页面表单中的复选框,多选列表提交的值
		String favs[] = request.getParameterValues("fav");
		for (String fav : favs) {
			System.out.println(fav);
		}

		System.out.println("下面是做框架用的::第11111111111111111111111111111111种方式");

		// 做框架用的
		// 返回一个保存了请求消息中的所用参数名和值的Map对象。Map对象的key是字符串类型的参数名,Values是这个参数所对应的Object类型的值数组
		Map<String, String[]> maps = request.getParameterMap();
		// map<key,value>
		// 获取map的具体的set集合实体对象
		Set<Entry<String, String[]>> set = maps.entrySet();
		// 获取迭代器
		Iterator<Entry<String, String[]>> it = set.iterator();
		// 判断是否含有下一个
		while (it.hasNext()) {
			Entry<String, String[]> entry = it.next();
			// 得到实体的key
			String key = entry.getKey();
			// 得到实体的value值
			String values[] = entry.getValue();
			// 输出
			System.out.print("参数的名称:" + key);
			for (String value : values) {
				System.out.print("参数值:" + value);
			}
			System.out.println();
		}

		System.out.println("第222222222222222222222222种方式");
		
		Set<String> keys = maps.keySet();
		// 获取keys集合的迭代器
		Iterator<String> keyIt = keys.iterator();
		// 判断是否含有下一个
		while (keyIt.hasNext()) {
			// 获取key的值
			String key = keyIt.next();
			// 获取key对应的value值
			String values[] = maps.get(key);
			// 输出
			System.out.print("参数的名称:" + key);
			for (String value : values) {
				System.out.print("参数值:" + value);
			}
			System.out.println();
		}
		
		System.out.println("第3333333333333333333333333种方式");
        
		//返回一个包含请求消息中的所有参数名的Enumeration对象。通过遍历这个Enumeration对象,就可以获取请求消息中所有的参数名
		Enumeration<String> enums=request.getParameterNames();
		//判断enums是否含有多个元素
		while(enums.hasMoreElements()){
			//获取具体的某一个元素
			String name=enums.nextElement();
			//获取参数对应的values的值
			String values[]=request.getParameterValues(name);
			//输出
			System.out.print("参数的名称:"+name);
			for(String value:values){
				System.out.print("参数值:"+value);
			}
			System.out.println();
		}
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doGet(request, response);
	}

}

点击提交按钮后的运行结果:::


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值