栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

response对象

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

response对象

response概念

在HttpServlet中无论是doGet,doPost的会有这样一个对象他的功能呢就是来发生响应消息

response的基础操作 1.设置响应行 2.设置响应头
  1. 格式:HTTP/1.1 200 ok
  2. 设置状态码:setStatus(int sc)
        //1. 设置状态码为302
        response.setStatus(302);
        //2.设置响应头location
        response.setHeader("location","/Servlet_war_exploded/rpdemo02");
        //告诉浏览器,服务器发生的数据编码,建议浏览器使用该编码解析
        response.setHeader("content-type","text/html;charset=utf-8");
        //简单形式,设置编码
        response.setContentType("text/html;charset=utf-8");
3.设置响应体
  • 使用步骤:
    1. 获取输出流

      • 字符输出流:PrintWriter getWriter()

      • 字节输出流:ServletOutputStream getOutputStream()

    2. 使用输出流,将数据输出到客户端浏览器

这是我们简单的字符输出流实验

@WebServlet(name = "Demo03", value = "/rpdemo03")
public class Demo03 extends HttpServlet {
  @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      //获取流之前,设置流的编码(默认ISO-8859-12)设置为GBK
      //response.setCharacterEncoding("utf-8");
      //告诉浏览器,服务器发生的数据编码,建议浏览器使用该编码解析
      response.setHeader("content-type","text/html;charset=utf-8");
      //简单形式,设置编码
      response.setContentType("text/html;charset=utf-8");
      //获取字符输出流
      PrintWriter pw = response.getWriter();
      //输出数据
      pw.write("hello response");
      pw.write("你好 response");
  }

  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  }
}

下面我们来简单的使用response进行字节输出实验

@WebServlet(name = "Demo04", value = "/rpdemo04")
public class Demo04 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //告诉浏览器
        response.setContentType("text/html;charset=utf-8");
        //获取字节输出流
        ServletOutputStream sos = response.getOutputStream();
        //输出数据
        sos.write("你好".getBytes("utf-8"));
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

还有一种响应体用法,可以利用他进行重定向

//动态获取虚拟目录
String contextPath = request.getContextPath();
//简单的重定向方法
response.sendRedirect(contextPath+"/responseDemo2");

这个为Demo02文件

@WebServlet(name = "Demo02", value = "/rpdemo02")
public class Demo02 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("Demo2...");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}
  • 重定向的特点:redirect
    1. 地址栏发生变化
      2. 重定向可以访问其他站点(服务器)的资源
      3. 重定向是两次请求。不能使用request对象来共享数据
      4. 需要加虚拟目录,建议虚拟目录自动获取
  • 转发的特点:forward
    1. 转发地址栏路径不变
      2. 转发只能访问当前服务器下的资源
      3. 转发是一次请求,可以使用request对象来共享数据
      4. 不需要加虚拟目录
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/584955.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号