【JavaEE】Servlet API 详解(HttpServletResponse类方法演示、实现自动刷新、实现自动重定向)

一、HttpServletResponse

HttpServletResponse表示一个HTTP响应

Servlet 中的 doXXX 方法的目的就是根据请求计算得到相应, 然后把响应的数据设置到 HttpServletResponse 对象中

然后 Tomcat 就会把这个 HttpServletResponse 对象按照 HTTP 协议的格式, 转成一个字符串, 并通过 Socket 写回给浏览器

1.1 HttpServletResponse核心方法

1.2 方法演示

java 复制代码
@WebServlet("/status")
public class StatusServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setStatus(404);
        resp.setContentType("text/heml;charset=utf-8");
        resp.getWriter().write("返回404");
    }
}

使用Fiddler抓包得到的响应:

xml 复制代码
HTTP/1.1 404
Content-Type: text/heml;charset=utf-8
Content-Length: 9
Date: Wed, 15 Nov 2023 06:36:28 GMT

返回404

1.3 通过header实现自动刷新

HTTP响应中设置Refresh:时间

java 复制代码
@WebServlet("/refresh")
public class RefreshServlet extends HelloServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 每隔 1s 自动刷新一次.
        resp.setHeader("Refresh", "1");
        resp.getWriter().write("time=" + System.currentTimeMillis());
    }
}

响应:

xml 复制代码
HTTP/1.1 200
Refresh: 1
Content-Length: 18
Date: Wed, 15 Nov 2023 06:46:09 GMT

time=1700030769011

1.4 通过header实现自动重定向

java 复制代码
@WebServlet("/redirect")
public class RedirectServlet extends HelloServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 用户访问这个路径的时候, 自动重定向到 搜狗主页 .
        resp.sendRedirect("https://www.sogou.com");
    }
}
xml 复制代码
HTTP/1.1 302
Location: https://www.sogou.com
Content-Length: 0
Date: Wed, 15 Nov 2023 06:54:19 GMT
相关推荐
Element_南笙1 小时前
BUG:ModuleNotFoundError: No module named ‘milvus_lite‘
java·服务器·数据库
yyy(十一月限定版)1 小时前
C++基础
java·开发语言·c++
Coder_Boy_2 小时前
分布式系统设计经验总结:金融vs电商的核心差异与决策思路
java·运维·微服务·金融·电商
To Be Clean Coder2 小时前
【Spring源码】getBean源码实战(一)
java·后端·spring
派大鑫wink2 小时前
【Day21】NIO入门:通道、缓冲区与非阻塞IO基础
java·开发语言
ziyue75752 小时前
idea将配置移动到自定义位置
java·intellij-idea·idea·软件
南汐以墨2 小时前
UI自动化测试指南(一):浅解概念
java·测试工具
不能只会打代码2 小时前
力扣--1970. 你能穿过矩阵的最后一天(Java)
java·算法·leetcode·二分查找·力扣·bfs·最后可行时间
少年执笔2 小时前
android新版TTS无法进行语音播报
android·java
咸鱼2.02 小时前
【java入门到放弃】数据结构
java·开发语言·数据结构