请问怎么从MSSQL2000数据库读取image字段存的word文档显示在JSP页面上

问题描述

我的数据库是SQLServer2000的,数据字段类型是image,里面保存了word,已经把word存到image字段里面了.就是不知道怎么读取然后显示在JSP页面上,请兄弟们帮忙解决.谢谢<%@ page language="java" contentType="application/msword;charset=UTF-8" %><%@ page import="java.io.*,java.sql.*"%><% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url = "jdbc:microsoft:sqlserver://192.168.1.101:1433;DatabaseName=wic"; Connection con = null; Statement stmt = null; ResultSet rs = null; try { con = DriverManager.getConnection(url, "sa", "sa"); stmt = con.createStatement(); String sql = "SELECT SSZS FROM SSJYB WHERE SSJYBH ='Z10-000001-1' AND YPMC='摆件'"; rs = stmt.executeQuery(sql); response.setContentType("application/msword;charset=UTF-8"); while(rs.next()) { InputStream in = rs.getBinaryStream("SSZS"); OutputStream ot=response.getOutputStream(); byte[] b = new byte[1024]; int len=0; while((len=in.read(b,0,b.length))!=-1){ ot.write(b,0,len); } if(in!=null){ in.close(); } if(ot!=null){ ot.close(); } out.clear(); out = pageContext.pushBody(); } } catch (Exception e) { e.printStackTrace(); } finally { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (con != null) { con.close(); } }%>其中SSZS字段就是保存word文档的,SSZS是SQLServer2000的一个image类型的字段.现在就是读取不了,出现乱码. 换过编码了,还是不行. 问题补充:xiaolongfeixiang 写道

解决方案

这些Low level的IO操作,放在Servlet中去。除了这2句,其他的都可以放在Servlet中去:<%@ page language="java" contentType="application/msword;charset=UTF-8" %><%@ page import="java.io.*,java.sql.*"%>
解决方案二:
引用问题补充:xiaolongfeixiang 写道................................你的第1点指出,在JSP中使用OutputStream ot=response.getOutputStream(); 是有问题的 ,请问为什么不能这样子用?你看看错误就知道了吧:严重: Servlet.service() for servlet jsp threw exceptionjava.lang.IllegalStateException: getOutputStream() has already been called for this response
解决方案三:
InputStream in = rs.getBinaryStream("SSZS"); OutputStream ot=response.getOutputStream(); byte[] b = new byte[1024]; int len=0; while((len=in.read(b,0,b.length))!=-1){ ot.write(b,0,len); } 现在是将数据库输入流的数据直接输出了,你分两步。先将数据库输入流中的数据在控制台打印下,看看是不是乱码。如果乱码,那是与数据库交互时出错,反之,是页面展示问题
解决方案四:
换其它编码试试,在Window平台基本上不可能是utf-8编码
解决方案五:
报错了没? 如果就是一个乱码问题的话 可以试试 引用InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); //将UTF-8改为其它编码设置如GBK等试试
解决方案六:
InputStream in = rs.getBinaryStream("SSZS"); OutputStream ot=response.getOutputStream(); byte[] b = new byte[1024]; int len=0; while((len=in.read(b,0,b.length))!=-1){ ot.write(b,0,len); } 如果你调试并认为是编码出现问题的话,我分析应该问题是出现在这里。因为你取出的InputStream是字节流,极易出现一些编码问题。你可以尝试着换一种方式,使用inputstreamreader.inputstreamreader的用法:http://zhou-hong-liang.iteye.com/blog/300048inputstreamreader的编码设置:InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); //将UTF-8改为其它编码设置如GBK等试试
解决方案七:
谢谢到我的博客中提问。首先你的错误是什么?贴出来看看其次,你将JSP和Servlet代码混淆了,写在了一起。建议你分开写。比如:1、你在JSP中使用OutputStream ot=response.getOutputStream(); 是有问题的。2、response.setContentType("application/msword;charset=UTF-8"); 和JSP标签中的<%@ page language="java" contentType="application/msword;charset=UTF-8" %> 也是重复的。

时间: 2025-01-20 16:57:37

请问怎么从MSSQL2000数据库读取image字段存的word文档显示在JSP页面上的相关文章

数据库中的内容显示在jsp页面上,要能按照一定的条件进行筛选

问题描述 数据库中的内容显示在jsp页面上,要能按照一定的条件进行筛选 数据库中的内容显示在jsp页面上,要能按照一定的条件进行筛选 解决方案 比如select * from user where uid=5,uid就是筛选条件,限制只有uid=5的数据才能被查询出来:delete from user where uid=5这个是删除uid=5的: update user set uname=?,pwd=?,sex=?,did=? where uid=?这个是根据uid修改对应sql数据 解决方

java读取word文档并显示在页面上

问题描述 java读取word文档并显示在页面上 我是一名java菜鸟,现在f盘有一word文档,我想用java读取(在action中写读取方法)并显示在jsp页面上,请问该如何处理? 解决方案 新手的话不建议你这样试,如果练习jar包的功能,可以练习读取.修改.追加等.如果必须这样,可以网上查查在html中嵌入一段代码可以利用office组件在html中显示word文档.网上如:百度文库,都不是这样做的,是第过软件把doc,xls等文件生成.flv通过flash播放器在页面上显示的.

POI加dom4j将数据库的数据按一定格式生成word文档

一:需求:将从数据库查处来的数据,生成word文档,并有固定的格式.(dom4j的jar包+poi的jar包) 二:解决:(1)先建立固定格式的word文档(2007版本以上),另存成为xml文件,作为模板.(修改xml节点,添加属性,用于标示要填固定数据的节点) (2)dom4j解析模板xml文件,将文件读入内存,并把数据库数据写入内存的xml模型中 (3)利用poi将内存中的含有数据库内容的xml模型转换成word内存模型,利用输出流输出word文档 三:DEMO [1]模板的word文档

C#下,word文档已经以二进制的方式存入数据库,如何将它从数据库中读取并显示在窗体控件如webbrowser中?

问题描述 word文档已经以二进制的方式存入数据库,如何将它从数据库中读取并显示在窗体控件如webbrowser中? 解决方案 解决方案二:很想知道,帮你顶!

如何保存word文档到数据库Blob字段,,急,急,急啊

问题描述 Eclipse中使用NTKO文档控件,怎么把一个word文档保存到Oracle数据库Blob字段呢? 解决方案 解决方案二:跪求NTKO文档空件如何保存到数据库啊?

请问如何快速的读取word文档里的内容

问题描述 项目要求,把word文档里的内容读取出来,显示在RichTextBox里,我写的代码如下:publicstaticvoidLoadDataFromFile(thisSystem.Windows.Controls.RichTextBoxRTFBox,stringfileName){if(File.Exists(fileName)){objectoFileName=fileName;objectunknow=Type.Missing;_Applicationapp=newWord.Appl

excel导入sql sever-求完整的JSP页面上传excel 将数据导入数据库的代码

问题描述 求完整的JSP页面上传excel 将数据导入数据库的代码 找的的代码都会各种报错 上传的jsp页面的action要指向哪个文件? 解决方案 这篇文章主要介绍了JSP上传excel及excel插入至数据库的方法,涉及JSP文件上传及针对excel的读取.写入数据库等操作技巧,需要的朋友可以参考下 本文实例讲述了JSP上传excel及excel插入至数据库的方法.分享给大家供大家参考.具体如下: 此导入excel是与pojo绑定的,(缺点)excle表头必须是pojo的字段值 1. htm

DBF数据库如何批量转Word文档?

  DBF数据库中的数据怎样转到WORD文档中?手工进行复制粘贴需要耗费不少时间精力,其实,一段小小的代码可以解决问题.你只需照搬即可.下面就为你详细介绍DBF数据库批量转Word文档教程. 笔者在近期的工作中,定期需要对一些文档信息进行归类整理,并利用Visual FoxPro 制作成DBF数据表文件,同时还需要根据该数据表导出Excel文档,并且制作Word文档信息表进行打印输出.由于DBF数据表的表结构以及Word文档中表格字段都是固定的,加上每次整理的文档信息数量颇大,手工进行复制粘贴需

c#编程实现word 文档如何导入SQL Server数据库表中

操作WORD配置说明 引入:Word的对象库文件"MSWORD.OLB"(word 2000为MSWORD9.OLB) 1.运行Dcomcnfg.exe 2.组件服务――计算机――我的电脑――DCOM配置――找到microsoft word 文档 3.点击属性 4.选择"安全性" 5.选定"使用自定义访问权限"和"使用自定义启动权限" 6.分别编辑权限,添加Everyone(ASPNET,VS Developers,Debug