05.HttpServletResponse

2023-12-28 13:38
文章标签 05 httpservletresponse

本文主要是介绍05.HttpServletResponse,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

HttpServletResponse

这里写图片描述

ServletResponse

辅助Servlet将响应发送到客户端的对象。由servlet容器创建ServletResponse对象,并将它作为参数传递给servlet的service方法。

常用方法:

  • void serCharacterEncoding(String s):设置将发送到客户端的响应的字符编码。

  • void setContentType(String s):设置将发送到客户端的响应的内容类型。给定内容类型可能包含字符编码,例如:”text/html;charset=UTF-8”。

  • void setContentLength(int len):设置响应内容的正文的长度。

  • ServletOutputStream getOutputStream():返回适用于二进制数据的响应流。

  • PrintWriter getWriter():返回适用于文本数据的响应流。

HttpServletResponse

常用常量:

  • SC_CONTINUE 状态码(100):指示客户端可以继续

  • SC_OK 状态码(200):指示请求正常成功

  • SC_SEE_OTHER 状态码(303):指示可在另一个URI之下找到该请求的响应

  • SC_NOT_FOUND 状态码(404):请求的资源不可用

  • SC_INTERNAL_SERVER_ERROR 状态码(500):指示HTTP服务器内存在错误使服务器无法完成请求。

新增常用方法介绍:

  • void addCookie(Cookie cooike):将指定的cookie添加到响应(可加多个)。

  • void addHeader(String name, String value):用给定名称和值添加响应头。此方法允许响应头有多个值。

  • String encodeURL(String URL):通过将回话ID包含在指定的URL中并对该URL进行编码。如果不需要编码,则返回原来的URL。

  • String encodeRedirectURL(String URL):对指定URL进行编码,以便在sendRedirect方法中使用它。如果不需要编码,则返回原来的URL(可判断是否需要将ID加入URL)。

  • void sendError(int i, String s):使用指定状态将错误响应发送到客户端。

  • void sendError(int i):使用指定状态代码并清除缓冲区将错误响应发送到客户端。

  • void setStatus(int i):设置此响应的状态码。用于设置没有错误时的返回状态码(例如状态代码SC_OK或者SC_MOVED_TEMPORARILY)

  • void sendRedirect(String s):使用指定重定向位置URL将临时重定向响应发送到客户端。(例如:client向Servlet1发送一个请求,Servlet1并不能完成请求,但是把能处理请求的Servlet2的URL发送个client,则客户端向Servlet2发送请求,Servlet2处理请求)。

代码示例

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><a href="servlet1">sendRedirect()(重定向)测试</a><br/>
</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"><display-name>ResponseDemo</display-name><welcome-file-list><welcome-file>index.html</welcome-file></welcome-file-list><servlet><servlet-name>s1</servlet-name><servlet-class>com.li.servlet.response.Servlet1</servlet-class></servlet><servlet-mapping><servlet-name>s1</servlet-name><url-pattern>/servlet1</url-pattern></servlet-mapping><servlet><servlet-name>s2</servlet-name><servlet-class>com.li.servlet.response.Servlet2</servlet-class></servlet><servlet-mapping><servlet-name>s2</servlet-name><url-pattern>/servlet2</url-pattern></servlet-mapping></web-app>

Servlet1.java

package com.li.servlet.response;import java.io.IOException;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class Servlet1 extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("Servlet1 doGet");/*重定向给服务s2*/resp.sendRedirect("servlet2");}
}

Servlet2.java

package com.li.servlet.response;import java.io.IOException;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class Servlet2 extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=UTF-8");resp.getWriter().write("Servlet2");System.out.println("Servlet2 doGet");}
}

这篇关于05.HttpServletResponse的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/546123

相关文章

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

C++入门(05-2)从命令行执行C++编译器_GCC

文章目录 GCC编译器1. 下载MinGW-w64,安装(不推荐)2. 使用MSYS2安装MinGW-w64(推荐)2.1 安装MSYS22.2 初始化和更新2.3 安装MinGW-w64编译器2.3 在MSYS2 Shell中导航到代码目录2.4 使用 g++ 编译2.5 运行可执行文件 GCC编译器 GCC(GNU Compiler Collection)是一个开源编译器集

C++入门(05)从命令行执行C++编译器_MSVC

文章目录 1.C++ 编译器2. 常用 C++ 编译器MSVC(Microsoft Visual C++)GCC(GNU Compiler Collection)Clang 3. MSVC 编译器3.1 开发者命令提示符3.2 编译 C++ 代码 1.C++ 编译器 将C++源代码(扩展名为 .cpp )转换成计算机可以运行的可执行程序 编译器会检查代码的语法和语义,生成相应

龙芯+FreeRTOS+LVGL实战笔记(新)——05部署主按钮

本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了改进和优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以前往本人在B站的视频合集(图2所示)观看所有演示视频,合集首个视频链接为: 借助RT-Thread和LVGL

【SpringMVC学习05】SpringMVC中的异常处理器

SpringMVC在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。 异常处理思路 我们知道,系统中异常包括两类:预期异常和运行时异常(RuntimeException),前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。系统的dao、service、controller出现异常都通过throws E

学习硬件测试05:NTC(ADC)+正弦波(DAC)+DMA(ADC+DAC)(P73、P76、P78)

文章以下内容全部为硬件相关知识,鲜有软件知识,并且记的是自己需要的部分,大家可能看不明白。 一、NTC(ADC) 1.1实验现象 本实验用 NTC 采集温度,数码管实时显示温度数据(整数),左下角 USB 小串口每隔 1S 打印温度信息。 1.2硬件电路 NTC 电阻是一个模拟温度传感器,随着温度的升高,电阻值逐渐减小。电路简单介绍如下: 电源滤波电容在 25℃ 室温下 NTC 电

python+selenium2学习笔记unittest-05测试用例实例

看一下非常简单的目录结构 test_baidu from selenium import webdriverimport unittestimport timeclass MyTest(unittest.TestCase):def setUp(self):self.driver = webdriver.Firefox()self.driver.maximize_window()self

【DL--05】深度学习基本概念—函数式模型

函数式模型 函数式模型算是本文档比较原创的词汇了,所以这里要说一下 在Keras 0.x中,模型其实有两种,一种叫Sequential,称为序贯模型,也就是单输入单输出,一条路通到底,层与层之间只有相邻关系,跨层连接统统没有。这种模型编译速度快,操作上也比较简单。第二种模型称为Graph,即图模型,这个模型支持多输入多输出,层与层之间想怎么连怎么连,但是编译速度慢。可以看到,Sequentia

【ML--05】第五课 如何做特征工程和特征选择

一、如何做特征工程? 1.排序特征:基于7W原始数据,对数值特征排序,得到1045维排序特征 2. 离散特征:将排序特征区间化(等值区间化、等量区间化),比如采用等量区间化为1-10,得到1045维离散特征 3. 计数特征:统计每一行中,离散特征1-10的个数,得到10维计数特征 4. 类别特征编码:将93维类别特征用one-hot编码 5. 交叉特征:特征之间两两融合,x+y、x-y、

F12抓包05:Network接口测试(抓包篡改请求)

课程大纲         使用线上接口测试网站演示操作,浏览器F12检查工具如何进行简单的接口测试:抓包、复制请求、篡改数据、发送新请求。         测试地址:https://httpbin.org/forms/post ① 抓包:鼠标右键打开“检查”工具(F12),tab导航选择“网络”(Network),输入前3项点击提交,可看到录制的请求和返回数据。