response

作者: 开心的小哈 | 来源:发表于2022-07-05 14:58 被阅读0次

功能:设置响应消息

  1. 设置响应行1.格式HTTP/1.1 200 ok,设置状态码:setStatus(int sc)
  2. 设置响应头:setHeader(String name,String value)
  3. 设置响应体:获取流输出流,
    1. 字符输出流getWriter(),2.字节输出流getOutputStream()
    2. 使用输出流,将数据输出到客户端

案例:

  1. 完成重定向:资源跳转的方式
    1. 代码实现
      //设置状态码
      // resp.setStatus(302);
      // resp.setHeader("location","/loginDemo/failServlet");

      // 简单的重定向方法
      resp.sendRedirect("/loginDemo/failServlet");
      转发forward的特点:

      1. 地址栏路径不变;
      2. 转发之恩呢访问当前服务器下的资源;
      3. 转发是一次请求,可以使用request对象来共享数据
        重定向Redirect特点:
      4. 地址栏发生变化;
      5. 重定向可以访问其他站点(服务器)的资源;
      6. 重定向是两次请求;不能使用request对象来共享数据;
        路径的写法:
      7. 路径分类
        1. 相对路径:通过相对路径不可以确定唯一资源;./index.html不以/开头以.开头
          规则:找到访问当前资源和目标资源之间的相对位置关系;./代表当前目录,../后退一级目录;
        2. 绝对路径:通过绝对路径可以确定唯一资源;以/开头的路径
          如:localhost/loginDemo/failServlet
          规则:判断定义的路径是给谁用的?判断请求将来从哪儿发出;
          • 给客户端浏览器使用:需要加虚拟目录(项目的访问路径)如重定向;
          • 给服务器使用:不需要加虚拟目录;如转发
            r如果服务器的虚拟路径变化,则需要一个一个修改代码,可以采取动态获取虚拟目录,getContextPath可以有效避免;
  2. 服务器输出字符数据到浏览器
    1. 步骤:获取字符输出流,输出数据;
    2. 注意乱码问题: //告诉浏览器应该使用什么进行解码,同时设置流编码
      resp.setHeader("Content-type", "text/html;charset=UTF-8");
      //简单的形式来设置编码
      resp.setContentType("text/html;charset=UTF-8");
      //设置流编码
      // resp.setCharacterEncoding("UTF-8");
  3. 服务器输出字节数据到浏览器
    // 1获取字节输出流
    ServletOutputStream outputStream = resp.getOutputStream();
    //输出数据
    outputStream.write("holle你好".getBytes(StandardCharsets.UTF_8));
    // resp.setCharacterEncoding("UTF-8");
  4. 验证码

相关文章

网友评论

      本文标题:response

      本文链接:https://www.haomeiwen.com/subject/abybjrtx.html