一、request继承体系
- servletRequest==》java提供的请求对象根接口
- HttpServletRequest==》java提供的对Http协议封装的请求对象接口
- requestFacade==》Tomcat定义的实现类
二、request获取请求数据
(一)请求数据分为三部分
1.请求行:请求方式,请求路径、参数以及协议
- String getMethod():获取请求方式:GET
- String getContextPath():获取虚拟目录(项目访问路径):/request-demo
- StringBuffer getRequestURL()获取url统一资源定位符
- String getRequestURI():获取统一资源标识符
- String getQueryString():获取请求参数(GET方法)
2.请求头:
- String getHeader(String name):根据请求头的名称,获取值
- user-agent:浏览器版本信息
3.请求体:
- servletInputStream 个体Input Stream():获取字节输入流
- BufferReader getReader():获取字符输入流
三、request请求转发
(一)request通用方式获取请求参数
1.GET方式
String getQueryString()
2.POST方式
- BufferedReader getReader()
- Map<String ,String[]> getParameterMap():获取所有参数Map集合
- String[] getParameterValues(String name):根据名称获取参数值(数组)
- String getParameter(String name):根据名称获取参数值(单个值)
3、POST中文乱码
解决办法:req.getCharacterEncoding("UTF-8");
4、GET中文乱码
乱码原因:tomcat进行url编码默认ISO-8859-1
解决办法:先对乱码数据进行编码,转为字节数组
byte[] bytes = username.getBytes(StandardCharsets.ISO-8859-1);
而后将字节数组编码
String username = new String(bytes,StandardCharsets.UTF_8);