给你一个例子看看吧,我也是在论坛找的。测试通过
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.naming.*;
public class SData extends HttpServlet {
java.sql.Connection conn = null;
java.sql.Statement stmt = null;
java.sql.Blob imageBlob = null;
public void service(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
// PrintWriter out = response.getWriter();
request.setCharacterEncoding("GBK");
response.setContentType("text/html");
try {
//out.println("<html>");
Context ctx = null;
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://127.0.0.1:7001");
ctx = new InitialContext(ht);
javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup ("minko_pool");
conn = ds.getConnection();
stmt = conn.createStatement();
try {
ResultSet rs=stmt.executeQuery("select * from PIC1 ");
response.setContentType("images/jpg");
while (rs.next()) {
//imageBlob = rs.getBlob("PIC");
// InputStream is = imageBlob.getBinaryStream();
// int arrlength = (int)imageBlob.length();
//byte[] arr = new byte[arrlength];
//is.read(arr);
//response.setContentType("image/jpeg");
//OutputStream toClient=response.getOutputStream();
//toClient.write(arr);
//toClient.close();
//stmt.close();}
//rs.close();
//DataOutputStream os = new DataOutputStream( response.getOutputStream() );
// InputStream in = rs.getBinaryStream(1);
// byte[] b = new byte[8192];
// int len;
// while ((len = in.read(b)) !=-1)
// {
// os.write(b,0,len); }
// in.close();
InputStream in = rs.getBinaryStream("PIC");
response.setContentType("image/jpeg");
byte[] b=new byte[1024];
int len;
while((len=in.read(b))>0) { response.getOutputStream().write(b,0,len);}
}
rs.close();
conn.close();
}catch (SQLException e) {System.out.println("DB Error "+e.getMessage());}
}catch (Exception e) {
System.out.println("Exception was thrown: " + e.getMessage());
}
//out.println("</html>");
}
}
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.naming.*;
public class SData extends HttpServlet {
java.sql.Connection conn = null;
java.sql.Statement stmt = null;
java.sql.Blob imageBlob = null;
public void service(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
// PrintWriter out = response.getWriter();
request.setCharacterEncoding("GBK");
response.setContentType("text/html");
try {
//out.println("<html>");
Context ctx = null;
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://127.0.0.1:7001");
ctx = new InitialContext(ht);
javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup ("minko_pool");
conn = ds.getConnection();
stmt = conn.createStatement();
try {
ResultSet rs=stmt.executeQuery("select * from PIC1 ");
response.setContentType("images/jpg");
while (rs.next()) {
//imageBlob = rs.getBlob("PIC");
// InputStream is = imageBlob.getBinaryStream();
// int arrlength = (int)imageBlob.length();
//byte[] arr = new byte[arrlength];
//is.read(arr);
//response.setContentType("image/jpeg");
//OutputStream toClient=response.getOutputStream();
//toClient.write(arr);
//toClient.close();
//stmt.close();}
//rs.close();
//DataOutputStream os = new DataOutputStream( response.getOutputStream() );
// InputStream in = rs.getBinaryStream(1);
// byte[] b = new byte[8192];
// int len;
// while ((len = in.read(b)) !=-1)
// {
// os.write(b,0,len); }
// in.close();
InputStream in = rs.getBinaryStream("PIC");
response.setContentType("image/jpeg");
byte[] b=new byte[1024];
int len;
while((len=in.read(b))>0) { response.getOutputStream().write(b,0,len);}
}
rs.close();
conn.close();
}catch (SQLException e) {System.out.println("DB Error "+e.getMessage());}
}catch (Exception e) {
System.out.println("Exception was thrown: " + e.getMessage());
}
//out.println("</html>");
}
}
解决方案 »
- 请教一个关于 11g r2 emca的问题
- 关于两个同名的字段
- 存储过程中有一数组,想让其成为某一个表的字段,该如何进行
- plsql 查询后如何不显示空列?
- alter权限不足
- 在块中查询的问题
- 不能启动服务OracleOraHone81ManagementServe,怎么解决?
- 怎样将ORACLE中的BLOB字段清空?
- 怎样查看某段时间内oracle的操作日志(linux7.3下的oracle 8.1.6),要详细操作方法。急!!!!!!!!!高分相送
- 急!!!怎样使用exp、imp来备份和导入表中数据(200分相送)在线等
- WIN2000专业版下安装ORACLE8.1.6 服务版不成功!请求帮助!!!
- 请教,我想在一个过程中定义一个20个元素的字符数组,并循环给他赋值,应该怎么做?谢谢
但我的程序也是测试通过的。只不过要用odbc数据源,连接代码如下:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:dns","user","pass");
Statement stmt=conn.createStatement(ResultSet.TYPE_FORWARD_ONLY ,ResultSet.CONCUR_UPDATABLE);
其他的代码部分一样,我不知道用JDBC连数据库还需要配置什么参数。大家帮忙看看,多谢了
{
byte buff[] = new byte[300];
StringBuffer resultBuffer = new StringBuffer();
while(isstr.read(buff) != -1);
resultBuffer.append(new String(buff));
return resultBuffer.toString();
}InputStream fin = rs.getAsciiStream(2);
try{
out.println("<td>"+ConvertChinese(fin).trim()+"</td>");
}catch(Exception e){
out.println("IO发生错误:"+e.getMessage());
}