HttpServletResponse接口

HttpServletResponse接口

介绍

  • HttpServletResponse接口来自于servlet规范中,在tomcat中存在于servlet.api.jar中
  • HttpServletResponse接口的实现类由http服务器负责提供
  • HttpServletResponse接口负责将doget或者dopost方法的执行结果写入到响应体中交给浏览器
  • 开发人员习惯于将HttpServletResponse接口修饰的对象称为【响应对象】response

主要功能

1.将执行结果以二进制形式写入到【响应体】中

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String result = "hello servlet";//执行结果
    //-----------响应对象将结果写入到响应体----------
    //1.通过响应对象response向tomcat索要输出流 getwriter()
    PrintWriter out = response.getWriter();
    //2.通过输出流out,将执行结果result以二进制形式写入到响应体中
    out.write(result);
    //-----------响应对象将结果写入到响应体----------
}//doget执行完毕
//tomcat将响应包推送给浏览器
执行结果为数字时出现的问题

out.writer方法可以将【字符】【字符串】【ASCII码】写入到响应体中

【ASCII码】:a -----97

​ 2-------50

out.writer接收到的是一个数字时,会把数字当作ASKII码来处理

解决方法:在实际开发过程中,通过out.print()方法将真实数据写入到响应体中

执行结果中同时包含文字信息和html命令时出现的问题

String result ="java</br>mysql</br>html</br>"

浏览器会将html命令br作为文字信息展示出来

原因:浏览器在接收到响应包之后,根据【响应头中的content-type】属性的值,来采用对应【编译器】对【响应体中的二进制内容】进行编译处理。

默认情况下,content-type属性的值为 text content-type = text,此时浏览器将会采用【文本编译器】对响应体中的内容进行解析

解决方法:一定要在得到输出流之前,通过响应对象对响应头中的content-type属性进行一次重新赋值,让浏览器采用正确的编译器进行编译。

response.setContentType("text/html");

2.设置响应头中【content-type】属性值

要在得到输出流之前设置

从而控制浏览器使用对应编译器将响应体二进制数据编译为【文字,图片,视频,命令等】

response.setContentType("text/html;charset=utf-8");

修改编译器以及字符集charset

3.设置响应头中【location】属性

将一个请求地址赋值给location,从而控制浏览器向指定服务器发送请求

浏览器接收到响应包之后,如果发现响应头中存在location属性,自动通过地址栏向location指定的网站发送请求。

response.sendRedirect()方法远程控制浏览器请求行为【请求地址,请求方式,请求参数】

String website = "http://www.baidu.com";
response.sendRedirect(website);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值