javaweb之request获取请求头和请求数据

package test.request;

import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.util.Enumeration;
import java.util.Map;

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

import com.sun.org.apache.commons.beanutils.BeanUtils;
//HttpServletRequest获取请求头和请求数据
//请求数据一半来说要先检查再使用,检查非空和不是空格

public class RequestDemo2 extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("---------获取请求数据方式1-------------");
		// 获取指定的请求数据
		String value = request.getParameter("username");
		if (value != null && !value.trim().equals("")) {
			System.out.println(value);
		}

		System.out.println("---------获取请求数据方式2-------------");
		// 获取所有的请求数据
		Enumeration e = request.getParameterNames();
		while (e.hasMoreElements()) {
			String paramName = (String) e.nextElement();
			String value2 = request.getParameter(paramName);
			System.out.println(paramName + "=" + value2);
		}

		System.out.println("---------获取请求数据方式3-------------");
		// 获取所有的请求数据,同名的只能获取一次,就是第一次
		String[] values = request.getParameterValues("username");
		for (int i = 0; values != null && i < values.length; i++) {
			System.out.println(values[i]);
		}

		System.out.println("---------获取请求数据方式4-------------");
		// 这个特别实用,框架的模型驱动,这个Map的value肯定是String数组类型,因为有同名的请求数据
		// 实际开发中是不会 request.getParameter("username");用这种方式的,都是要创建一个model的
		Map<String, String[]> map = request.getParameterMap();
		User user = new User();
		try {
			// 用map中的数据填充bean
			BeanUtils.populate(user, map);
		} catch (IllegalAccessException e1) {
			e1.printStackTrace();
		} catch (InvocationTargetException e1) {
			e1.printStackTrace();
		}
		System.out.println(user.getPassword());

		System.out.println("---------获取请求数据方式5-------------");
		// request.getInputStream();是上传文件的时候获取数据的方式
		// 普通数据是获取不到的
		InputStream in = request.getInputStream();
		int len = 0;
		byte[] buffer = new byte[1024];
		while ((len = in.read(buffer)) > 0) {
			System.out.println(new String(buffer, 0, len));
		}
	}

	// 获取请求头
	private void test1(HttpServletRequest request) {
		System.out.println("---------获取请求头方式1-------------");
		// 拿到指定的请求头
		System.out.println(request.getHeader("cache-control"));

		System.out.println("---------获取请求头方式2-------------");
		// 拿到所有指定的请求头
		Enumeration e = request.getHeaders("cache-control");
		while (e.hasMoreElements()) {
			String headValue = (String) e.nextElement();
			System.out.println(headValue);
		}

		System.out.println("---------获取请求头方式3-------------");
		// 拿到所有请求头
		Enumeration e1 = request.getHeaderNames();
		while (e1.hasMoreElements()) {
			String headerName = (String) e1.nextElement();
			String headValue = request.getHeader(headerName);
			System.out.println(headerName + "=" + headValue);
		}
	}

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

}


package test.request;

public class User {
	private String[] username;
	public String[] getUsername() {
		return username;
	}
	public void setUsername(String[] username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	private String password;
}

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>给RequestDemo2发送请求数据</title>
  </head>
  
  <body>
	<!-- 浏览器可以通过两种方式向服务器发送请求数据      超链接方式后面跟了中文要经过url编码后再提交 -->
	<a href="/day06/servlet/RequestDemo2?username=xxx">点点</a><br/>
    <form action="/day06/servlet/RequestDemo2" method="post">
    	用户名1:<input type="text" name="username"/><br/>
    	用户名2:<input type="text" name="username"/><br/>
    	密码:<input type="password" name="password"/><br/>
    	<input type="submit" value="提交"/>
    </form>
  </body>
</html>

此程序还需用到commons-beanutils-1.9.0.jar和commons-logging-1.1.3.jar这两个jar包

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值