j2ee的web项目文件导出原理,为了分析原理,以导出txt文件文件为例,分两种情况:1导出txt文件到服务器本地上2导出txt文件到个浏览器端(即导出给浏览器用户)
2017-12-04 18:50
731 查看
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框架的附件下载的代码:
代码怎么写,记忆:
一个input,一个output。
---实例,用IE浏览器的f12查看下载附件功能,http url请求和响应,分别是什么?
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),很多由框架来做了而已。
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框架的附件下载的代码:
代码怎么写,记忆:
一个input,一个output。
---实例,用IE浏览器的f12查看下载附件功能,http url请求和响应,分别是什么?
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项目,有最终的html代码(即f12看到的最终给用户浏览器展示的代码)一说。java文件有没有最终java代码一说?
- 以Base64字符串形式上传文件——在web浏览器端使用原生Javascript及Ajax读取本地文件并发送请求到服务器
- 当地使用impdp导出服务器转储文件,本地使用impdp导入远程数据库用户
- web项目下载TXT文件防止浏览器直接打开
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- Java本地web项目页面如何直接访问另一台服务器的图片文件
- 本地使用impdp导出服务器转储文件,本地使用impdp导入远程数据库用户
- 1j2ee即web项目,严格意义上来说,没有jsp代码,只有class文件、html文件、javascript文件。2 基于extjs框架的项目怎么怎么查看在浏览器中展示的最终html页面的代码 3
- javaweb-浏览器根据搜索条件从服务器导出/导入excel到本地
- 使用websphere开发J2EE项目时,在服务器配置文件->“环境”->“类路径”中添加的ORACLE的JDBC文件classes12.zip文件是否有效呢?
- 基于.NET 2.0的GIS开源项目SharpMap分析手记(五):WebGIS原理分析及思考
- “无法从web服务器获取项目文件”解决方案
- 无法从web服务器获取项目文件(vs2003)
- 尝试从 Web 项目中访问网络文件时服务器返回的常见错误的列表
- vs03无法从web服务器获取项目文件”解决方案
- 批量将数据库中的用户表导出到指定目录下的txt文件
- 无法打开Web项目 文件路径与URL不符。这两者需要映射到相同的服务器位置
- 基于.NET 2.0的GIS开源项目SharpMap分析手记(五):WebGIS原理分析及思考
- 在本地我们调试运行AJAX.NET程序完全没有问题,但是一旦上传到服务器就会出现很多Web.config文件异常
- “无法从web服务器获取项目文件”解决方案