黑马程序员技术交流社区

标题: 【石家庄校区】Request(请求)&Response(响应) [打印本页]

作者: 哥.兜裡有煙    时间: 2017-12-19 17:08
标题: 【石家庄校区】Request(请求)&Response(响应)
本帖最后由 小石姐姐 于 2017-12-20 11:53 编辑

Response
1. 通过response设置状态码:
setStatus(int status);

2. 通过response设置响应头
setHeader(String name,String value);
setIntHeader(String name,int value)
setDateHeader(String name,long date);

3. 通过response设置响应体:
getOutputStream(),
getWriter();
这两种方法是互斥的
4. response的其他的API:
sendRedirect(String path);   //转发

5.向前台响应文字
response.getWriter().println("文字内容");

6. response输出中文的乱码问题:
响应中文乱码处理:(只记住这句话)
response.setContenType("text/html;charset=UTF-8");
     6.1  字节流输出中文:
         * 设置浏览器的字符集编码.   response.setHeader(“Content-Type”,”text/html;charset=UTF-8”);
         * 设置输出内容的字节数组的字符集编码. “”.getBytes(“UTF-8”);
     6.2  字符流输出中文:
         * 设置浏览器字符集编码. response.setHeader(“Content-Type”,”text/html;charset=UTF-8”);
         * 设置response的缓冲区的编码. response.setCharacterEncoding(“UTF-8”);

7. response完成了文件下载功能:
一种:超链接下载.直接将文件的路径写到超链接的href中.---前提:文件类型,浏览器不支持.
二种:手动编写代码的方式完成文件的下载.
设置两个头和一个流:
Content-Type :文件的MIME的类型.
Content-Disposition :以下载的形式打开文件.
InputStream :文件的输入流.        


Request
1. 使用request获得客户机的信息.
getRemoteAddr()
getMethod(),
getRequestURI(),
getRequestURL()

2. 获得请求参数:
getParameter(),getParameterValues(),getParameterMap()

4. 作为域对象存取数据:
setAttribute(),getAttribute(),removeAttribute();

5. 接收参数的中文乱码的处理:
    * GET请求 :new String(“”.getBytes(“ISO-8859-1”),”UTF-8”)
    * POST请求 :request.setCharacterEncoding(“UTF-8”);

5. request何时创建和销毁的?(面试提问)
   * 创建   :从客户端向服务器发送请求.那么服务器创建一个request对象.
    * 销毁   :服务器为这次请求作出了响应之后,服务器就会销毁request对象.
    * 作用范围    :一次请求.

6. 转发和重定向区别?(redirect和forward的区别)(面试提问)
    * 转发是一次请求一次响应,重定向两次请求和两次响应.
    * 转发地址栏不变,重定向会变化.
    * 转发的路径不需要加工程名,重定向需要加工程名.
    * 转发只能在本网站内部,重定向可以定向到任何网站.






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2