Request
请求响应流程
1.request和response对象的原理
Request和response对象是由服务器创建的。我们只是使用
Request对象是来获取请求消息,response是来设置响应消息
Request对象集成体系结构
ServletRequest --接口
| 继承
HttpServletRequest --接口
| 实现
Org.apache.catalina.connector.RequestFavade 类(Tomcat)
2.request功能:获取请求消息
(1)获取请求消息数据
获取请求行、请求头、请求体、请求参数等数据
字节流:文件,图片ServletInputStream getInputStream():获取字节数据流,可以操作所有类型的数据
字符流:字符串Bufferreader getReader()获取字符数据流,只能操作字符数据
(2)其他功能
获取请求参数通用方式:不论get还是post 方法都一样
String getParameter(String name):根据参数名称获取参数值
String[] getParameterValues(String name):根据参数名称获取参数值的数组(复选框)
Enumeratioin GetParameterNames():获取所有请求参数的名称
Map<String,String[]> getPrameterMmap():获取所有从参数map
中文乱码问题:(在获取参数前设置)
Get方式乱码问题已经解决了(Tomcat8+)
Post方法 request.setCharacterEncoding(“utf-8”) 设置流的编码
请求转发:一种在服务器内部资源跳转的方式
步骤:1.通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)
使用RequestDispatcher对象进行转发 forward(HttpServletRequest req, HttpServletResponse resp)
特点:1.浏览器地址栏路径没有发生变化
2.只能转发到当前服务器内部资源中
3.转发只是一次请求
共享数据:
域对象:一个有作用范围的对象,可以在范围内共享数据
Request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
方法:setAttribute(String name, Object obj ):存储数据
2.Object getAttrutude(String name):通过键获取值
3.Void removeAttribute(String name):通过键移除键值对
request域的范围只有一次请求(包括请求后的转发,下图红框)
获取Servletcontext:getServletContext()
BeanUtils工具类,简化数据封装
封装所有传入参数到对象中 populate(Obj, map)
用于封装JavaBean的
1.JavaBean:标准的Java类
1.要求:
类必须被public修饰
必须提供空参的构造器
成员变量必须使用private修饰
提供公共的setter和getter类
2.功能:封装数据
3.概念:
成员变量:
属性:setter和getter方法截取后的产物
例如:getUsername() --> Username(去掉get) 首字母小写 -->username(属性)
通常属性和成员变量一样
方法:
setProperty()
getProperty()
Populate() 都是对属性操作?