关于浩康

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

基于JSP实现数据库中图片的存储与显示

1、引言

员工经过长期磨合与沉淀,具备了协作精神,得以通过团队的力量开发出优质的产品。创新互联坚持“专注、创新、易用”的产品理念,因为“专注所以专业、创新互联网站所以易用所以简单”。公司专注于为企业提供做网站、网站设计、微信公众号开发、电商网站开发,微信小程序,软件定制设计等一站式互联网企业服务。

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

2、建立后台数据库

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

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

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

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

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

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

 
 
 
  1. <%@ page contentType="text/html;charset=gb2312"%>   
  2.  
  3.  
  4. </font></strong>存储图片<strong><font> TITLE></font></strong> </li> <li><strong><font> HEAD></font></strong> </li> <li><strong><font><body></font></strong> </li> <li><font> </font> </li> <li><strong><font><FORM</font></strong> <font>METHOD</font>=<font>POST</font> <font>ACTION</font>=<font>"testimage.jsp"</font><strong><font>></font></strong> </li> <li>新 闻 标 题:<strong><font><INPUT</font></strong> <font>TYPE</font>=<font>"text"</font> <font>NAME</font>=<font>"content"</font><strong><font>><BR></font></strong> </li> <li>新 闻 图 片:<strong><font><INPUT</font></strong> <font>TYPE</font>=<font>"file"</font> <font>NAME</font>=<font>"image"</font><strong><font>><BR></font></strong> </li> <li>新闻内容:  </li> <li><strong><font><TEXTAREA</font></strong> <font>name</font>=<font>"txtmail"</font> <font>rows</font>=<font>"15"</font> <font>cols</font>=<font>"90"</font>   </li> <li><font>style</font>="BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid;   </li> <li>BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 9pt;   </li> <li>HEIGHT: 200px; WIDTH: 100%" <font>wrap</font>=<font>"physical"</font> <strong><font>> TEXTAREA><br></font></strong> </li> <li><strong><font><INPUT</font></strong> <font>TYPE</font>=<font>"submit"</font><strong><font>> form></font></strong> </li> <li><strong><font> body></font></strong> </li> <li><strong><font> HTML></font></strong> </li> </ol></pre><p>将此文件保存为InputImage.jsp文件,其中testimage.jsp文件是用来将图片数据存入数据库的,具体代码如下所示: </p><pre><p> </p><pre> <ol> <li><strong><font><</font></strong>%@ page <font>contentType</font>=<font>"text/html;charset=gb2312"</font>%<strong><font>></font></strong>   </li> <li><strong><font><</font></strong>%@ page <font>import</font>=<font>"java.sql.*"</font> %<strong><font>></font></strong> </li> <li><strong><font><</font></strong>%@ page <font>import</font>=<font>"java.util.*"</font>%<strong><font>></font></strong> </li> <li><strong><font><</font></strong>%@ page <font>import</font>=<font>"java.text.*"</font>%<strong><font>></font></strong> </li> <li><strong><font><</font></strong>%@ page <font>import</font>=<font>"java.io.*"</font>%<strong><font>></font></strong> </li> <li><strong><font><html></font></strong>   </li> <li><strong><font><body></font></strong>   </li> <li><strong><font><</font></strong>%  </li> <li>Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  </li> <li>//加载驱动程序类  </li> <li>Connection <font>con</font>=<font>DriverManager</font>.getConnection("jdbc:odbc:denglu","sa","sa");  </li> <li>//建立数据库联机,其中denglu为数据库名,sa为连接数据库的帐号及密码。  </li> <li>Statement <font>stmt</font>=<font>con</font>.createStatement();   </li> <li>//建立Statement对象  </li> <li>String <font>content</font>=<font>request</font>.getParameter("content");  </li> <li><font>content</font>=<font>new</font> String(content.getBytes("8859_1"),"gb2312");  </li> <li>String <font>filename</font>=<font>request</font>.getParameter("image");  </li> <li><font>filename</font>=<font>new</font> String(filename.getBytes("8859_1"),"gb2312");  </li> <li>String <font>detail</font>=<font>request</font>.getParameter("txtmail");  </li> <li><font>detail</font>=<font>new</font> String(detail.getBytes("8859_1"),"gb2312");  </li> <li>//获得所要显示图片的标题、存储路径、内容,并进行中文编码  </li> <li>FileInputStream <font>str</font>=<font>new</font> FileInputStream(filename);  </li> <li>String <font>sql</font>=<font>"insert into picturenews(content,image,detail) values(?,?,?)"</font>;  </li> <li>PreparedStatement <font>pstmt</font>=<font>con</font>.prepareStatement(sql);  </li> <li>pstmt.setString(1,content);  </li> <li>pstmt.setBinaryStream(2,str,str.available());  </li> <li>pstmt.setString(3,detail);  </li> <li>pstmt.execute();  </li> <li>//将数据存入数据库  </li> <li>out.println("Success,You Have Insert an Image Successfully");  </li> <li>%<strong><font>></font></strong> </li> </ol></pre><p><strong>4、网页中动态显示图片</strong></p><p>接下来我们要编程从数据库中取出图片,其代码如下所示。 </p><pre> <ol> <li><strong><font><</font></strong>%@ page <font>contentType</font>=<font>"text/html;charset=gb2312"</font>%<strong><font>></font></strong>   </li> <li><strong><font><</font></strong>%@ page <font>import</font>=<font>"java.sql.*"</font> %<strong><font>></font></strong> </li> <li><strong><font><</font></strong>%@ page <font>import</font>=<font>"java.util.*"</font>%<strong><font>></font></strong> </li> <li><strong><font><</font></strong>%@ page <font>import</font>=<font>"java.text.*"</font>%<strong><font>></font></strong> </li> <li><strong><font><</font></strong>%@ page <font>import</font>=<font>"java.io.*"</font>%<strong><font>></font></strong>   </li> <li><strong><font><html></font></strong> </li> <li><strong><font><body></font></strong> </li> <li><strong><font><</font></strong>%  </li> <li>Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");   </li> <li>//加载驱动程序类  </li> <li>Connection <font>con</font>=<font>DriverManager</font>.getConnection("jdbc:odbc:denglu","sa","sa");  </li> <li>Statement <font>stmt</font>=<font>con</font>.createStatement();  </li> <li>ResultSet <font>rs</font>=<font>null</font>;   </li> <li>//建立ResultSet(结果集)对象  </li> <li>int <font>id</font>= <font>Integer</font>.parseInt(request.getParameter("id"));  </li> <li>//获得所要显示图片的编号id,并转换为整型  </li> <li>String <font>sql</font> = <font>"select image from picturenews WHERE id="</font>+id+"";   </li> <li>//要执行查询的SQL语句  </li> <li><font>rs</font>=<font>stmt</font>.executeQuery(sql);  </li> <li>while(rs.next()) {  </li> <li>ServletOutputStream <font>sout</font> = <font>response</font>.getOutputStream();  </li> <li>//图片输出的输出流  </li> <li>InputStream <font>in</font> = <font>rs</font>.getBinaryStream(1);  </li> <li>byte b[] = new byte[0x7a120];  </li> <li>for(int <font>i</font> = <font>in</font>.read(b); i != -1;)  </li> <li>{  </li> <li>sout.write(b);   </li> <li>//将缓冲区的输入输出到页面  </li> <li>in.read(b);  </li> <li>}  </li> <li>sout.flush();  </li> <li>//输入完毕,清除缓冲  </li> <li>sout.close();  </li> <li>}  </li> <li>%<strong><font>></font></strong> </li> <li><strong><font> body></font></strong> </li> <li><strong><font> html></font></strong> </li> </ol></pre><p>将此文件保存为testimageout.jsp文件。下一步要做的工作就是使用HTML标记:</p><pre> <ol> <li><strong><font><IMG</font></strong> <font>src</font>="testimageout.jsp?id=<strong><font><</font></strong>%=rs.getInt("id<font>")%>"</font> <font>width</font>=<font>100</font> <font>height</font>=<font>100</font><strong><font>></font></strong> </li> </ol></pre><p>取出所要显示的图片,其中id是所要取出图片的编号。本例中我们输出了***个和***一个图片信息,详细的程序代码如下所示。 </p><pre> <ol> <li><strong><font><</font></strong>%@ page <font>contentType</font>=<font>"text/html;charset=gb2312"</font>%<strong><font>></font></strong>   </li> <li><strong><font><</font></strong>%@ page <font>import</font>=<font>"java.sql.*"</font> %<strong><font>></font></strong> </li> <li><strong><font><html></font></strong> </li> <li><strong><font><head></font></strong> </li> <li><strong><font><title></font></strong>动态显示数据库图片<strong><font> title></font></strong> </li> <li><strong><font> head></font></strong> </li> <li><strong><font><body></font></strong> </li> <li><strong><font><</font></strong>%   </li> <li>Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  </li> <li>Connection <font>con</font>=<font>DriverManager</font>.getConnection("jdbc:odbc:denglu","sa","sa");  </li> <li>Statement <font>stmt</font>=<font>con</font>.createStatement();  </li> <li>String <font>sql</font>=<font>new</font> String();  </li> <li><font>sql</font>= <font>"select * from picturenews"</font>;  </li> <li>ResultSet <font>rs</font>=<font>stmt</font>.executeQuery(sql);  </li> <li>rs.last();  </li> <li>//将指针移至***一条记录  </li> <li>%<strong><font>></font></strong>   </li> <li><strong><font><table></font></strong> </li> <li><strong><font><tr><td><IMG</font></strong> <font>height</font>=<font>99</font> <font>src</font>=<font>"testimageout.jsp?id=1"</font> <font>width</font>=<font>136</font><strong><font>> td></font></strong> </li> <li>//取出***个图片  </li> <li><strong><font><td><IMG</font></strong> <font>height</font>=<font>99</font> <font>src</font>="testimageout.jsp?id=<strong><font><</font></strong>%=rs.getInt("id<font>")%>"</font> <font>width</font>=<font>136</font><strong><font>> td></font></strong> </li> <li>//取出***一个图片  </li> <li><strong><font> tr> table></font></strong> </li> <li><strong><font> body></font></strong> </li> <li><strong><font> html></font></strong> </li> </ol></pre><p>以上基于JSP实现数据库中图片的存储与显示的WEB应用程序在Windows 2000 Professional/SQL Server 2000/ Apache Tomcat 4.0/JDK 1.4 JAVA环境下调试通过。 </p> <br> 当前标题:基于JSP实现数据库中图片的存储与显示 <br> 网页地址:<a href="http://www.jawzsj.com/article/coecchh.html">http://www.jawzsj.com/article/coecchh.html</a> </div> </div> <div class="other"> <h3>其他资讯</h3> <ul> <li> <a href="/article/djjhpjd.html">php云虚拟主机免费使用怎么搭建网站的</a> </li><li> <a href="/article/djjhhsh.html">实战是硬道理:记Java技术面试</a> </li><li> <a href="/article/djjhhcj.html">美国ecs云服务器变更备案</a> </li><li> <a href="/article/djjhhgo.html">windows7管理员被禁用?()</a> </li><li> <a href="/article/djjhhei.html">国内云服务器厂商排名:UCloud云服务器官网</a> </li> </ul> </div> </div> <div class="line"></div> <!--底部--> <footer id="5"> <div class="foot1 container"> <div class="list"> <div class="item"> <a href="javascript:;"> <span class="ico1"><i class="iconfont"></i><img src="/Public/Home/img/ewm.png" alt=""></span> <strong>关注我们</strong> </a> </div> <div class="item"> <a href="" target="_blank"> <span><i class="iconfont"></i></span> <strong>索要报价</strong> </a> </div> <div class="item"> <a href="" target="_blank"> <span><i class="iconfont"></i></span> <strong>我要咨询</strong> </a> </div> <div class="item"> <a href="" target="_blank"> <span><i class="iconfont"></i></span> <strong>找到我们</strong> </a> </div> <div class="item"> <a href="" target="_blank"> <span><i class="iconfont"></i></span> <strong>投诉建议</strong> </a> </div> </div> <div class="tel"> <dl> <tel><a href="tel:400-028-6601" target="_blank">400-028-6601</a></tel><br> <span>也许您需要专业的服务,欢迎来电咨询</span> </dl> <dl> <tel><a href="tel:18980820575" target="_blank">18980820575</a></tel><br> <span>您的需求,是我们前进的动力</span> </dl> </div> </div> <div class="friend"> <div class="container"> <span class="tit">友情链接:</span> <div class="inner"> <a href="https://www.cdcxhl.com/" target="_blank">建站公司</a><a href="https://www.cdcxhl.com/mobile.html" target="_blank">成都手机网站制作</a><a href="https://www.cdcxhl.com/ruanwen/" target="_blank">软文投放</a><a href="https://www.cdcxhl.com/h5.html" target="_blank">h5页面制作</a><a href="https://www.cdcxhl.com/waimao.html" target="_blank">外贸网站建设</a><a href="https://www.cdcxhl.com/waimao.html" target="_blank">成都外贸网站建设</a><a href="https://www.cdcxhl.com/" target="_blank">网站设计</a><a href="https://www.cdcxhl.com/ddos/" target="_blank">高防IP防护</a><a href="https://www.cdcxhl.com/jigui/" target="_blank">服务器机柜租赁</a><a href="https://www.cdcxhl.com/gaiban/" target="_blank">网站改版公司</a><a href="https://www.cdcxhl.com/link/" target="_blank">买链接</a><a href="https://www.cdcxhl.com/xiaochengx.html" target="_blank">小程序开发</a><a href="https://www.cdcxhl.com/shoulu/" target="_blank">网站收录</a><a href="https://www.cdcxhl.com/link/" target="_blank">友情链接买卖</a><a href="https://www.cdcxhl.com/google.html" target="_blank">Google优化</a><a href="https://www.cdcxhl.com/tuoguan/" target="_blank">成都服务器托管</a><a href="https://www.cdcxhl.com/zuyong/" target="_blank">成都服务器租用</a><a href="https://www.cdcxhl.com/" target="_blank">创新互联建站</a> </div> </div> </div> <div class="foot"> <div class="container"> <div class="footNav"> <h3>网站建设</h3> <a href="http://www.kswcd.com/service/" target="_blank">高端网站建设</a><a href="https://www.cdcxhl.com/" target="_blank">成都网站建设公司</a><a href="http://m.cdcxhl.com/" target="_blank">成都网站建设</a> </div> <div class="footNav"> <h3>服务器托管</h3> <a href="http://www.cdxwcx.cn/tuoguan/mianyang.html" target="_blank">绵阳服务器托管</a><a href="https://www.cdcxhl.com/tuoguan.html" target="_blank">成都服务器托管</a><a href="https://www.cdxwcx.com/jifang/yaan.html" target="_blank">雅安服务器托管</a> </div> <div class="footNav"> <h3>网站制作</h3> <a href="http://www.mywzjz.com/" target="_blank">绵阳网站制作公司</a><a href="http://www.myzwz.com/" target="_blank">绵阳网站制作</a><a href="http://chengdu.cdxwcx.cn/wangzhan/" target="_blank">手机网站制作</a> </div> <div class="footNav"> <h3>企业服务</h3> <a href="https://www.cdcxhl.com/service/gongsizhuce.html" target="_blank">注册公司</a><a href="https://www.cdcxhl.com/service/dailijizhang.html" target="_blank">代理记账</a><a href="https://www.cdcxhl.com/shoulu/" target="_blank">网站收录</a> </div> <div class="fr ecode"> <div class="fl"> <img src="/Public/Home/img/ewm.jpg"> <p>扫描查看手机站</p> </div> <div class="fr slogan"> <p class="icon"> <a class="ph" href=""><i class="iconfont"></i></a> <a class="qq" href="tencent://message/?uin=1683211881&Site=&Menu=yes"><i class="iconfont"></i></a> </p> <p> <i>想要找 </i> <a href="">小程序开发</a>、<a href="">APP开发</a>、 <a href="">营销型网站建设</a>、<a href="">网站建设</a>、 <i><a href="">网站定制开发</a></i> ,就选<a href="">浩康</a> </p> </div> </div> </div> <div class="bottom container"> <p class="fl"> 版权所有:成都浩康科技有限公司 备案号:<a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">蜀ICP备19037934号</a> 服务热线:028-86922220 </p> <p class="fr"> <a href="https://www.cdxwcx.com/" target="_blank">成都网站建设</a>: <a href="https://www.cdcxhl.com/" target="_blank">创新互联</a> </p> </div> </div> </footer> <!--在线咨询--> <div class="fot"> <ul> <li> <a href="#" target="_blank"> <img src="/Public/Home/img/fot1.png" alt=""> <p>在线咨询</p> </a> </li> <li> <a href="tel:18980820575" target="_blank"> <img src="/Public/Home/img/fot2.png" alt=""> <p>拨打电话</p> </a> </li> </ul> </div> </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>