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

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

    博客分类:
  • java
阅读更多
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();

           }

 

       }

    }

 

}
 
分享到:
评论

相关推荐

    ubuntu 16.04的mongodb客户端

    在Ubuntu 16.04上安装和使用MongoDB客户端是开发者和系统管理员的常见需求,以便能够管理数据库、执行查询以及进行数据操作。本教程将详细讲解如何在Ubuntu 16.04上安装和使用MongoDB的Robo 3T客户端,这是一种直观...

    iocp_client.rar_IOCP CLIE_iocp client_iocp 客户端_完成端口_网络考试系统

    这个压缩包包含了项目开发所需的源代码和其他相关文件,让我们来详细了解一下IOCP以及它在构建网络考试客户端中的应用。 IOCP,全称I/O Completion Port,是Windows操作系统中的一种高效率的异步I/O模型。它允许...

    FastDFS客户端 FastDFS java客户端

    FastDFS服务器是一个轻量级的文件存储服务,结合Nginx使用,实现集群高可用,但是他的java客户端不是特别好找。本java客户端依赖包,能够完美整合实现FastDFS服务器的连接,上传、下载和删除。 内部附有简单API使用...

    Ebooks For Dummies Collection

    Microsoft Office Word 2007 For Dummies.pdf Microsoft Sharepoint 2007 For Dummies.chm Microsoft SQL Server 2005 Express Ed For Dummies.pdf Microsoft SQL Server 2005 For Dummies.pdf Microsoft SQL Server...

    淘淘商城/宜立方商城图片上传客户端

    【标题】淘淘商城/宜立方商城图片上传客户端 该标题提到的是一个专门为淘淘商城和宜立方商城设计的图片上传客户端。这个客户端是电商项目的重要组成部分,它允许用户或后台系统方便快捷地将图片上传至服务器,以便...

    oracle 11G 32位客户端安装包下载

    我只想说我是50分下载的,而且自己安装成功了,也已经成功连接了Oracle数据库,好的东西 何必那么高的分给人下在,而且我找一个上午才找到这个资源。

    SuperSocket.ClientEngine.Core socket 客户端处理粘包半包

    - **设置ReceiveFilter**:在客户端实例化时,将自定义的ReceiveFilter设置到`AsyncTcpSession`的`ReceiveFilterFactory`属性中。 - **处理数据**:在`ReceiveNextAsync`方法中,根据协议规范读取数据,判断是否...

    sms_client-2.0.7k.tgz_GSM_K-modes_SMS Clie

    《GSM网络下的K-Mode SMS客户端:sms_client-2.0.7k.tgz解析》 在现代通信技术中,GSM(Global System for Mobile Communications,全球移动通信系统)是一种广泛使用的数字移动电话标准,它在全球范围内为手机用户...

    CuteSoft_Client.rar_CuteSoft_Clie_CuteSoft_Client_cutesoft-clie_

    CuteSoft Client是一款专为.NET框架设计的Web开发编辑器控件,它在Web应用程序中提供了丰富的文本编辑功能,使得开发者能够创建功能强大、用户友好的在线编辑界面。这款控件以其高效性和灵活性而受到开发者的青睐,...

    client_Server_chat.rar_The Client_chat server_client_server clie

    在客户端-服务器应用中,套接字是通信的核心。C语言中的socket API允许程序员创建、连接和监听套接字,实现数据传输。客户端通过socket连接到服务器,服务器通过socket接受连接并处理数据。 4. **多线程编程**: ...

    cas-client-2.0.11.zip_cas client_cas-clie_cas-client-2._java CAS

    CAS客户端在SSO中扮演的角色是,当用户尝试访问受保护资源时,它会重定向到CAS服务器进行身份验证,验证成功后返回一个服务票证,客户端再用这个票证换取访问权限。 3. **CAS客户端配置**:安装和配置CAS客户端通常...

    cmvc-client-samples-1.4.rar_CM_CMVC clie_cmvc_cmvc client api_sa

    CMVC(Change Management and Version Control)是IBM提供的一款强大的缺陷管理和版本控制工具,广泛应用于大型企业和软件开发团队中。这个“cmvc-client-samples-1.4.rar”压缩包包含了与CMVC客户端API相关的示例...

    client-server-socket-using-java.rar_java programming_socket clie

    在Java中,Socket类和ServerSocket类提供了客户端-服务器模型的实现。本教程将深入探讨如何使用Java进行Socket编程。 首先,我们要理解客户端-服务器架构。在该模型中,服务器是一个等待连接并提供服务的程序,而...

    TortoiseSVN_zh_CN.rar_TortoiseSVN_svn_windows svn clie

    《TortoiseSVN:Windows下的SVN客户端详解》 TortoiseSVN,这个名称可能对许多Windows用户并不陌生,它是一款强大的版本控制系统客户端,专为Subversion(SVN)设计,尤其在Windows环境下表现出色。这款工具以其...

    TCP--Client.rar_TCP 文件传输_tcp client 协议_tcp 文件_tcp文件传输_协议Tcp_clie

    当我们谈论“TCP文件传输”时,通常是指通过TCP协议在客户端和服务器之间交换文件。 TCP协议的特点包括: 1. 面向连接:在数据传输之前,客户端和服务器之间会先建立一个连接,确保双方都能通信。这个过程称为三次...

    读取Excel.jsx

    if(doc.layers[0].kind==LayerKind.TEXT)s=doc.layers[0].textItem.contents; var Alie=excel.Range("A"+s); var Blie=excel.Range("B"+s); var Clie=excel.Range("C"+s); alert(Alie+" "+Blie+" "+Clie)

    UDP_Client.rar_UDP 通信 功能 实现_tcp udp clie_网络UDP_网络UDP TCP

    在IT行业中,网络通信是至关重要的一个领域,TCP(传输控制协议)和UDP(用户数据报协议)作为两种主要的传输层协议,被广泛应用于各种网络应用中。本资源"UDP_Client.rar"聚焦于UDP通信的功能实现,尤其适用于初学...

    PLSQL64位(含密钥,Oracle客户端安装文件)

    Oracle Instant Client是一款轻量级的客户端软件,它允许用户在不安装完整Oracle数据库的情况下连接到Oracle服务器。这个压缩包中的"Instant Client Setup.exe"就是Oracle Instant Client的安装程序。该客户端包含了...

    eWeb.rar_eWeb Editor Clie_eWebEditor_eweb editoi_文本修改器_文本编辑器

    《eWeb Editor客户端:在线文本编辑器的深度解析与应用》 eWeb Editor是一款功能强大的在线文本编辑器,尤其在Web开发领域中被广泛应用。它以其便捷的操作界面和丰富的编辑功能,为网络编程人员提供了极大的便利。...

    ordr-client:用于在 https 上渲染视频的客户端

    rdr-客户端客户端用于在渲染视频。 修改源代码以用于官方 o!rdr 服务器将导致禁止。 NodeJS v14+ 是必需的。这有什么作用? o!rdr 是一个免费且易于使用的 API/网站,可让您渲染 osu! 使用 Danser 重播的视频 ( )。...

Global site tag (gtag.js) - Google Analytics