A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

小鹿哥

初级黑马

  • 黑马币:31

  • 帖子:13

  • 精华:0

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.重定向可以跳转到任意网站,转发只能在服务器内部进行转发.

5 个回复

正序浏览
爱奋斗的桃花侠 来自手机 初级黑马 2018-1-14 08:42:50
报纸
写的很好,又复习了一遍
回复 使用道具 举报
总结的不错
回复 使用道具 举报
ycbin 来自手机 初级黑马 2018-1-11 13:49:09
藤椅
很好的总结
回复 使用道具 举报
呵呵哈哈256 来自手机 初级黑马 2018-1-11 13:23:30
沙发
不错的总结
回复 使用道具 举报
lin632854170 来自手机 初级黑马 2018-1-11 12:18:24
楼主
request介绍中作为域对象存储数据少了一个获取的方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马