request对象就是用来获取请求数据的对象
继承体系:
request获取的请求数据由三部分组成:请求头,请求行,请求体
请求体只有post请求才有请求体,可以使用输入流读取对应的数据
因为不同的doXxx方法,获取请求参数的方式不同,实现起来需要定义不同的逻辑,比较繁琐,所以采用了一种如下通用的参数获取方式
使用低于Tomcat8版本来获取请求数据时,如果数据是中文数据,会出现乱码现象
post方法获取请求数据时,字符输入流的编码是ISO,所以要换成utf8,与浏览器页面对应
get方法获取请求数据时,因为使用的是getQueryString,并没有使用输入流,所以无法设置字节编码方式,则可以使用URL编码
这时要把对应的字符串转化成字节数组(getBytes),然后再构造(new String)成新的字符串(UTF8)
---------------------------------
Request请求转发,即再服务器内部的资源跳转方式,资源a处理一部分请求,然后跳转到资源b继续处理,处理全部完成后再返回给浏览器
请求转发特点:
浏览器地址栏路径不发生变化
只能转发到当前服务器内部的资源,即请求转发是服务器内部的行为,对客户端是屏蔽的
一次请求,可以在转发的资源间使用request共享数据