Javaweb学习笔记(九)

简介: 本文主要介绍了response对象,包括如何用字节流和字符流响应消息,如何响应图片,相关配置和请求定向等。

前言

本文主要介绍内容:

  1. l Response对象和状态码的简单介绍
  2. l 字节流和字符流响应消息
  3. l 响应图片以及设置刷新时间,缓存时间
  4. l 请求重定向
  5. l 文件下载

项目环境

开发IDE:IDEA2022(已经配置好了tomcat10 及maven)

JDK版本:jdk17


一、响应对象和状态码的简单介绍

响应对象是主要负责给客户端发送响应结果的对象。主要是Tomcat通过实现HttpServletResponse接口和servletResponse接口来产生响应对象,并传递到doget和dopost方法中。

状态码简单介绍:

image.png

 

二、字节流和字符流响应消息

2.1字节流响应消息

image.png

字节流响应对象主要涉及以上的方法,具体实例如下所示:

 image.png

其中我们通过ServletOuputStream对象,向客户端输出内容,而setcontentType方法可以让浏览器以我们指定的格式来解析文本。从而减少中文乱码问题。

项目运行如下:

 

image.png

 

2.2字符流响应消息

除了用字节流之外,我们还可以通过字符流来向客户端输出内容。字符流相比字节流,受约束比较大,只能写出一些字符类消息。而字节流则可以输出更多的内容。同时也可以通过setcontentType方法可以让浏览器以我们指定的格式来解析文本。从而减少中文乱码问题。同时由于流对象是又tomcat容器创建的,所以我们不需要关闭流对象。

image.png

具体实例如下:

image.png

结果如下:

 

image.png

 

 

三、响应图片以及设置刷新时间,缓存时间

image.png

3.1响应图片

具体实例如下:

image.png

结果如下:

image.png

注意事项:由于项目是部署到tomcat上的,所以new FileInputStream()方法里面不能直接填写当前项目下的图片地址,需要通过文件的相对地址获取到图片部署到tomcat的绝对地址来创建输入流。

3.2设置刷新时间

image.png

3.3设置刷新时间

image.png

结果如下:

image.png

我们通过重新输入网址,查看是否有缓存,可以看到已接受栏显示的是(来自缓存字样)。注意:按了刷新按钮,浏览器会重新向服务器端请求资源,不会用缓存的文件。

image.png

也可以通过IE浏览器访问,然后通过右击右上角“设置”按钮,选择“Internet选项”,再点解“设置”按钮,再进入到网站数据设置,点击右下角的查看文件,找到我们输入网址对应的文件,对比过期时间和上次访问时间,可以看到是相差一个小时,可见缓存时间设置成功了。

image.png

image.png

image.png





3.4定时刷新

image.png

实例如下:

image.png

结果如下:

image.png

5秒后跳转页面如下:

image.png

四、请求重定向

image.png

具体实例如下:

image.png

image.png

结果如下:

image.png

由此可以看出,数据是不能共享的。

image.png 

通过开发者工具也可以看出是重定向的。

 

五、文件下载

image.png

文件下载操作实现步骤如上图所示,实例如下图所示:

image.png

结果如下:

image.png

 

 

 

相关文章
|
1月前
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
48 0
|
3月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
492 37
|
2月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
38 2
|
2月前
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
76 5
|
3月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
|
3月前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)
从Java环境的搭建到实际代码的编写,从基本用法的讲解到底层原理的剖析,深度解析Java基础知识。本文是《Java学习路线》专栏的起始文章,旨在提供一套完整的Java学习路线,覆盖Java基础知识、数据库、SSM/SpringBoot等框架、Redis/MQ等中间件、设计模式、架构设计、性能调优、源码解读、核心面试题等全面的知识点,并在未来不断更新和完善,帮助Java从业者在更短的时间内成长为高级开发。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)
|
3月前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
本文是Java基础的进阶篇,对异常、集合、泛型、Java8新特性、I/O流等知识进行深入浅出的介绍,并附有对应的代码示例,重要的地方带有对性能、底层原理、源码的剖析。适合Java初学者。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
|
3月前
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
129 2
|
2月前
|
Java 数据安全/隐私保护
java学习笔记(基础习题)
java学习笔记(基础习题)
44 0
|
2月前
|
Java 程序员 开发工具
java学习笔记
java学习笔记
47 0