|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
再说第三点:我并没有提到服务器也要整合,然后是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顶尖高手是做不来的), |
|