j2ee的web项目文件导出原理,为了分析原理,以导出txt文件文件为例,分两种情况:1导出txt文件到服务器本地上2导出txt文件到个浏览器端(即导出给浏览器用户)
来源:互联网 发布:买家怎样删除淘宝评价 编辑:程序博客网 时间:2024/06/06 00:46
j2ee的web项目文件导出原理,为了分析原理,以导出txt文件文件为例,分两种情况:1导出txt文件到服务器本地上2导出txt文件到个浏览器端(即导出给浏览器用户)
1导出txt文件到服务器本地
导出txt文件,其实就是往txt文件中写入东西,即写txt,即写txt,即写txt。
原理:
核心是BufferedWriter。
分三步:
1将要写入txt的内容,写入缓冲区(内存中)
2把缓冲区的内容压入txt文件(这就存在内存和外部设备IO了,即内存和硬盘之间的IO了,即将内存中的数据写入到磁盘上)
3关闭文件(一定不要忘记关闭文件)
思考一下,为什么不直接将内容写入文件,而是先写入内存的缓存中,然后再统一写入文件呢?Remark,待思考。
2导出txt文件到个浏览器端(即导出给浏览器用户)
这个就分为两种。
j2ee的web项目,导出excel文件,两种情况下的实现:1前后端不分离 2前后端分离
2.1前后端分离的(前端使用html技术的)
原理:
就是将服务器上的文件,即工程路径下某个文件,输出到浏览器端。
代码实现:
核心是两步:
①读文件,②写给浏览器。
1)情况1:
其实就是最常用的文件下载功能,就是,就是,文件下载,文件下载,文件下载。
jf框架的附件下载的代码:
2)情况2
但是大多数情况下,不仅仅是文件下载,即固定内容的下载,我还希望实现不固定内容(如我根据需求,查询数据库,然后将查询结果导出到excel中)的下载。
这种情况下就要使用即模板,如vm、xls等格式的模板
步骤如下:
1读取模板,如vm(其实就是xml格式的文件)。
2根据输入的参数(如Map、List类型的参数,及将要输出的数据,放入Map或者List)将模板的vm文件进行解析和改造(即vm模板中类似于EL表达式的东西进行解析)。但是不是直接在vm文件中改造,而是读取到内存变量中,进行改造。
3将改造后的vm文件的内容(就将要输出的vm的内容放入内存的变量中),写入http url请求的response中,返回给浏览器(当然写入response的内容是浏览器能够解析和展示的格式,如①直接展示或者下载的html代码 ②也可以是json格式的数据然后通过前段js技术如jQuery技术进行解析再展现到html页面中)。
3)情况3:
我可以不预先定义模板,而是直接将不固定的内容(即将数据库中查询出来的数据),直接写入http url的response中。
如在没有预先定义模板的情况下,我想将数据库中查询出来的数据,直接写入到http url的response中,供浏览器端下载。也可以通过代码在服务器的某个位置创建一个txt,然后将数据库中查询出来的数据写入到该txt,然后再读取该txt,写入到http url的response中,等写完之后,删除该txt文件即可。
2.2前后端不分离的(如前端使用jsp技术的)
略。
懂了前后端分离的,前后端分离的道理是一样的,只是前后端不分离的(如jsp),很多由框架来做了而已。
- j2ee的web项目文件导出原理,为了分析原理,以导出txt文件文件为例,分两种情况:1导出txt文件到服务器本地上2导出txt文件到个浏览器端(即导出给浏览器用户)
- 导出到 txt 文件
- 数据导出到TXT文件
- 数据导出到TXT文件
- excel@txt 文件导出
- JavaScript导出txt文件
- java导出Txt文件
- Java 导出txt文件
- springMVC 导出.txt文件
- Spring导出txt文件
- php导出txt文件
- 页面导出txt文件
- java导出txt文件
- sybase 导出图片到txt文件
- .net按格式导出到.txt文件
- mysql 导出数据到txt文件
- Java导出数据到txt文件
- 文件导出(导出xls和txt)
- vue 比较好的学习文章
- iOS远程真机之ios-minicap安装使用完全指南
- git操作命令
- jquery form表单.serialize()序列化后中文乱码问题原因及解决decodeURIComponent
- 求有向图的强连通分量 Tarjan算法学习笔记
- j2ee的web项目文件导出原理,为了分析原理,以导出txt文件文件为例,分两种情况:1导出txt文件到服务器本地上2导出txt文件到个浏览器端(即导出给浏览器用户)
- 第6章 流程控制语句
- PostgreSQL on Linux 最佳部署手册
- “双十二”年终盛典,Guitar Pro邀您一起倾情共舞
- Angular.js中使用$watch监听模型变化 (转载)
- linux的DNS解析
- jboss规则引擎
- hadoop HDFS的运行原理
- windows7 IIS7.0的安装和配置 教程