hdhsvygh123 2010-09-13 11:29
浏览 364
已采纳

请问怎么从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类型的字段.现在就是读取不了,出现乱码.
换过编码了,还是不行.

  • 写回答

7条回答 默认 最新

  • 拽拽的初行者 2010-09-13 16:48
    关注

    这些Low level的IO操作,放在Servlet中去。

    除了这2句,其他的都可以放在Servlet中去:

    <%@ page language="java" contentType="application/msword;charset=UTF-8" %>
    <%@ page import="java.io.*,java.sql.*"%>

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于#flink#的问题:关于docker部署flink集成hadoop的yarn,请教个问题flink启动yarn-session.sh连不上hadoop
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题