028-86922220
建站资讯

网站建设资讯

为你提供网站建设行业资讯、网站优化知识、主机域名邮箱、网站开发常见问题等。

JSP如何实现数据库中图片的存储与显示

本篇内容主要讲解“JSP如何实现数据库中图片的存储与显示”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JSP如何实现数据库中图片的存储与显示”吧!

创新互联客户idc服务中心,提供西信服务器托管、成都服务器、成都主机托管、成都双线服务器等业务的一站式服务。通过各地的服务中心,我们向成都用户提供优质廉价的产品以及开放、透明、稳定、高性价比的服务,资深网络工程师在机房提供7*24小时标准级技术保障。

1、引言

数据库应用程序,特别是基于WEB的数据库应用程序,常会涉及到图片信息的存储和显示。通常我们使用的方法是将所要显示的图片存在特定的目录下,在数据库中保存相应的图片的名称,在JSP中建立相应的数据源,利用数据库访问技术处理图片信息。但是,如果我们想动态的显示图片,上述方法就不能满足需要了。我们必须把图片放入数据库存储起来,然后通过编程动态地显示我们需要的图片。实际操作中,可以利用JSP的编程模式来实现图片的数据库存储和显示。

2、建立后台数据库

假定处理的是图片新闻,那么我们可以建立相应的数据库及数据表对象。我们要存取的数据表结构的SQL脚本如下所示:

if exists (select * from dbo.sysobjects where id =   object_id(N'[dbo].[picturenews]') andOBJECTPROPERTY(id, N'IsUserTable') = 1)  drop table [dbo].[picturenews]  GO  CREATE TABLE [dbo].[picturenews] (  [id] [int] IDENTITY (1, 1) NOT NULL ,  [image] [image] NULL ,  [content] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL ,  [detail] [varchar] (5000) COLLATE Chinese_PRC_CI_AS NULL   ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]  GO

表picturenews中,字段id作为标识,每存储一行数据,自动增加1。字段image

用于存储图片信息,其数据类型为“image”。

3、向数据库存储二进制图片

启动Dreamweaver MX后,新建一个JSP文件。其代码如下所示。

<%@ page contentType="text/html;charset=gb2312"%>     存储图片TITLE> HEAD> <body>  <FORM METHOD=POST ACTION="testimage.jsp"> 新 闻 标 题:<INPUT TYPE="text" NAME="content"><BR> 新 闻 图 片:<INPUT TYPE="file" NAME="image"><BR> 新闻内容:  <TEXTAREA name="txtmail" rows="15" cols="90"   style="BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid;   BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 9pt;   HEIGHT: 200px; WIDTH: 100%" wrap="physical" >TEXTAREA><br> <INPUT TYPE="submit">form> body> HTML></pre><p>将此文件保存为InputImage.jsp文件,其中testimage.jsp文件是用来将图片数据存入数据库的,具体代码如下所示:</p><pre><%@ page contentType="text/html;charset=gb2312"%>   <%@ page import="java.sql.*" %></pre><ul><li><p><strong><</strong>%@ page import="java.util.*"%<strong>></strong> </p></li><li><p><strong><</strong>%@ page import="java.text.*"%<strong>></strong> </p></li><li><p><strong><</strong>%@ page import="java.io.*"%<strong>></strong> </p></li><li><p><strong><html></strong>   </p></li><li><p><strong><body></strong>   </p></li><li><p><strong><</strong>%  </p></li><li><p>Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  </p></li><li><p>//加载驱动程序类  </p></li><li><p>Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");  </p></li><li><p>//建立数据库联机,其中denglu为数据库名,sa为连接数据库的帐号及密码。  </p></li><li><p>Statement stmt=con.createStatement();   </p></li><li><p>//建立Statement对象  </p></li><li><p>String content=request.getParameter("content");  </p></li><li><p>content=new String(content.getBytes("8859_1"),"gb2312");  </p></li><li><p>String filename=request.getParameter("image");  </p></li><li><p>filename=new String(filename.getBytes("8859_1"),"gb2312");  </p></li><li><p>String detail=request.getParameter("txtmail");  </p></li><li><p>detail=new String(detail.getBytes("8859_1"),"gb2312");  </p></li><li><p>//获得所要显示图片的标题、存储路径、内容,并进行中文编码  </p></li><li><p>FileInputStream str=new FileInputStream(filename);  </p></li><li><p>String sql="insert into picturenews(content,image,detail) values(?,?,?)";  </p></li><li><p>PreparedStatement pstmt=con.prepareStatement(sql);  </p></li><li><p>pstmt.setString(1,content);  </p></li><li><p>pstmt.setBinaryStream(2,str,str.available());  </p></li><li><p>pstmt.setString(3,detail);  </p></li><li><p>pstmt.execute();  </p></li><li><p>//将数据存入数据库  </p></li><li><p>out.println("Success,You Have Insert an Image Successfully");  </p></li><li><p>%<strong>></strong> </p></li><p><strong>4、网页中动态显示图片</strong></p><p>接下来我们要编程从数据库中取出图片,其代码如下所示。</p><pre><%@ page contentType="text/html;charset=gb2312"%>   <%@ page import="java.sql.*" %> <%@ page import="java.util.*"%> <%@ page import="java.text.*"%> <%@ page import="java.io.*"%>   <html> <body> <%  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");   //加载驱动程序类  Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");  Statement stmt=con.createStatement();  ResultSet rs=null;   //建立ResultSet(结果集)对象  int id= Integer.parseInt(request.getParameter("id"));  //获得所要显示图片的编号id,并转换为整型  String sql = "select image from picturenews WHERE id="+id+"";   //要执行查询的SQL语句  rs=stmt.executeQuery(sql);  while(rs.next()) {  ServletOutputStream sout = response.getOutputStream();  //图片输出的输出流  InputStream in = rs.getBinaryStream(1);  byte b[] = new byte[0x7a120];  for(int i = in.read(b); i != -1;)  {  sout.write(b);   //将缓冲区的输入输出到页面  in.read(b);  }  sout.flush();  //输入完毕,清除缓冲  sout.close();  }  %> body> html></pre><p>将此文件保存为testimageout.jsp文件。下一步要做的工作就是使用HTML标记:</p><pre><IMG src="testimageout.jsp?id=<%=rs.getInt("id")%>" width=100 height=100></pre><p>取出所要显示的图片,其中id是所要取出图片的编号。本例中我们输出了***个和***一个图片信息,详细的程序代码如下所示。</p><pre><%@ page contentType="text/html;charset=gb2312"%>   <%@ page import="java.sql.*" %> <html> <head> <title>动态显示数据库图片title> head> <body> <%   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");  Statement stmt=con.createStatement();  String sql=new String();  sql= "select * from picturenews";  ResultSet rs=stmt.executeQuery(sql);  rs.last();  //将指针移至***一条记录  %>   <table> <tr><td><IMG height=99 src="testimageout.jsp?id=1" width=136>td> //取出***个图片  <td><IMG height=99 src="testimageout.jsp?id=<%=rs.getInt("id")%>" width=136>td> //取出***一个图片  tr>table> body> html></pre></ul><p>到此,相信大家对“JSP如何实现数据库中图片的存储与显示”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!</p>            
            
                        <br>
            当前文章:JSP如何实现数据库中图片的存储与显示            <br>
            本文地址:<a href="http://whjierui.cn/article/ipojjo.html">http://whjierui.cn/article/ipojjo.html</a>
        </div>
    </div>
    <div class="other">
        <h3>其他资讯</h3>
        <ul>
            <li>
                    <a href="/article/dijpsss.html">css样式颜色编写 css背景颜色设置</a>
                </li><li>
                    <a href="/article/dijpeci.html">linux命令行确定硬盘 linux查看确定磁盘位置</a>
                </li><li>
                    <a href="/article/dijpeig.html">linuxmv命令用法 linux的mv命令用法</a>
                </li><li>
                    <a href="/article/dijpesh.html">css样式是一种 css样式概念</a>
                </li><li>
                    <a href="/article/dijpeio.html">mysql怎么挂网上 mysql 挂载数据库</a>
                </li>        </ul>
    </div>
</div>
<footer>
    <div class="foot-top">
        <ul>
            <li>
                <div class="title">关于美图云海</div>
                <div class="tbox">
                    <div class="txt">
                        美图云海专注于网站建设、小程序开发,
                        <br /> 用心做好每一个网站,懂您所需、做您所想!
                        <br /> 我们比其他网络公司做的更好、做的更多,
                        <br /> 为客户创造更大的价值,让客户更省心!
                    </div>
                    <a rel="nofollow" href="javascript:;" class="more">MORE</a>
                </div>
            </li>
            <li>
                <div class="title">相关专题</div>
                <div class="tbox">
                    <a href="javascript:;" class="link">企业官网定制</a>
                    <a href="javascript:;" class="link">小程序开发</a>
                    <a href="javascript:;" class="link">品牌网站设计</a>
                    <a href="javascript:;" class="link">网站建设标签</a>
                    <a href="javascript:;" class="link">乐山网站建设</a>
                    <a href="javascript:;" class="link">高端网站设计</a>
                    <a href="javascript:;" class="link">公司做网站</a>
                </div>
            </li>
            <li>
                <div class="title">凭什么选择我们</div>
                <div class="tbox">
                    <a class="link">专业设计团队</a>
                    <a class="link">快速响应服务</a>
                    <a class="link">7个软件著作权</a>
                    <a class="link">已服务3000+客户</a>
                    <a class="link">项目检测具体全面</a>
                    <a class="link">技术研发能力强劲</a>
                    <a class="link">深度符合SEO优化</a>
                    <a class="link">15项设计奖项</a>
                    <a class="link">完善的制作流程</a>
                    <a class="link">售后服务让您省心</a>
                </div>
            </li>
            <li>
                <div class="title">网站设计案例</div>
                <div class="tbox">
                    <ul>
                        <li>
                            <a href="javascript:;" target="_blank">
                                <div class="img"><img src="/Public/Home/images/gebaili.jpg" alt="哥百利" />
                                </div>
                                <div class="tboxs">
                                    <div class="t1">哥百利</div>
                                    <div class="t2">家具研发、设计、生产、服务为一体的专业实木家具订做企业</div>
                                </div>
                            </a>
                        </li>
                        <li>
                            <a href="javascript:;" target="_blank">
                                <div class="img"><img src="/Public/Home/images/cdshujin.jpg" alt="蜀锦在线" /></div>
                                <div class="tboxs">
                                    <div class="t1">蜀锦在线</div>
                                    <div class="t2">汽车行业网站建设</div>
                                </div>
                            </a>
                        </li>
                    </ul>
                </div>
            </li>
        </ul>
    </div>
    <div class="foot-center">
        <ul>
            <li>
                <div class="f-ewm"><img alt="美图云海微信公众号" src="/Public/Home/images/ewm.jpg" /></div>
                <div class="tbox ewm">
                    <div class="t1">扫一扫关注</div>
                    <div class="t2">专业团队为您解答</div>
                </div>
            </li>
            <li>
                <div class="tbox tel">
                    <div class="t1">电话/邮箱</div>
                    <div class="t2">400-028-6601 / 028-86922220<br>631063699@qq.com</div>
                </div>
            </li>
            <li>
                <div class="tbox sz">
                    <div class="t1">成都(总部)</div>
                    <div class="t2">成华区 双林路22号仁禾商务楼5F<br> 大客户专线:13518219792
                    </div>
                </div>
            </li>
            <li>
                <div class="tbox gz">
                    <div class="t1">网站建设(乐山站)</div>
                    <div class="t2">
                        乐山市市中区瑞祥路一段1507号
                        <br /> 028-86922220
                    </div>
                </div>
            </li>
        </ul>
    </div>
    <div class="foot-button">
        <div class="link-box" style="width:100%;float:none;">
            <div class="a-box"></div>
            <div style="border-top:1px solid #ebebeb;font-size:12px;color:#666666;line-height:2;padding-top:20px;margin-top:20px;">
                业务范围包括企业网站建设、商城系统开发、品牌网站设计、旅游网站制作、英文外贸网站、教育培训门户网站开发、微信手机移动端开发、响应式网站建设、微信小程序开发、APP定制和其他类型网站定制等。
                <br>服务区域包括成都市锦江区、青羊区、武侯区、金牛区、成华区、龙泉驿、温江、新都、高新区、成都市以及全国各地接受异地服务商的公司企业或者机构。
                <br>
                <div class="a-box"><span><b>友情链接</b></span>
                    <a href="http://chengdu.cdxwcx.cn/" title="成都网站建设" target="_blank">成都网站建设</a><a href="https://www.cdxwcx.com/" title="成都网站推广" target="_blank">成都网站推广</a><a href="http://www.cdxwcx.cn/tuoguan/bgp.html" title="bgp机房托管" target="_blank">bgp机房托管</a><a href="http://www.qhjierui.cn/" title="qhjierui.cn" target="_blank">qhjierui.cn</a><a href="http://www.cdhuace.com/faguangzi/wbfgz.html" title="无边发光字厂家" target="_blank">无边发光字厂家</a><a href="http://www.xwwzsj.com/" title="宣威网站建设" target="_blank">宣威网站建设</a><a href="http://www.cdhuace.com/led.html" title="LED显示屏" target="_blank">LED显示屏</a><a href="http://www.cdxwcx.cn/seo/" title="成都网络营销公司" target="_blank">成都网络营销公司</a><a href="http://www.cdkjz.cn/fangan/finance/" title="金融行业网站建设方案" target="_blank">金融行业网站建设方案</a><a href="http://www.cqcxhl.com/jianzhan/" title="重庆建站" target="_blank">重庆建站</a>                </div>
            </div>
            <div class="copyright">©2025 青羊区美图云海设计工作室(个体工商户)乐山站   蜀ICP备19037934号</div>
        </div>
    </div>
</footer>
<div class="fixed-contact-wrap show">
    <ul class="item-list clearfix">
        <li class="phone">
            <a rel="nofollow" target="_blank" href="tel:028-86922220"><i
                    class="icon"></i><strong>028-86922220</strong></a>
        </li>
        <li class="qq">
            <a rel="nofollow" target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=244261566&site=qq&menu=yes"><i
                    class="icon"></i><strong> 244261566</strong></a>
        </li>
        <li class="back-top">
            <a href="#" rel="nofollow" class="back-to-top"><i class="icon"></i><strong> 回到顶部</strong></a>
        </li>
    </ul>
</div>
<script type="text/javascript">
    //右侧联系我们悬浮窗
    $(".fixed-contact-wrap").hover(function () {
        $(this).addClass("active");
    }, function () {
        $(this).removeClass("active");
    })
    function show_phone_menu() {
        $(".right-side ul").toggle();
    }
</script>

</body>
</html>

<script>
    $(".con img").each(function(){
        var src = $(this).attr("src");    //获取图片地址
        var str=new RegExp("http");
        var result=str.test(src);
        if(result==false){
            var url = "https://www.cdcxhl.com"+src;    //绝对路径
            $(this).attr("src",url);
        }
    });
    window.onload=function(){
        document.oncontextmenu=function(){
            return false;
        }
    }
</script>