Response功能介绍和Response重定向代码实现和重定向特点

Response对象

  • 功能:设置响应消息

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

    • 完成重定向
      • 重定向:资源跳转的方式
package com.ailyt.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/rs1")
public class ResponseStudy01 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("r1.............");

/*        //访问/r1  会自动跳转到/r2资源
        //设置状态码为302
        resp.setStatus(302);

        //设置响应头location
        resp.setHeader("location","/r2");*/

        //简单的重定向方式
        resp.sendRedirect("/r2");

    }
}

package com.ailyt.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/rs2")
public class ResponseStudy02 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("r2.............");
    }
}

  • 重定向特点:

    • 地址栏发生变化
    • 重定向可以访问其他站点的资源
    • 重定向是两次请求,不能使用request对象来共享数据
  • 转发的特点:

    • 转发地址栏路径不变
    • 转发只能访问当前服务器下的资源
    • 转发是一次请求,可以使用request对象来共享数据
  • 路径写法:

posted @ 2022-08-10 10:49  我滴妈老弟  阅读(114)  评论(0编辑  收藏  举报