六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 46|回复: 0

Servlet在客户端显示word pdf ppt xls html(servlet send pdf,doc,ppt,xls and html to clie

[复制链接]

升级  10.67%

16

主题

16

主题

16

主题

秀才

Rank: 2

积分
66
 楼主| 发表于 2013-2-7 14:45:18 | 显示全部楼层 |阅读模式
package  cn.terje.web; import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.util.regex.Pattern; import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; /*  * 针对不同的格式发送不同的文件格式到 client  *  * */public class DocShowServlet extends HttpServlet{     @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp)           throws ServletException, IOException    {        String fN = req.getParameter( "fileName" );       if (fN == null )       {           resp.sendError(404); // 出错了        } else       {           String fileName = "F:\\DOC\\" + fN; // 资料存放在 E DOC 下,主要是在 WIN 平台下            // 先判断文件类型,根据不同的文件类型选择不同的发送方式           if (Pattern.matches ( ".+\\.(html)" , fN))           {              resp.setContentType( "text/html" );              resp.setCharacterEncoding( "gb2312" );              ServletOutputStream out = resp.getOutputStream();               BufferedInputStream bis = new BufferedInputStream(                     new FileInputStream( new File(fileName))); // 读取文件               byte [] b = new byte [1024];              int len;              while ((len = bis.read(b)) != -1)              {                  out.write(b);              }               bis.close();           }           // 将 PDF 发送到 client           if (Pattern.matches ( ".+\\.(pdf)" , fN))           {              resp.setContentType( "application/pdf" );              resp.setCharacterEncoding( "gb2312" );              ServletOutputStream out = resp.getOutputStream();               BufferedInputStream bis = new BufferedInputStream(                     new FileInputStream( new File(fileName)));               byte [] b = new byte [1024];              int len;              while ((len = bis.read(b)) != -1)              {                  out.write(b);              }               bis.close();           }           // 发送 word 文档           if (Pattern.matches ( ".+\\.(doc)" , fN))           {              resp.setContentType( "application/msword" );              resp.setCharacterEncoding( "gb2312" );              ServletOutputStream out = resp.getOutputStream();               BufferedInputStream bis = new BufferedInputStream(                     new FileInputStream( new File(fileName)));               byte [] b = new byte [1024];              int len;              while ((len = bis.read(b)) != -1)              {                  out.write(b);              }               bis.close();           }           // 电子表格发送到 client           if (Pattern.matches ( ".+\\.(xls)" , fN))           {              resp.setContentType( "application/vnd.ms-excel" );              resp.setCharacterEncoding( "gb2312" );              ServletOutputStream out = resp.getOutputStream();               BufferedInputStream bis = new BufferedInputStream(                     new FileInputStream( new File(fileName)));               byte [] b = new byte [1024];              int len;              while ((len = bis.read(b)) != -1)              {                  out.write(b);              }               bis.close();           }           //PPT 发送到 client           if (Pattern.matches ( ".+\\.(ppt)" , fN))           {              resp.setContentType( ">application/vnd.ms-powerpoint" );              resp.setCharacterEncoding( "gb2312" );              ServletOutputStream out = resp.getOutputStream();               BufferedInputStream bis = new BufferedInputStream(                     new FileInputStream( new File(fileName)));               byte [] b = new byte [1024];              int len;              while ((len = bis.read(b)) != -1)              {                  out.write(b);              }               bis.close();           }        }    } }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表