仓酷云

标题: JAVA教程之用JSP完成数据库图片的存储与显现实例 [打印本页]

作者: 仓酷云    时间: 2015-1-18 11:07
标题: JAVA教程之用JSP完成数据库图片的存储与显现实例
再说第三点:我并没有提到服务器也要整合,然后是IDE,一个好的IDE能够200%提高开发的速度,就说图形方面:你是经过简单托拽和点击就能实现功能好那。  1.弁言
  数据库使用程序,出格是基于WEB的数据库使用程序,常会触及到图片信息的存储和显现。
  一般我们利用的办法是将所要显现的图片存在特定的目次下,在数据库中保留响应的图片的称号,在JSP中创建响应的数据源,使用数据库会见手艺处置图片信息。可是,假如我们想静态的显现图片,上述办法就不克不及满意必要了。我们必需把图片存进数据库,然后经由过程编程静态地显现我们必要的图片。实践操纵中,能够使用JSP的编程形式来完成图片的数据库存储和显现。
  2.创建背景数据库
  ifexists(select*fromdbo.sysobjects
whereid=object_id(N[dbo].[p])andOBJECTPROPERTY(id,NIsUserTable)=1)
droptable[dbo].[p]
GO
CREATETABLE[dbo].[p](
   [picid][int]IDENTITY(1,1)NOTNULL,
   [picname][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
   [pic][image]NULL
)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]
GO
  3.向数据库存储二进制图片
  启动DreamweaverMX后,新建一个JSP文件。其代码以下所示。
  <%@pagecontentType="text/html;charset=gb2312"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"+request.getServerName()
+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
 <head>
  <basehref="<%=basePath%>">
  <title>MyJSPInputImage.jspstartingpage</title>
   <metahttp-equiv="pragma"content="no-cache">
   <metahttp-equiv="cache-control"content="no-cache">
   <metahttp-equiv="expires"content="0">  
   <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
   <metahttp-equiv="description"content="Thisismypage">
   <!--
   <linkrel="stylesheet"type="text/css"href="styles.css">
   -->
 </head>
 <body>
  <formaction="testimage.jsp"method="POST"><br>
  标题<inputname="picname"type="text"><br>
  图片<inputname="pic"type="file"><br>
  <inputtype="Submit"name="button1"value="提交"><br>
   </form>
 </body>
</html>
  将此文件保留为InputImage.jsp文件,个中testimage.jsp文件是用来将图片数据存进数据库的,详细代码以下所示:
  <%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*"%>
<%@pageimport="java.util.*"%>
<%@pageimport="java.text.*"%>
<%@pageimport="java.io.*"%>
<jsp:useBeanid="conn"scope="page"class="dbconn.DBResult"/>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"+request.getServerName()+
":"+request.getServerPort()+path+"/";
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
 <head>
  <basehref="<%=basePath%>">
  <title>MyJSPtestimage.jspstartingpage</title>
   <metahttp-equiv="pragma"content="no-cache">
   <metahttp-equiv="cache-control"content="no-cache">
   <metahttp-equiv="expires"content="0">  
   <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
   <metahttp-equiv="description"content="Thisismypage">
   <!--
   <linkrel="stylesheet"type="text/css"href="styles.css">
   -->
 </head>
<body>
<%
  request.setCharacterEncoding("gb2312");
//创建Statement对象
Stringpicname=request.getParameter("picname");
Stringpic=request.getParameter("pic");
//取得所要显现图片的题目、存储路径、内容,并举行中文编码
FileInputStreamstr=newFileInputStream(pic);
Stringsql="insertintop(picname,pic)values(?,?)";
PreparedStatementpstmt=conn.getPreparedStatement(sql);
pstmt.setString(1,picname);
pstmt.setBinaryStream(2,str,str.available());
pstmt.execute();
//将数据存进数据库
out.println("Success,YouHaveInsertanImageSuccessfully");
%>
</body>
</html>
  4.网页中静态显现图片
  接上去我们要编程从数据库中掏出图片,其代码以下所示。
  <%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*"%>
<%@pageimport="java.util.*"%>
<%@pageimport="java.text.*"%>
<%@pageimport="java.io.*"%>
<jsp:useBeanid="conn"scope="page"class="dbconn.DBResult"/>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"+request.getServerName()+
":"+request.getServerPort()+path+"/";
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
 <head>
  <basehref="<%=basePath%>">
  <title>MyJSPtestimageout.jspstartingpage</title>
   <metahttp-equiv="pragma"content="no-cache">
   <metahttp-equiv="cache-control"content="no-cache">
   <metahttp-equiv="expires"content="0">  
   <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
   <metahttp-equiv="description"content="Thisismypage">
   <!--
   <linkrel="stylesheet"type="text/css"href="styles.css">
   -->
 </head>
 <body>
 <%
  intid=Integer.parseInt(request.getParameter("picid"));
  Stringsql="selectpicfrompWHEREpicid="+id;
  ResultSetrs=conn.getResult(sql);
   while(rs.next())
   {
       ServletOutputStreamsout=response.getOutputStream();
       //图片输入的输入流
       InputStreamin=rs.getBinaryStream(1);
       byteb[]=newbyte[0x7a120];
       for(inti=in.read(b);i!=-1;)
       {
          sout.write(b);
          //将缓冲区的输出输入到页面
          in.read(b);
       }
       sout.flush();
       //输出终了,扫除缓冲
       sout.close();
   }
  %>
 </body>
</html>
  将此文件保留为testimageout.jsp文件。下一步要做的事情就是利用HTML标志:
  <%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*"%>
<%@pageimport="java.util.*"%>
<%@pageimport="java.text.*"%>
<%@pageimport="java.io.*"%>
<jsp:useBeanid="conn"scope="page"class="dbconn.DBResult"/>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"+request.getServerName()+
":"+request.getServerPort()+path+"/";
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
 <head>
  <basehref="<%=basePath%>">
  <title>MyJSPlookpic.jspstartingpage</title>
   <metahttp-equiv="pragma"content="no-cache">
   <metahttp-equiv="cache-control"content="no-cache">
   <metahttp-equiv="expires"content="0">  
   <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
   <metahttp-equiv="description"content="Thisismypage">
   <!--
   <linkrel="stylesheet"type="text/css"href="styles.css">
   -->
 </head>
 <body>
 <%
  Stringsql="select*fromp";
  ResultSetrs=conn.getResult(sql);
   while(rs.next())
   {
 %>
  <ccid_filevalues="testimageout"%/>"width="100"height="100">
   <br>
 <%
   }
   rs.close();
 %>
</body>
</html>

java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的),
作者: 仓酷云    时间: 2015-1-20 14:47
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者: 若相依    时间: 2015-1-29 10:24
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 深爱那片海    时间: 2015-2-2 22:19
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 不帅    时间: 2015-2-8 12:55
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 兰色精灵    时间: 2015-2-25 14:22
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者: 蒙在股里    时间: 2015-3-7 21:40
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者: admin    时间: 2015-3-15 14:15
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 冷月葬花魂    时间: 2015-3-22 01:10
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2