Response & Request 对象

  response 两种在网页显示的方式:                  

                          //通过 response 获得输出流
   OutputStream out = response.getOutputStream();
  // 向ie发送数据
   out.write("hello".getBytes());
  // tomcat 会在请求结束时,检查response的流是否关闭 如没关会帮我们关闭
  // getWriter 和 getOutputStream 不能同时调用
  // PrintWriter writer = response.getWriter();
  // writer.write("hello");

 // response 实现请求重定向
  // 发送 302 状态码  +  location头
  // response.setStatus(302);
  // response.setHeader("location","/day06/index.jsp");
  // response 对请求重定向进行了功能的封装

  response.sendRedirect("/day06/index.jsp");// 相当于 302 + location

解决response输出中文乱码问题

                  // 指定response的编码
  //response.setCharacterEncoding("utf-8");
  // 通知浏览器用什么码表来解码
  //response.setHeader("content-type", "text/html;charset=utf-8");
  response.setContentType("text/html;charset=utf-8");// 解决response输出中文乱码问题 最终方案
  PrintWriter writer = response.getWriter();
  writer.write("中国");

 解决request中文乱码问题(在doGet方法下)
  // 设置request编码
  request.setCharacterEncoding("utf-8");
  String username = request.getParameter("username");
  System.out.println("username=" + username);
  byte[] bytes = username.getBytes("iso-8859-1");
  username = new String(bytes, "utf-8");
  System.out.println("username=" + username);

解决request中文乱码问题(在doPost方法下)
  // 设置request编码
  request.setCharacterEncoding("utf-8");// 只对post方式下提交的参数有效
  String username = request.getParameter("username");
  System.out.println("username=" + username);

文件下载
  response.setContentType("text/html;charset=utf-8");// 设置消息体的编码
  // 通过 http 协议  发送的http响应消息头  不能出现中文  中文必须要经过url编码
  String filename = URLEncoder.encode("美女.jpg", "utf-8");
  // 通知浏览器以下载的方式读取资源
  response.setHeader("content-disposition", "attachment;filename="+filename);
  // 读取图片数据  发给ie浏览器
  String webPath = "/download/美女.jpg";// 相当于当前web应用的path
  ServletContext servletContext = super.getServletContext();
  InputStream in = servletContext.getResourceAsStream(webPath);
  OutputStream out = response.getOutputStream();
  int len;
  byte[] buffer = new byte[1024];
  while((len=in.read(buffer))!=-1)
  out.write(buffer, 0, len);
 url 编码
  * url地址中不允许出现中文,需要传输要进行url编码
  * 规则  将字符进行编码 编码成字节  将每个字节都转为16进制,前面加%

                String str = "中国";
 
  String result = URLEncoder.encode(str, "utf-8");
 
  System.out.println(result);
 
  byte[] bytes = str.getBytes("utf-8");
 
  for(byte b : bytes)
  System.out.println(b);

防盗链


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值