day05-request response

Response:

解决response中文乱码问题的几种方式:
1. 向浏览器发送http头,指定编码为utf-8,并将要输出的字符串转成utf-8格式输出。代码如下:
     response.setHeader("content-type", "text/html;charset=utf-8");
     String s =   "中国" ;
     response.getOutputStream().write(s.getBytes( "utf-8" ));
2. 通过写入html<meta>标签来通知浏览器以utf-8编码打开,并将要输出的字符串转成utf-8格式输出。代码如下:
     response.getOutputStream().write( "<meta http-equiv='content-type' content='text/html;charset=UTF-               8'>" .getBytes());
     String s =   "中国" ;
     response.getOutputStream().write(s.getBytes( "UTF-8" ));
3.通过如下代码设置:
     response.setCharacterEncoding("utf-8");//设置将要发给浏览器的response编码类型(MIME charset)。
     response.setContentType("text/html;charset=utf-8");//设置发送给浏览器的上下文编码类型。这个方法必须在getWriter()方法被调用前使用。可以单独使用本句,而不用上一句。

Response实现文件下载(中文文件名)
1.设置response的上下文编码类型
     response.setContentType("text/html;charset=UTF-8");
2.获取输入流,并判断文件是否存在。文件不存在在页面打印提示信息,注意提示信息的编码。
3.用URLEncoder对文件进行编码(会将空格字符 " " 转换为一个加号 " +"),然后再将"+"用表示空格的"%20"替换回来。
4.发送表示下载的消息头,其中包括文件名response.setHeader("content-disposition", "attachment;filename=" + filename);
5.其余内容相当于普通文件复制过程。


Response实现请求重定向
方法1:
设置返回头的状态码为302并在返回头中给出地址:
     response.setStatus(302);
     response.setHeader( "location" "/myday05/index.jsp" );
方法2:
直接使用response的重定向方法:
     response.sendRedirect("/myday05/index.jsp");

Request:
请求头getHeader:获取http消息头的信息。
请求参数获得getParameter:获取get方法带过来的参数。

解决Request中的乱码问题:
post方法的乱码可以通过:request.setCharacterEncoding("UTF-8");来解决
get方法则必须通过先将String按ISO8859-1转成字节数组,然后再将该字节数组按UTF-8构造String:
代码如下:new String(s.getBytes("iso8859-1"),"utf-8")

注意:超链接后带中文数据的乱码问题

Request的请求转发的特点:
1.请求转发对浏览器而言只发了一次请求,并且浏览器的地址栏不会发生变化
2.请求转发下,服务器只会创建一个request response

* 请求转发应用场景mvc设计模式
* 在mvc设计模式下,都是servlet处理请求,处理请求产生数据后,servlet会把数据存储request域,然后转发给jsp显示

注意:在请求转发前由response输出的信息会被冲掉,在请求转发后 由response输出的信息会会被清空。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值