jsp 页面打开文件

 1 package tcweb.handler.report;
 2
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5
 6 import javax.servlet.ServletContext;
 7 import javax.servlet.ServletOutputStream;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10
11 import tcweb.Constants;
12 import tcweb.EventHandler;
13 import tcweb.Option;
14 import tcweb.PathMap;
15 import tcweb.WCException;
16
17 public class OpenReportHandler implements EventHandler {
18
19     public String process(ServletContext sc, HttpServletRequest request, HttpServletResponse response) throws WCException {
20
21         String filepath = request.getParameter("filepath");
22         try {
23             filepath = new String(filepath.getBytes("ISO-8859-1"), "utf-8");
24             int fileTypePos = filepath.lastIndexOf(".");
25             String fileType = filepath.substring(fileTypePos+1, filepath.length());
26             String contentType ="application/octet-stream";
27             if(fileType.equalsIgnoreCase("txt")){
28                 //contentType = "text/xml";
29                 contentType = Constants.PAGE_CONTENT_TYPE_TEXT;
30                 //contentType = "text/html";
31             }else if(fileType.equalsIgnoreCase("xml")){
32                 contentType = Constants.PAGE_CONTENT_TYPE_XML;
33             }else if(fileType.equalsIgnoreCase("pdf")){
34                 contentType = "application/pdf";
35             }
36             else if(fileType.equalsIgnoreCase("xls")){
37                 contentType = "application/vnd.ms-excel";
38             }
39             else if(fileType.equalsIgnoreCase("xlsx")){
40                 contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
41             }
42 //            else if(fileType.equalsIgnoreCase("accdb") || fileType.equalsIgnoreCase("mdb")){
43 //                contentType = "application/msaccess";
44 //            }else if(fileType.equalsIgnoreCase("zip")){
45 //                contentType = "application/zip";
46 //            }
47
48             filepath = PathMap.path2SystemSeparator(filepath);
49
50             String fileP = PathMap.trimEndSeparator(Option.getStoragePath()) + filepath;
51             File resultFile = new File(fileP);
52             if (resultFile.exists()==true){
53                 filepath = fileP;
54             }else{
55                 filepath = PathMap.trimEndSeparator(PathMap.getRootTemporaryFolder())+filepath;
56             }
57
58             FileInputStream is=new FileInputStream(filepath);
59               // response.reset();
60                //response.setHeader("Content-Disposition","inline; filename=Here is the Amazing PDF");
61                response.setCharacterEncoding("UTF-8");
62
63                response.setContentType(contentType);
64                //response.setHeader("Content-disposition","attachment;filename="+new String("aaa.pdf".getBytes("gb2312"),"iso8859-1"));
65
66                //response.setHeader("Content-Disposition","attachment;filename="+filename);
67
68                ServletOutputStream sos = response.getOutputStream();
69                byte[] buffer = new byte[1024];
70                int len=0;
71                while((len=is.read(buffer))>0){
72                  sos.write(buffer,0,len);
73                }
74                  is.close();
75                  sos.flush();
76                  sos.close();
77
78         } catch (Exception e1) {
79             e1.printStackTrace();
80         }
81
82         return null;
83     }
84
85 }

jsp 页面打开文件

时间: 2024-10-13 11:28:25

jsp 页面打开文件的相关文章

jsp页面下载文件

.将创建的excel文档转换成需要输出的流:可以是文件流放在硬盘中,也可以是输出流输出到浏览器供下载. ◆  文件流:FileOutputStream 1 FileOutputStream fos = new FileOutputStream("F://workbook.xls"); 2 workBook.write(fos); 3 fos.close(); ◆  输出流 :response.getOutputStream() 1 response.reset(); 2 respons

jsp页面做文件上传时遇到要根据登陆名按钮显示或隐藏的情况

项目遇到的情况要根据登陆的角色不同显示或隐藏按钮,因为之前没有遇到过 所以有些不知道怎么下手,百度解决了 方法如下: document.getElementById("#anniu").hide() <button id="anniu">隐藏按钮</button>

在MyEclipse中修改jsp页面的默认打开方式

在JavaWeb项目中,当然有很多jsp页面,但是我发现,双击打开jsp页面总是卡机,相对于打开其他java文件而言非常慢,感觉很不舒服,MyEclipse中默认打开jsp页面是以可视化的形式展现的,但是大多数情况我们都喜欢以代码方式打开jsp页面. 有两种方式来解决打开jsp页面较慢的问题. 单击选中jsp页面,点击右键---open with  --- MyEclipse JSP Editor  以这种方式打开就非常快不会出现卡机的情况. 但是这种方式每次打开jsp页面时都很繁琐,有没有更好

关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件

找了这么久资料,总算解决了 感谢博客园:http://www.cnblogs.com/xsht/p/5275081.html 感谢百度:http://zhidao.baidu.com/link?url=Vz4TlygvnMyYVj105bCuzkusjF0G5rM6opHvEzhcCaJK5s1gFUZ3PBgAWCNsfY1RmtPf4ZEo8EV_Gd7SYKV4S_ 在有Struts部署的Java EE环境中,我们一般把jsp页面写在WebRoot\WEB-INF\content 目录下,

tomcat6.0发布项目打开jsp页面报错:HTTP Status 500 - javax.servlet.ServletException

今天遇到一个tomcat的部署的问题,问题根源在于server.xml 的配置里. 错误如标题,说HTTP Status 500 - javax.servlet.ServletException:XXX文件找不到,几经查找测试,程序并没有错误,有人说是jsp-api.jar和serlet-api.jar包冲突,调试发现并不能解决问题,后来才发现问题的所在: 开始的server.xml 配置对Host 以及其内的Context 是如下配置的: <Host name="localhost&qu

在JSP页面中读取properties文件

在做web开发时,经常遇到要修改一下配置信息.如果把这些配置信息写在代码中,后期的维护便会比较麻烦.所以,一般都是把配置信息写在配置文件里面. 在JSP文件中,如果想要调用properties文件中的变量,则要在有文件中引入 java.util.ResourceBundle 类: <%@ page contentType="text/html; charset=UTF-8" import="java.util.ResourceBundle" %> 已知配

tomcat work目录的作用就是编译每个项目里的jsp文件为java文件如果项目没有jsp页面则这个项目文件夹为空

最近发现,很多网友喜欢把tomcat的work目录里的东西叫做缓存,其实那不是很恰当,work目录只是tomcat的工作目录,也就是tomcat把jsp转换为class文件的工作目录,这也正是为什么它叫work目录而不是cache目录的原因. jsp,tomcat的工作原理是当浏览器访问某个jsp页面时,tomcat会在work目录里把这个jsp页面转换成.java文件,比如将index.jsp转换为index_jsp.java文件,而后编译为index_jsp.class文件,最后tomcat

快速在MyEclipse中打开jsp类型的文件

MyEclipse打开jsp时老是要等上好几秒,嗯嗯,这个问题的确很烦人,其实都是MyEclipse的"自作聪明"的结果(它默认用Visual Designer来打开的),进行下列设置即可有效缓解这种现象: 1. 要么右键单击文件,选择 Open With -> MyEclipse JSP Editor 打开,这样不会采用可视化的打开,耗资源少,自动提示也非常快. 2. 要么采取一劳永逸的方法 Window -> Preferences -> General ->

myeclipse 打开xml jsp页面慢 有时候会自动退出

Myeclipse默认打开文件的方式是 jsp design,每次双击或者使用Ctrl+Shift+R打开 就会用这个打开 ,太慢了而且多次导致Myeclipse挂掉.可以通过以下的方式转化成你想要的打开方式,方法如下:Myecipse->preferences->General->editors->Files Associations(位置根据具体eclipse版本会有所同)File Types 选择.jsp assiciations 里选择classic jsp editor,