`
log_cd
  • 浏览: 1101796 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Tapestry4实现文件导出功能

阅读更多
@InjectObject("service:tapestry.globals.HttpServletResponse")
public abstract HttpServletResponse getHttpServletResponse();

String filePath=null,fileName=null;
	try{
			filePath=getDocFilePath();
			fileName = getTitle() +"."+"doc";
			getHttpServletResponse().setContentType(
					"application/x-msdownload;charset=GBK");
			filePath = ReadProperty.getInstance().getType("doc")+filePath;
			File file = new File(filePath);
			if (file.exists()) {
				try {
					FileInputStream fileIn = new FileInputStream(file);
					long l = file.length();
					byte[] b = new byte[1024];
					int k = 0;
					String str = new String(fileName.getBytes("gb2312"),"iso-8859-1");

					getHttpServletResponse().setHeader(
							"Content-Disposition",
							"attachment;" + " filename=\"" + str + "\"");

					while ((long) k < l) {
						int j = fileIn.read(b, 0, 1024);
						k += j;
						getHttpServletResponse().getOutputStream()
								.write(b, 0, j);
					}
					getHttpServletResponse().getOutputStream().flush();
					fileIn.close();
					
				} catch (IOException e) {
					e.printStackTrace();
				}
			} else {
				System.out.println("该文件不存在。");
			}
		}catch(Exception e){
			e.printStackTrace();
		}
	}	


附:servlet/jsp 获取绝对路径和相对路径
servlet中获得项目绝对路径
String filePath=this.getServletConfig().getServletContext().getRealPath("/");

根目录所对应的绝对路径:request.getServletPath();

文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())

当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");

ServletContext对象获得几种方式:

Javax.servlet.http.HttpSession.getServletContext()

Javax.servlet.jsp.PageContext.getServletContext()

Javax.servlet.ServletConfig.getServletContext()

文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())

当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");
分享到:
评论

相关推荐

    Tapestry4开发指南

    1) **项目配置**:创建一个新的Java Web项目,并添加Tapestry4的库文件。这通常包括Tapestry4的JAR包,以及其他依赖的库,如Hivemind和Apache Commons库。 2) **创建模块**:在Tapestry4中,模块是应用程序的基本...

    tapestry4开发指南

    在深入探讨Tapestry 4的编程模型时,读者将学习如何使用Ivy或Maven来管理依赖,理解配置文件的结构,以及如何编写自定义组件。此外,书中还会涉及组件库的使用,包括内置的表单组件、导航组件等,这些组件可以帮助...

    Tapestry4环境搭建和应用

    在实践中,Tapestry4的灵活性和可扩展性体现在可以利用Hivemind重新定义或替换内置组件的行为,实现特定的功能需求。例如,通过调整Hivemind配置,可以改变默认的异常处理策略,或者创建自定义的请求处理器。 总之...

    Tapestry 4 官方文档中版本

    "Tapestry4 Users Guide" 和 "Tapestry4 Quick Start" 这两份文档,分别提供了全面的用户指南和快速入门教程,帮助开发者了解和掌握Tapestry 4的使用方法和最佳实践。 10. **社区支持**: 作为Apache项目的一部分...

    深入浅出Tapestry4一书源代码(2)

    《深入浅出Tapestry4》是一本专为开发者深入理解Tapestry4框架而编写的书籍。Tapestry4是Apache软件基金会开发的一个开源Web应用程序框架,它以组件化和事件驱动的方式,极大地简化了Java Web应用的开发。本章节我们...

    Tapestry 5.4.1 相关jar文件

    7. **其他依赖库**:如Apache Commons、SLF4J日志框架、Jackson或Gson用于JSON处理等,这些库为Tapestry提供了丰富的功能扩展。 使用Tapestry 5.4.1 的开发者通常会把这些jar文件添加到项目的类路径中,以启动和...

    Tapestry4开发指南.rar

    Tapestry4开发指南.rar Tapestry4开发指南.rar Tapestry4开发指南.rar

    深入浅出Tapestry4一书源代码(1)

    2. **声明式编程**:Tapestry4通过XML配置文件和注解来声明组件的属性和行为,减少了代码量,提高了可读性。 3. **服务容器**:Tapestry4使用依赖注入(DI)模式,通过服务容器管理应用的服务实例,提供灵活的组件...

    tapestry4+spring+hibernate整合实例

    在这个"tapestry4+spring+hibernate整合实例"中,我们将探讨如何将这三个框架协同工作,以实现用户数据的增删改查功能。这通常涉及到以下几个步骤: 1. **环境配置**:首先,我们需要确保正确安装了JDK、Tomcat...

    tapestry4和5学习资料

    本压缩包包含了一系列的学习资源,帮助开发者深入理解和掌握Tapestry 4和5的关键概念和技术。 1. **Tapestry5最新中文教程.doc**: 这份文档可能是针对Tapestry 5的最新中文教程,旨在为初学者提供一个易懂的入门...

    tapestry文件下载实例

    基于tapestry5.0的文件下载实例,已经完美实现,请参考。

    MyTapestry4-quickStart.rar_Tapestry4_quickstart tapestry_tapestr

    Tapestry4是一个古老的Web应用框架,由Apache软件基金会维护,它基于Java,旨在提供一种高效、可维护性高的方式来构建动态Web页面。在这个名为"MyTapestry4-quickStart.rar"的压缩包中,包含的是一个Tapestry4的快速...

    Tapestry4的入门资料

    10. **集成性**:Tapestry4可以与其他Java库和框架(如Hibernate进行数据持久化)无缝集成,增强了其功能和灵活性。 提供的资源如"Enjoy Web Dev With Tapestry.pdf"、"Tapestry开发指南0.9.pdf"和"Tapestry4官方....

    Tapestry 5 電子書

    这本书旨在帮助开发者深入理解和掌握Tapestry 5的各个方面,从而利用其强大功能构建高效、可维护的Web应用程序。 Tapestry 5是一个开源的Java框架,它提供了组件化和模版驱动的开发方式,使得Web应用的构建更为简洁...

    tapestry官方中文文档

    虽然Tapestry 4的中文文档较少,但提供的《Tapestry4 用户指南》和《Tapestry4 快速启动》是宝贵的参考资料。它们将帮助初学者理解Tapestry的基本概念、组件使用、事件处理等方面的知识。 总的来说,Tapestry 4是...

Global site tag (gtag.js) - Google Analytics