当前位置: 首页 > news >正文

freemarker 读取template.xml ,通过response 输出文件,解决中文乱码问题

采用

try (Writer writer = new OutputStreamWriter(os, “UTF-8”))

UTF-8 内容转换
public static void setResponseHeader(HttpServletResponse response, String fileName) {try {// fileName = "中文.xls";try {fileName = new String(fileName.getBytes(),"ISO8859-1");} catch (UnsupportedEncodingException e) {e.printStackTrace();}response.setContentType("application/octet-stream;charset=UTF-8");//response.setCharacterEncoding("UTF-8");response.setHeader("Content-Disposition", "attachment;filename="+ fileName);//response.addHeader("Pargam", "no-cache");response.addHeader("Cache-Control", "no-cache");} catch (Exception ex) {ex.printStackTrace();}}
}public void xml2XmlOutFromResources(HttpServletResponse response, Map<String, Object> dataMap, String templetFile, String fileName) throws IOException, TemplateException {//设置响应头ExportExcel.setResponseHeader(response, fileName);Configuration configuration = new Configuration(Configuration.VERSION_2_3_28);configuration.setDefaultEncoding("UTF-8");configuration.setClassLoaderForTemplateLoading(this.getClass().getClassLoader(), "");Template template = null;try {template = configuration.getTemplate("templates/exportTemplate.xml","UTF-8");} catch (Exception e) {e.printStackTrace();}//模板和数据模型合并生成文件OutputStream os = null;try {os = response.getOutputStream();try (Writer writer = new OutputStreamWriter(os, "UTF-8")) {template.process(dataMap, writer);}} catch (Exception ex) {} finally {try {if (os != null) {os.close();}} catch (IOException e) {e.printStackTrace();}}}

相关文章:

freemarker 读取template.xml ,通过response 输出文件,解决中文乱码问题

采用 try (Writer writer new OutputStreamWriter(os, “UTF-8”)) UTF-8 内容转换 public static void setResponseHeader(HttpServletResponse response, String fileName) {try {// fileName "中文.xls";try {fileName new String(fileName.getBytes(),"…...

arkUI:水果选择与管理:基于 ArkUI 的长按编辑功能实现

水果选择与管理&#xff1a;基于 ArkUI 的长按编辑功能实现 1 主要内容说明2 相关内容2.1 相关内容2.1.1 源码1内容的相关说明2.1.1.1 数据结构与状态管理2.1.1.2 添加水果功能2.1.1.3 水果列表展示2.1.1.4 长按进入编辑模式2.1.1.5 复选框的多选功能2.1.1.6 删除水果功能2.1.1…...

docker使用,docker图形化界面+docker详细命令

DockerUI进入 docker container run --rm --name docker.ui -v /var/run/docker.sock:/var/run/docker.sock -p 8999:8999 joinsunsoft/docker.ui访问8999端口就行&#xff0c;就可以图形化管理Docker了 常规使用 搭建 sudo docker-compose build #有一些需要这条命令 su…...

idea项目运行时 java: 错误: 不支持发行版本 21

java项目运行时&#xff0c;同样的项目别的都是正常运行&#xff0c;单个这个项目一直报 java: 错误: 不支持发行版本 21&#xff0c; 报错的解释 这个错误表明你正在尝试使用Java编译器编译一个类&#xff0c;但是编译器遇到了一个它不支持的版本号&#xff0c;在这个上下文…...

hive alter table add columns 是否使用 cascade 的方案

结论 alter table xxx add columns 时加上 cascade 时&#xff0c;会把所有的分区都加上此字段。如果不加则只有新的分区会加上此字段&#xff0c;旧的分区没有此字段&#xff0c;即便数据文件里有对应的数据&#xff0c;也不能显示内容。 如果分区都是 insert overwrite 生成…...

手机怎么玩steam游戏?随时随地远程串流玩steam游戏教程

喜欢在steam上玩游戏的玩家有没有想过&#xff0c;其实这些游戏也能在手机上玩呢&#xff1f;不管是探索的开放世界游戏&#xff0c;还是紧张刺激的射击游戏&#xff0c;还是丰富剧情的视觉小说等等&#xff0c;这些游戏你都可以通过远程串流软件&#xff0c;来帮你实现在手机上…...

【使用antv g6实现拓扑图】

使用antv g6实现拓扑图 安装antv g6创建一个 div&#xff0c;并制定必须的属性 id定义初始化方法定义node节点数据将获取到的数据渲染进页面 安装antv g6 npm install antv/g6 --save import G6 from antv/g6;创建一个 div&#xff0c;并制定必须的属性 id 定义好展示id&…...

【数学 函数空间】拉普拉斯变换解微分方程步骤

拉普拉斯变换解微分方程 拉普拉斯变换解微分方程的一般步骤如下&#xff1a; 写出微分方程。对微分方程两边应用拉普拉斯正变换。求解变换后的代数方程&#xff0c;得到 Y ( s ) Y(s) Y(s)。如果需要&#xff0c;进行部分分式分解。对 Y ( s ) Y(s) Y(s)进行拉普拉斯逆变换&…...

vue3: toRef, reactive, toRefs, toRaw

vue3&#xff1a; toRef, reactive, toRefs, toRaw <template><div>{{ man }}</div><hr><!-- <div>{{ name }}--{{ age }}--{{ like }}</div> --><div><button click"change">修改</button></div&g…...

Unity读取Json

参考 Unity读取Json的几种方法_unity读取json文件-CSDN博客...

基于STM32的智能语音识别饮水机系统设计

功能描述 1、给饮水机设定称呼&#xff0c;喊出称呼&#xff0c;饮水机回答&#xff1a;我在 2、语音进行加热功能&#xff0c;说&#xff1a;请加热&#xff0c;加热片运行 3、饮水机水位检测&#xff0c;低于阈值播报“水量少&#xff0c;请换水” 4、检测饮水机水温&#xf…...

c++的几种构造函数

c的几种构造函数 构造函数拷贝构造函数转换构造函数移动构造函数 析构函数 构造函数 C中的构造函数可以分为5类&#xff1a;默认构造函数、普通构造函数、拷贝构造函数、转换构造函数、移动构造函数。 好像还有委托构造 默认构造和普通构造和java基本一样 详细 拷贝构造函…...

FRP 实现内网穿透

如何通过 FRP 实现内网穿透&#xff1a;群晖 NAS 的 Gitea 和 GitLab 访问配置指南 在自建服务的过程中&#xff0c;经常会遇到内网访问受限的问题。本文将介绍如何利用 FRP&#xff08;Fast Reverse Proxy&#xff09;来实现内网穿透&#xff0c;以便在外网访问群晖 NAS 上的…...

数据结构笔记(其八)--一般树的存储及其遍历

1.知识总览 一般的树会有多个孩子&#xff0c;所以存储结构也会与二叉树略有不同。 一般树的遍历。 2.双亲表示法 双亲表示法&#xff0c;也是父亲表示法&#xff0c;即每个节点中都存储了其父节点的地址信息。 特性&#xff1a;可以轻易地找到父节点&#xff0c;但寻找孩子节…...

在spring boot工程中使用Filter时,@WebFilter 注解不生效的问题分析和解决方案

1. 问题描述 首先编写一个Filter类并通过Component放入spring容器中&#xff0c;通过实现jakarta.servlet中提供的Filter接口完成过滤器的创建&#xff0c;代码如下。 import jakarta.servlet.*; import jakarta.servlet.annotation.WebFilter; import org.springframework.st…...

浅谈“通感一体”

文章目录 5G_Advanced的关键技术通感一体的介绍通感一体应用通感一体面临的挑战 5G_Advanced的关键技术 2024年6月18日16点30分&#xff0c;在上海举行的3GPP RAN第104次会议上&#xff0c;R18标准正式冻结&#xff0c;标志着5G技术的又一重要里程碑。值得注意的是&#xff0c…...

【Linux】监控系统Zabbix的安装与配置

文章目录 一、前期准备1、安装LAMP2、配置SELinux与防火墙3、测试Apache4、配置数据库5、创建zabbix数据库及应用 二、server端安装配置1、软件包安装2、配置数据库3、zabbix访问测试4、配置web界面 三、Agent端安装配置1、安装zabbix-agent2、配置3、启动zabbix-agent4、配置防…...

Springboot定时任务

Component EnableScheduling public class SpringBootTestJob {Scheduled(cron "0/5 * * * * ?")public void testScheduled(){System.out.println("SpringBootTestJob test");} }这段代码使用了 Spring Boot 自带的定时任务机制。解释如下&#xff1a; …...

node.js知识点总结

1、Node.js Node. js是一个基于 Chrome v8引擎的服务器端 JavaScript运行环境&#xff1b;Node. js是一个事件驱动、非阻塞式I/O的模型&#xff0c;轻量而又高效&#xff1b;Node. js的包管理器npm是全球最大的开源库生态系统。 2、数据处理中的buffer&#xff1a; 具体…...

Kotlin中泛型的协变

interface Shapeclass Circle : Shapefun main() {val shapes1: List<Shape> listOf<Circle>()val shapes2: MutableList<Shape> mutableListOf<Circle>() }如上代码&#xff0c;第一行赋值语句是OK的&#xff0c;第二行赋值语句在编辑器上直接就报错…...

抖音下载器技术解析:突破平台限制的高效内容获取方案

抖音下载器技术解析&#xff1a;突破平台限制的高效内容获取方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...

MySQL数据库基础聚合函数

聚合函数...

别让大模型只陪你聊天,用 RAG + Structured Extraction 终结合同盲区

音乐圈的版权大战从未停歇&#xff0c;从李荣浩早年关于“版权归属”的公开发声&#xff0c;到近期各路艺人与经纪公司的解约拉锯战&#xff0c;核心往往指向同一张纸——合同。 对于大多数人&#xff0c;无论是艺人、创作者还是创业者&#xff0c;合同是典型的“黑盒”。你签…...

002:RAG 入门-LangChain 读取文本

正文 异步/等待解决了什么问题&#xff1f; 在传统同步I/O操作中&#xff08;如文件读取或Web API调用&#xff09;&#xff0c;调用线程会被阻塞直到操作完成。这在UI应用中会导致界面冻结&#xff0c;在服务器应用中则造成线程资源的浪费。async/await通过非阻塞的异步操作解…...

JAVA面试-equals与==的本质区别

Java中 与 equals() 的区别是面试和日常开发的核心知识点&#xff0c;其核心差异在于比较的对象&#xff1a; 是比较引用地址或基本类型的值&#xff0c;而 equals() 是比较对象的内容&#xff0c;但其默认行为与重写密切相关 。 为了清晰地理解&#xff0c;我们可以将比较场…...

射频工程师必备:如何用ADS仿真优化PA和LNA的噪声系数?

射频工程师必备&#xff1a;ADS仿真优化PA与LNA噪声系数的实战手册 在5G和物联网设备爆发式增长的今天&#xff0c;射频前端模块的性能直接决定了通信质量的上限。作为射频电路设计的核心环节&#xff0c;功率放大器(PA)和低噪声放大器(LNA)的噪声系数优化&#xff0c;往往是决…...

s2-pro免配置镜像教程:无需Python环境,直接运行Web语音合成工具

s2-pro免配置镜像教程&#xff1a;无需Python环境&#xff0c;直接运行Web语音合成工具 1. 产品简介 s2-pro是Fish Audio开源的专业级语音合成模型镜像&#xff0c;它让语音合成变得前所未有的简单。这个工具最大的特点就是完全免配置 - 你不需要安装Python环境&#xff0c;不…...

【Java Web学习 | 第十篇】JavaScript(4) 对象

【Java Web学习 | 第十篇】JavaScript(4) - 对象&#xff08;Object&#xff09;深度详解&#xff08;2026最新版&#xff09; 恭喜你完成数组与函数进阶&#xff01; 对象&#xff08;Object&#xff09; 是 JavaScript 中最重要、最核心的数据结构。在 Java Web 开发中&…...

大模型部署成本优化:面向测试从业者的云服务省钱技巧

随着大模型在自动化测试、缺陷智能分析、测试用例生成等领域的应用日益深入&#xff0c;其部署与调用成本已成为测试团队必须面对的核心挑战。高昂的GPU算力费用、未被充分利用的资源以及复杂的定价模型&#xff0c;都可能使技术创新的预算捉襟见肘。一、理解成本构成&#xff…...

Optick与虚幻引擎集成教程:打造专业级游戏性能分析环境

Optick与虚幻引擎集成教程&#xff1a;打造专业级游戏性能分析环境 【免费下载链接】optick C Profiler For Games 项目地址: https://gitcode.com/gh_mirrors/op/optick 作为游戏开发者&#xff0c;你是否曾经为性能瓶颈而苦恼&#xff1f;想要深入了解游戏运行时的性能…...