网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > JSP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.最简单的连接 mysql 数据库的方法.
.JSP实现论坛树型结构的具体算法.
.用缓冲技术提高JSP应用的性能和稳.
.jsp中与标签要用不同的方式获得数.
.在jsp中作HTTP认证的方法.
.jsp的八个隐含对象.
.JSP 国际化-格式化货币和日期 .
.JSP中可能会碰到的问题解答.
.快速应用JDBC控件访问数据库资源.
.JSP编写WAP输入中文乱码问题.
.通过Jsp发送动态图像.
.在jsp中运用ajax(简单入门) .
.JSP文件下载的几种方式.
.jsp进度条.
.提升JSP页面响应速度的七大秘籍绝.
.解决了打开Jsp文件的可恶问题 .
.应用JDOM处理数据库到XML转换的J.
.TOMCAT用https替换http的方法.
.详细的jsp分页(oracle+jsp+apac.
.改变JSP的文件后缀.

从数据库读出的JPG文件的字符流,转换成图片显示在页面上的相关代码

发表日期:2007-4-24


public void doPost(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
    ServletOutputStream out = res.getOutputStream();
    Statement dispStmt = null, setStmt = null;
    try {
        dispStmt = Con.createStatement();
        setStmt = Con.createStatement();
        setStmt.executeUpdate("set textsize 2048000");
    } catch (Exception e) {
        out.println("Create Statement error:" + e.toString() + "<br>");
    }

    String ls_sql = null;
    ls_sql = req.getParameter("ImageSQL");
    if (ls_sql == null)
        ls_sql = "";
    ls_sql = ls_sql.trim();
    if (!ls_sql.equals("")) {
        ResultSet rs = null;
        try {
            rs = dispStmt.executeQuery(ls_sql);
        } catch (Exception e) {
            System.out.println(
                "Unable to Exec Statment" + e.toString() + "<br>");
        }
        try {
            while (rs.next()) {
                try {
                    res.setContentType("image/jpeg");
                    InputStream is = rs.getBinaryStream(1);
                    int size = is.available();
                    byte[] bzp = new byte[size];
                    is.read(bzp);
                    out.write(bzp);
                } catch (Exception e) {
                    System.out.println("Wirte image error: " + e.toString());
                }
            }
            rs.close();
        } catch (Exception e) {
            System.out.println("Unable to Close Statment" + e.toString());
        }
    }
    try {
        dispStmt.close();
    } catch (Exception e) {
        System.out.println("Close Statement Error: " + e.toString());
    }
    out.close();
}

--------------------------------------------------------------------------------

再附一个:

从库中读图片显示到页面上的主要源码
 <%@ page contentType="text/html;charset=iso8859_1"%>
<%@ page import="java.sql.ResultSet"%>
<jsp:useBean id="query" class="pub.MakeDB"/>
<%
String sql = "select * from images";
ResultSet rs = query.executeQuery(sql);
rs.next();
InputStream in = rs.getBinaryStream("image");
ServletOutputStream sos = response.getOutputStream();
int len = 0;
byte[] b = new byte[1024];
response.reset();
response.setContentType("image/gif");
while((len = in.read(b)) > 0)
sos.write(b,0,len);
in.close();
sos.close();
query.cls();
%>
如果是写到文件只要把sos
定义为DataOutputStream sos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("/a.gif")));

上一篇:JSP安全编程实例浅析 人气:6342
下一篇:在一个jsp页面实现二级下拉框联动,实时读取数据库数据 人气:8623
浏览全部jsp的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐