仓酷云
标题:
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