Request对象和response对象的原理:
Request和response对象是由服务器创建的。我们来使用他们
Request对象是来偶去请求消息的,response对象是设置响应消息的
Request对象继承体系结构:
Servletrequest ---- 接口
|继承
HTTPServletRequest ---- 接口
|实现
Org.apache.catalina.connector.requestFacade类(Tomcat中的)
1.Request功能:
获取请求消息数据:
获取请求行数据:
获取请求方式 get string getMethod();
获取虚拟目录: string getcontextpath()
获取servlet路径: string getservletpath()
获取get方式请求参数:string getquerystring() name=gouzi
获取URL: String getrequesturl 获取的是全路径名包含HTTP 同一资源定位符
URI:String getrequesturi 获取的是/项目名/类名 统一资源标识符
获取客户端的IP地址:string getremoteaddr()
获取协议及版本:HTTP/1.1 string getprotocol;
获取请求头的方法:
String GetHeader(string name)通过请求头的名称获取请求头的值
Enumeration<String> getHeaderNames();获取所有的请求头名称
获取请求体数据:
请求体:只有post请求方式,才有请求体,在请求体中封装了post请求的参数
步骤:获取流对象:
BufferedReader getReader()获取字符输入流,只能操作字符数据
Servletinputstream getinputstream():获取字节输入流 可以操作所有数据类型
然后在从流对象中拿数据
其他功能:
获取请求参数通用方式:不论get还是post请求方式都可以使用以下方式
getParameter(String name)根据名称获取值
getParametervalues(String name)根据参数名称获取参数值的数组适用于复选框
GetParameterNames()获取所有的请求的参数
GetParamenterMap()根据名称获取所有的值不过要创建实体类与之对应
使用这个map集合还要与支配和的是BeanUtils.populate()beanurils这是阿里的一 个工具类,populate(实体类,map返回值);这样就可以使他们的值一一对应了
中文乱码的问题;
setCharacterEncoding(“utf-8”);
SetcontextType(“text/html;chartset=utf-8”)
2. 请求转发:一种在服务器内部的资源跳转方式
1. 步骤:
1. 通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)
2. 使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response)
2. 特点:
1. 浏览器地址栏路径不发生变化
2. 只能转发到当前服务器内部资源中。
3. 转发是一次请求
3. 共享数据:
* 域对象:一个有作用范围的对象,可以在范围内共享数据
* request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
* 方法:
1. void setAttribute(String name,Object obj):存储数据
2. Object getAttitude(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. 概念:
成员变量:
属性:setter和getter方法截取后的产物
例如:getUsername() --> Username--> username
3. 方法:
1. setProperty()设置其中一个变量的一个value
2. getProperty()获取一个变量的value