request对象和response对象的作用和相关方法

response对象(响应)
 响应行
  状态码 :setStatus(int a) 设置状态码 302重定向 304控制缓存
 响应头
  setHeader() 一个key对应一个value
  addHeader() 一个key对应多个value
 响应体
  getOutputStream() 字节输出流
  getWriter() 字符输出流

* 实现重定向
  1.设置状态码(302) 设置头location
  2.重定向的方法:sendRedirect("客户端绝对路径"); (/项目名/文件名)

* 页面的定时刷新
  使用refresh头完成页面的定时刷新 setHeader("refresh","5;url=/项目名/xxx");
  使用HTML的标签<meta>

* 禁用浏览器的缓存(设置三个头信息 CEP)

* 向页面输出中文乱码的问题
  * 字节流
     设置浏览器打开文件时的编码
     response.setHeader("Content-Type","text/html;charset=UTF-8");
     获取字符串的字节数组
     "中文".getBytes("UTF-8");

  * 字符流
     设置浏览器打开文件时的编码
     response.setHeader("Content-Type","text/html;charset=UTF-8");
     设置response缓冲区的编码(默认是ISO-8859-1)
     response.setCharacterEncoding("UTF-8");

  * 简单方式
     response.setContentType("text/html;charset=UTF-8");

* 文件下载
  * 通过IO流进行读取
  * 设置头信息 setHeader("Content-Disposition","attachment;filename="+文件名称); 以附件的形式打开

* 验证码的实现
  * 在内存中生成图片 BufferedImage
  * 获取画笔的对象

  * 画图片背景色

  * 设置旋转和颜色
  * 画验证码的字符或数字

  * 设置干扰线颜色和坐标

  * 画干扰线
  * 输出图片到浏览器 ImageIO.write(BufferedImage,"jpg",response.getOutputStream());

* 通过img标签的src的属性 设置验证码图片 

* request对象(请求)
  * 获取客户机的信息
  request.getRemoteAddr() 获取访问者ip
  request.getMethod() 获取请求方式
  request.getContextPath() 获取虚拟路径

  * 获取请求参数
  request.getParameter("表单中name属性的值");
  request.getParameterValues(); 获取复选框的内容

  request.getParameterMap() 获取键值对的形式

* request获取中文乱码的问题
  * post
  * 设置request缓冲区的编码
  request.setCharacterEncoding("UTF-8");

  * get
  * 通过String的构造方式
  username = new String(username.getBytes("ISO-8859-1"),"UTF-8");

* request域对象
  * ServletContext域对象:作用空间为整个WEB应用。
  * request域:作用空间为一次request请求。

* 重定向和转发区别
  * 重定向中浏览器发送两次请求,收到两次响应,转发只有一次请求和一次响应。
  * 重定向地址栏发生了变化(指向重定向后的地址),转发地址栏不变(为原始访问地址)。
  * 重定向不能使用request传值(因为实际上发送了2次request请求),转发可以(只有一次request请求)。
  * 重定向可以定向到任何资源(包括网络上的任何资源)。转发只能是当前web应用内部资源。

posted on 2016-04-19 17:10  Yanspecial  阅读(2069)  评论(0编辑  收藏  举报