Response设置响应数据功能介绍及重定向

简介: Response设置响应数据功能介绍及重定向

一、Response设置响应数据功能介绍

响应数据分为3部分:


1、响应行:HTTP/1.1 200 OK


void set Status(int sc):设置响应状态码


2、响应头:Content-Type:text/html


void setHeater(String name,String value):设置响应头键值对


3、响应体:<html><head></head><body></body></html>


PrintWriter getWriter():获取字符输出流

ServletOutputStream getOutputStream():获取字节输出流

二、Response完成重定向

重定向(Redirect):一种资源跳转方式

e2532b5554d94778b58b2ff317a42c1e.png

实现方式:

resp.setStatus(302);
resp.setHeader("location","资源B的路径");


代码示例:


ResponseDemo1重定向到ResponseDemo2:

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet("/resp1")
public class ResponseDemo1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("demo1...");
        //重定向
        //1、设置响应状态码 302
        response.setStatus(302);
        //2、设置响应头 Location
        response.setHeader("Location","/Tomcate-demo2/resp2");
;
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

ResponseDemo2:

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("/resp2")
public class ResponseDemo2 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.doGet(request, response);
    }
}

运行结果:


访问resp1重定向到resp2的URL:

6d6a1239c5104d5c9178e8ff7bca9d4b.png

控制台:

9459ad437a45444eb4d0501b60871362.png

也可用简化方式完成重定向,内部资源和外部资源均可的一种方式:

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet("/resp1")
public class ResponseDemo1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("demo1...");
        //简化方式完成重定向,内部资源和外部资源均可
        //动态获取虚拟目录
        String contextPath = request.getContextPath();
        response.sendRedirect(contextPath + "/resp2");
//        response.sendRedirect("https://www.baidu.cn");
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

执行结果根上面相似,重定向外部资源的时候会跳转到相应的重定向网址。


重定向特点:


1、浏览器地址栏路径发生变化

2、可以重定向到任意位置的资源(服务器内部、外部均可)

3、两次请求,不能在多个资源使用request共享数据

三、路径问题

浏览器使用:需要假虚拟目录(项目访问路径)

服务端使用:不需要加虚拟目录


<a href = "路径"> 加虚拟目录
<form action = "路径"> 加虚拟目录
req.getRequestDispatcher("路径") 不加虚拟目录
resp.sedRedirect("路径") 加虚拟目
目录
相关文章
|
6月前
|
Java 数据安全/隐私保护
response对象的转发和重定向
response对象的转发和重定向
51 0
|
11月前
|
Java 应用服务中间件 容器
JSP页面请求响应过程中的编码解码
JSP页面请求响应过程中的编码解码
99 0
|
Web App开发 缓存 JavaScript
如何处理页面关闭时发送HTTP请求?
在实际项目开发中,可能会遇到这样的业务问题:如何在用户离开或关闭页面时发送HTTP请求给服务端?可能有人会觉得页面都关闭了,还需要发送什么请求,完全没必要噻。但如果真有这样的业务需求落到自己的头上,那么我们应该如何来实现呢?
2237 0
如何处理页面关闭时发送HTTP请求?
|
14天前
|
JSON JavaScript 中间件
POST 请求如何处理表单数据?
【10月更文挑战第24天】POST请求处理表单数据需要客户端和服务器端的协同工作,客户端负责将表单数据正确地编码并发送给服务器,服务器端则需要准确地接收、验证和处理数据,并向客户端返回合适的响应。
41 1
|
3月前
|
Java
Response对象页面重定向、时间的动态显示
该博客文章介绍了Response对象的用法,包括页面刷新和页面重定向的实现,通过示例代码展示了如何使用`setHeader`和`sendRedirect`方法进行操作。
|
5月前
|
前端开发
Request(获取请求数据的)请求转发,response响应数据,将数据反馈给前端
Request(获取请求数据的)请求转发,response响应数据,将数据反馈给前端
|
存储 前端开发 JavaScript
HTTP进阶,Cookie,响应的回报结果含义,ajax,form表单,不同状态码代表的结果
HTTP进阶,Cookie,响应的回报结果含义,ajax,form表单,不同状态码代表的结果
HTTP进阶,Cookie,响应的回报结果含义,ajax,form表单,不同状态码代表的结果
|
Web App开发 网络协议 安全
GET和POST方式请求API接口数据返回
GET和POST方式请求API接口数据返回
172 0
|
缓存
HttpServletResponse概述、常见状态码、发送状态码的方法、设置缓存时间及文件下载
HttpServletResponse概述、常见状态码、发送状态码的方法、设置缓存时间及文件下载
285 0
|
JSON 网络安全 API
如何修复 WordPress 中的“响应不是有效的 JSON 响应”消息
WordPress定制开发过程中 出现响应无效的 JSON尝尝令开发工程师很苦恼,其实大多数常见的 WordPress 错误都是由相同的问题和错误配置引起的,因此相对容易排除故障。下面北京六翼开源建站的开发工程师给大家讲一下,WordPress 定制开发遇到响应无效的 JSON该怎么办?
如何修复 WordPress 中的“响应不是有效的 JSON 响应”消息