request和response对象

request对象和response对象原理:
request和response对象是由服务器创建的。我们来使用他们
request和response对象是来获取请求消息,response对象是来设置相应消息

request对象继承体系结构
	ServletRequest-----接口
		|   继承
	HttpServletRequest---接口
		|   实现
	
org.apache.catalina.connector.RequestFacade类(Tomcat)
request 功能:获取请求消息数据
	获取请求消息
		获取请求行数据
			获取请求方式
				String getMethod()
			(*)获取虚拟目录
				String getContextPath()
			获取Servlet路径
				String getServletPath()
			获取get方式请求参数
				getQueryString
			(*)获取请求URI:
				String getRequestURI()
				StringBuffer getRequestURL()
				
				URL:统一资源定位符
				URI:统一资源标识符    比URL范围大
			获取协议及版本
				String getProtocol()
			获取客户机的IP地址
				String getRemoteAddr()


		获取请求头数据
			String getHeader(String name):通过请求头的名称获取值
				user-agent浏览器版本 referer获取URL地址
		获取请求体数据	
			只有POST请求方式才有请求体,在请求中封装了POST请求的请求参数
			步骤
				获取流对象
					BufferedRreader getReader():获取字符输入流,只能操作字符数据
					ServletInputStream getInputStream:获取字节输入流,可操作任何类型数据	
				
	其他功能(重要)
		1.获取请求参数通用方式
			get Parameter(String name):根据参数名称获取参数值
			getParameterValues(String name)根据参数名称获取参数值的数组
			 getParameterNames():获取所有请求的参数名称 ----迭代器原理
			getParameterMap():获取所有参数的map集合   ---常用
			
			中文乱码问题
				解决方式:在获取参数前,设置request的编码方式。request.setChracterEncoding("utf-8")
				
		2.请求转发:一种在服务器内部的资源跳转方式
			步骤:
				通过request对象获取请求转发其对象:getRequestDispatcher(资源地址)
				通过请求转发器对象进行转发:forward 
			特点:
				浏览器路径不发生变化
				只能转发到当前的服务器内部资源中
				转发是一次请求
		3.共享数据
			域对象:一个有作用范围的对象,可以在范围内共享数据
			request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
			方法:
				setAttribute 储存数据
				getAttribute:通过键获取值
				removeAttribute 通过键移除键值对
		4.获取ServletContext	
			getservletContext()

用户登录案例:
需求:
编写login.html 登录页面
username&password两个输入框
使用Druid数据库连接池技术,操作mysql,数据库中的user表
使用JdbcTemplate技术封装JDBC
登陆成功跳转到SuccessServlet展示:登陆成功!用户名,欢迎您
登陆失败跳转到FailServlet展示:登陆失败,用户名或密码错误

需求分析:先写一个登录页面,
	创建一个HTTPServlet 的实现类,调用getParameterMap方法获取用户名和密码
	将用户名和密码封装为一个对象	
	操作数据库创建一个查询方法,返回user对象
	判断user是否为null




开发步骤:
	创建项目,导入HTML页面,配置文件,jar包
	创建数据库环境
	创建操作数据库的类		

BeanUtils使用方法
调用getParameterMap()获取所有请求参数
创建User对象,调用populate(Object obj,map)
JavaBean :标准的Java类
要求:
类必须被public修饰必须提供

HTTP协议:响应消息

请求消息:客户端发送给服务器端的数据
	数据格式
		请求行
		请求头
		请求空行
		请求体
响应消息:服务器端发送给客户端的数据
	数据格式
		响应行
			组成:协议/版本 响应状态吗 状态码描述
			响应状态码:服务器告诉客户端本次请求和响应的一个状态
				状态码都是三位数字
				分类:
					1xx:服务器接收客户端消息,但没有接收完成,等待一段时间后发送1xx状态码
					2xx:成功。代表200
					3xx:重定向。代表:302(重定向),304(访问缓存)
					4xx:客户端错误。
						代表
							404(请求路径没有对应的资源)
							405:请求方式没有对应的doxxx方法
						
					5xx:服务器端错误。代表500(服务器内部出现的异常)
		响应头
			格式:头名称:值
			常见的响应头
				Content-type:服务器告诉客户端本次响应体数据格式以及编码格式
				Content-disposition:服务器告诉客户端以什么形式打开响应体数据
		响应空行
		响应体
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值