【Java】HttpServletResponse类方法简介

1、引言

HttpServlet中有HttpServletRequest类、HttpServletResponse类

✅其中HttpServletRequest类主要是get方法

【HttpServletRequest类中的简单方法】

✅HttpServletResponse类中便主要是set方法

2、方法

重用的方法如下🌱

|---------------|--------------------------|
| 方法 | 描述 |
| setStatus | 为响应设置状态码 |
| setHeaders | 设置header,如果name相同,则覆盖旧值 |
| addHeaders | 设置header,就算name相同,也不覆盖旧值 |
| setContetType | 设置响应内容类型 |
| sendRedirect | 使用指定的重定向位置URL发送临时重定向响应 |

3、设置响应状态码

设置为200

java 复制代码
@WebServlet("/Status")
public class StatusServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setStatus(200);
    }
}

设置为404

java 复制代码
@WebServlet("/Status")
public class StatusServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setStatus(404);
    }
}

很明显,只是设置状态码为404的话,未找到状态的页面并不显示😯

因此我们需要使用setError

java 复制代码
@WebServlet("/Status")
public class StatusServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.sendError(404,"错误页面");
    }
}

4、setHeader

利用setHeader方法进行刷新

java 复制代码
@WebServlet("/refresh")
public class RefreshServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setHeader("refresh","1");
        resp.getWriter().write("" + System.currentTimeMillis());
    }
}

打开浏览器,得到下面效果

5、重定向

利用状态码302和setHeader,直接重定向到电子科技大学官网

java 复制代码
@WebServlet("/redirect")
public class redirect extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setStatus(302);
        resp.setHeader("Location","https://www.uestc.edu.cn");
    }
}
相关推荐
Le1Yu1 分钟前
消息队列以及RabbitMQ的使用
java·开发语言
羚羊角uou12 分钟前
【Linux】线程池
java·开发语言
阿拉-M8319 分钟前
IntelliJ IDEA Windows 系统高频快捷键使用手册
java·windows·intellij-idea
Fcy64834 分钟前
C++ vector容器的解析和使用
开发语言·c++·vector
lingggggaaaa36 分钟前
小迪安全v2023学习笔记(一百三十四讲)—— Windows权限提升篇&数据库篇&MySQL&MSSQL&Oracle&自动化项目
java·数据库·windows·笔记·学习·安全·网络安全
无限进步_44 分钟前
C语言文件操作全面解析:从基础概念到高级应用
c语言·开发语言·c++·后端·visual studio
_OP_CHEN1 小时前
C++基础:(十五)queue的深度解析和模拟实现
开发语言·c++·stl·bfs·queue·容器适配器·queue模拟实现
起床气2331 小时前
C++海战棋开发日记(序)
开发语言·c++
迦蓝叶1 小时前
JAiRouter v1.0.0 正式发布:企业级 AI 服务网关的开源解决方案
java·运维·人工智能·网关·spring·ai·开源