Request的概述
Request代表用户的请求.
Request的常用API:
功能一:获得客户机相关信息
获得请求方式:
getMethod();
获得请求的路径:
getRequestURL();
getRequestURL();
获得客户机相关的信息:
getRemoteAddr();
获得工程名:
getContextPath();
功能二:获得从页面中提交的参数
getParameter(String name);
getParameterMap();
getParameterNames();
getParameterValues(String name);
功能三:作为域对象存取数据
removeAttribute(String name);
setAttribute(String name,Object o);
request的作用范围:
作用范围就是一次请求的范围.
创建和销毁:
创建:客户端向服务器发送了一次请求以后,服务器就会创建一个request的对象.
销毁:当服务器对这次请求作出了响应之后.
处理request接收参数的中文乱码的问题:
现在无论是GET还是POST提交中文的时候,都会出现乱码的问题.
解决:
POST的解决方案:
POST的参数在请求体中,直接到达后台的Servlet.数据封装到Servlet中的request中.request也有一个缓冲区.request的缓冲区也是ISO-8859-1编码.
设置request的缓冲区的编码:
request.setCharacterEncoding(“UTF-8”); --- 一定要在接收参数之前设置编码就OK.
GET的解决方案:
1.修改tomcat的字符集的编码.(不推荐)
2.使用URLEncoder和URLDecoder进行编码和解码的操作.
3.使用String的构造方法:
String(byte[] bytes,String charsetName);
通过使用指定的charset解码指定的byte数组,构造一个新的String
Response的概述
Response:代表响应的对象.从服务器向浏览器输出内容.
Response的常用的API
响应行:
设置状态码:
setStatus(int sc);
响应头:
addDateHeader(String name,long date);
addHeader(String name,String value);
addIntHeader(String name,int value);
响应体:
getOutputStream();
getWriter();
这两个方法是互斥的.做出响应的时候只能使用其中的一种流响应.
文件下载的方式
第一种:超链接下载.直接将文件的路径写到超链接的href中.---前提:文件类型,浏览器不支持.
第二种:手动编写代码的方式完成文件的下载.
设置两个头和一个流:
Content-Type :文件的MIME的类型.
Content-Disposition :以下载的形式打开文件.
InputStream :文件的输入流.
输出中文乱码的处理:
字节流:
设置浏览器默认打开的编码:
resposne.setHeader(“Content-Type”,”text/html;charset=UTF-8”);
设置中文字节取出的时候编码.
“中文”.getBytes(“UTF-8”);
字符流:
设置浏览器打开的时候的编码
resposne.setHeader(“Content-Type”,”text/html;charset=UTF-8”);
设置response的缓冲区的编码
response.setCharacterEncoding(“UTF-8”);
简化的写法:response.setContentType(“text/html;charset=UTF-8”)
重定向和转发的区别:(redirect和forward的区别)
1.重定向的地址栏会发生变化,转发的地址栏不变.
2.重定向两次请求两次响应,转发一次请求一次响应.
3.重定向路径需要加工程名,转发的路径不需要加工程名.
4.重定向可以跳转到任意网站,转发只能在服务器内部进行转发.
|
|