request功能介绍

request功能

1.获取请求消息数据

	获取请求行数据
		GET   /test/demo?name=xxx  HTTP/1.1
		(1)获取请求方式 :GET
					String getMethod()
		(2) * 获取虚拟目录 :/test
					String getContextPath()
		(3)获取Servlet路径 :/demo
					String getServletPath()
		(4)获取get方式请求参数 :name=xxx
					String getQueryString()
		(5) * 获取请求的URI :/test/demo
					String getRequestURI()#   /test/demo
					StringBuffer getRequestURL()	#    http://localhost/test/demo
		(6)获取协议及版本 :HTTP/1.1
					String getProtocol()
		(7)获取客户的IP地址:
					String getRemoteAddr()

2.获取请求头数据(请求头名称:请求头值)

*常见请求头
1.User-Agent:浏览器告诉服务器,访问使用的浏览器版本信息(可以在服务器获取该头的信息,解决浏览器的兼容性问题)
2.Referer:(告诉服务器,当前请求从哪里来)
*作用:放盗链;统计工作

					String getHeader(String name)	#通过请求头的名称来获取值
					Enumeration<String> getHeaderNames()	#获取所有请求头的名称

3.获取请求体数据

*请求体:只有POST请求方式,才有请求体,在请求体中封装了POST请求参数
*步骤:

	1.获取流对象
	*BufferedReader getReader():获取字符输入流,只能操作字符数据
	*ServletInputStream getInputStream():获取字节输入流,可操作所有类型数据
	2.再从流对象中拿数据

其他功能

	1.获取请求参数通用方式
 			1.String getParameter(String name):根据参数名称获取参数值
 			2.String[] getParameter(String name): 根据参数名称获取参数值的数组
 			3.Enumeration< String > getParameterNames():获取所有请求参数的名称
 			4.Map<String,String[]> getParamterMap():获取所有请求的map集合
 			 		中文乱码问题:
 			 				get方式:tomcat 8 已经将get方式解决
 			 				post方式:乱码
 			 						解决:在获取参数前,设置request的编码request.setCharacterEncoding("utf-8");
 			 						
 	2.请求转发:一种在服务器内部资源跳转的方式
 			步骤:
 				1.通过request对象获取请求转发器对象:RequestDispatcher	getRequestDisparcher(String path)
 				2.使用RequestDispatcher对象来 进行转发:forward(ServletRequest request,ServletResponse response)
 				** req.getRequestDispatcher("").forward(req,resp);
 			特点:
 				1.浏览器地址栏路径不发生变化
 				2.只能转发到当前服务器内部资源中
 				3.转发是一次请求
 	3.共享数据
 			域对象:一个有作用范围的对象,可以在范围内共享数据
 			request域:代表一次请求,一般用于请求转发的多个资源中共享数据
 			方法:
 				1.void setAttribute(String name,Object obj):存储数据
 				2.Object  getAttribute(String name):通过键获取值
 				3.void removeAttribute(String name):通过键移除键值对
 	4.获取ServletContext
 			ServletContext getServletContext()

BeanUtils工具类,简化数据封装

用于封装javaBean的
1.JavaBean:标准的Java类
1.要求:
1.类必须被public修饰
2.必须提供空参的构造器
3.成员变量必须使用private修饰
4.提供公共的setter和getter方法
2.功能:封装数据
2. 方法:
1.setProperty()
2.getProperty()
3.populate

//2.获取请求参数
        Map<String,String[]> map= req.getParameterMap();
        //3.创建User对象
        User loginUser =new User();
        //使用BeanUtils封装
        try {
			BeanUtils.populate(loginUser, map);
		} catch (IllegalAccessException | InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值