在线相册管理系统综述.docx
- 文档编号:12064990
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:48
- 大小:1.52MB
在线相册管理系统综述.docx
《在线相册管理系统综述.docx》由会员分享,可在线阅读,更多相关《在线相册管理系统综述.docx(48页珍藏版)》请在冰点文库上搜索。
在线相册管理系统综述
广东海洋大学
学生实习总结报告
环节名称
Web开发技术课程实习
学院
信息学院
所在系
计算机
指导教师
甘元驹
学生姓名
杨汛
专业名称
计算机科学与技术
班级
计科1111班
起止时间
2014年5月26日至2014年6月20日
第一章绪论
1.1课程设计题目
在线相册管理系统
1.2课程设计任务
①首页分页显示所有用户的图片,上传的用户和上传日期
②用户能够注册
③用户登录后,进行相册管理:
上传新图片、对本人上传的图片进行
修改、删除(注意:
修改图片的时候,要注意对原上传图片文件的
删除,防止图片越来越多的情况出现)用户信息的修改,可增加的
功能:
图片栏目,图片分类存放,示例:
QQ相册中的“相册”
④相片的评论功能
1.3系统采用的相关技术
本系统主要采用jsp技术和sql技术结合,用到的工具有Myeclipse10和sqlserver2005,其中使用用jsp建立图形界面、用sql建立数据库。
第2章系统需求分析和总体设计
2.1需求分析
面对传统的相册难于管理,图片多,耗费空间,也有时候自己忘了存放位置,难于查找等问题。
基于个人的照片,开发在线相册管理系统来帮助大家管理自己心爱的图片,以便方便查看。
2.2功能模块
①照片管理模块:
该模块对所有用户都可以使用,普通用户只能查
看、浏览照片,管理员可以实现查看、删除、评论、上传照片等功能。
②用户管理模块:
该模块可以实现用户注册成为管理员,然后管理自己的个人相册,同个用户名只能注册一次。
2.3系统总体模块功能图
总体模块功能图
2.4数据库设计
2.4.1数据库逻辑设计
在线相册管理系统用户表(dbo.tb_userInfo)结构,如下所示
序号
字段
描述
类型
1
username
用户名
varchar(50)
2
password
密码
varchar(50)
3
realname
真实姓名
varchar(50)
4
邮件地址
varchar(50)
5
question
密保问题
varchar(50)
6
result
答案
varchar(50)
在线相册管理系统照片基本信息表(dbo.tb_photo)结构,如下所示
序号
字段
描述
类型
1
photoName
照片名称
varchar(50)
2
photoSize
照片大小
varchar(50)
3
photoType
照片类型
varchar(50)
4
photoTime
照片上传时间
varchar(50)
5
photoAddress
照片保存地址
varchar(50)
6
username
上传者
varchar(50)
7
printAddress
照片浏览地址
varchar(50)
8
smallPhoto
封面小照片
varchar(50)
2.4.2连接数据库的实现
importjava.sql.*;
publicclassJDBConnection{
privatefinalStringdbDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";//设置SQL
//Server2005数据库驱动名称
privatefinalStringurl="jdbc:
sqlserver:
//127.0.0.1:
1433;DatabaseName=db_photo";//设置连接SQL
//Servlet2005的utl地址
privatefinalStringuserName="sa";//设置登录数据库的用户
privatefinalStringpassword="111";//设置登录用户的密码
privateConnectioncon=null;//设置连接对象,并赋值为null
//通过构造方法加载数据库驱动
publicJDBConnection(){
try{
Class.forName(dbDriver).newInstance();//通过Java反射机制进行加载数据库驱动操作
}catch(Exceptionex){
System.out.println("数据库加载失败");
}
}
//创建数据库连接
publicbooleancreatConnection(){
try{
con=DriverManager.getConnection(url,userName,password);//根据用户名,url地址以及密码进行数据连接操作
con.setAutoCommit(true);//设置系统的自动连接操作
returntrue;
}catch(SQLExceptione){
System.out.println(e.getMessage());
System.out.println("creatConnectionError!
");
returnfalse;
}
}
//对数据库的增加、修改和删除的操作
publicbooleanexecuteUpdate(Stringsql){
if(con==null){//当con对象为空,进行creatConnection()方法,实现数据库连接操作
creatConnection();
}
try{
Statementstmt=con.createStatement();
intiCount=stmt.executeUpdate(sql);//执行参数SQL语句
System.out.println("操作成功,所影响的记录数为"+String.valueOf(iCount));//在控制台中显示执行的结果
returntrue;//如果SQL语句执行成功,返回true
}catch(SQLExceptione){
System.out.println(e.getMessage());
returnfalse;//如果SQL语句执行失败,返回false
}
}
//对数据库的查询操作
publicResultSetexecuteQuery(Stringsql){
ResultSetrs;//设置ResultSet结果集对象rs
try{
if(con==null){//当con对象为null,取得数据库连接操作
creatConnection();
}
Statementstmt=con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
try{
rs=stmt.executeQuery(sql);//执行参数中的SQL语句
}catch(SQLExceptione){
System.out.println(e.getMessage());
returnnull;
}
}catch(SQLExceptione){
System.out.println(e.getMessage());
System.out.println("executeQueryError!
");
returnnull;
}
returnrs;//将查询的结果通过return关键字进行返回
}
//关闭数据库的操作
publicvoidcloseConnection(){
if(con!
=null){
try{
con.close();
}catch(SQLExceptione){
e.printStackTrace();
System.out.println("Failedtocloseconnection!
");
}finally{
con=null;
}
}
}
2.5系统实现的主要功能
<1>登录操作
用户在登录界面填写完用户名、密码及验证码后,单击确定按钮,不是所有的用户名和密码都能进入,输入的用户名和密码需与数据库中的用户表内的记录一致,需进行判断。
<2>注册操作
如果想使用相册管理系统,可是又没有用户名和密码的,可以单击用户登录界面的注册一项,这样可以自己定义用户名和密码,这样就可以对自己相册进行操作。
<3>上传操作
用户在进入系统后可以进行相应操作,其中包括上传照片,删除照片,评论照片等,新上传的照片需要把输入的信息添加到数据库中,照片才可以上传成功。
2.6主要功能的实现算法
①照片的查看和浏览,滚动浏览图片或者幻灯片浏览。
varsImgArr=newArray(<%=newAddress%>);
varplImg=newImage();
vargIndex=0;
functionSlideImg(index){
gIndex=index;
if('MicrosoftInternetExplorer'==navigator.appName){
document.images["slideImg"].filters.item(0).Apply();
}
document.images["slideImg"].src=sImgArr[index];
if('MicrosoftInternetExplorer'==navigator.appName){
document.images["slideImg"].filters.item(0).play();
}
}
functionNextImg(){//显示下一张图片
gIndex=((gIndex+1)>=sImgArr.length?
0:
(gIndex+1));
SlideImg(gIndex);
}
functionPrevImg(){//显示前一张图片
gIndex=((gIndex-1)<0?
(sImgArr.length-1):
(gIndex-1));
SlideImg(gIndex);
}
varsid;
functioninislide(){//设置自动运行
if(sid==null){
sid=setInterval('NextImg()',3000);
}
}
②用户密码加密
publicclassEncrypt{
//该方法将密码进行MD5的加密,这个方法为静态方法,可以通过类名进行直接访问
publicstaticStringencode(Stringstr){
if(str==null)//当参数str为空,直接通过return关键字进行返回
returnnull;
StringBuildersb=newStringBuilder();
try{
MessageDigestcode=MessageDigest.getInstance("MD5");
code.update(str.getBytes());
byte[]bs=code.digest();
for(inti=0;i intv=bs[i]&0xFF; if(v<16) sb.append(0); sb.append(Integer.toHexString(v)); } }catch(NoSuchAlgorithmExceptione){ e.printStackTrace(); } returnsb.toString().toUpperCase(); } //该方法返回的系统的时间,也是静态方法 publicstaticStringcurrentlyTime(){ Datedate=newDate(); DateFormatdateFormat=DateFormat.getDateInstance(DateFormat.FULL); returndateFormat.format(date); } //该方法将参数内容进行转码,也是静态方法 publicstaticStringtoChinese(Stringstrvalue){ try{ if(strvalue==null){ return""; }else{ strvalue=newString(strvalue.getBytes("ISO8859_1"),"GBK"); returnstrvalue; } }catch(Exceptione){ return""; } } } 第3章系统详细设计与实现 3.1界面设计 3.1.1新用户注册界面 3.1.2登录界面 3.1.3整体界面 3.1.4我的相册界面 3.1.5照片上传界面 2.1.6照片浏览界面 3.1.7照片详细信息界面 3.2系统测试与实现 系统测试是系统开发周期中的一个十分重要的阶段,其重要性体现在它是保证系统质量和可靠性的最后关键,是对整个系统开发过程包括系统分析、系统设计和系统实施的最终审查。 虽然本系统在测试之前已经经过了系统分析、需求分析、概要分析、详细分析等阶段严格的技术审查,但是错误和疏漏的存在还是无法避免的。 如果没有再投入运行前的系统测试阶段被发现并纠正,问题迟早会在进行中暴露出来,到那时要纠正错误将会付出更大的代价,甚至会造成不堪设想的后果。 因此我在整个开发过程中不断检测,不断发现系统的出错,以便及时更正。 第5章总结 经过了半个月的努力与实践,基于JavaWeb技术的在线相册项目的设计与开发基本完成。 在这十几天的运行调试中,连接数据库一度出现过现错误,经过请教同学和上网查询,错误点全部清除,现在系统可以按着设计思路和需求功能正常运行。 通过开发这个在线相册管理系统,不但熟练掌握了软件集成开发环境Myeclipse10.0的使用,还学会了Tomcat6.0服务器、sqlserver2005数据库级相关组件的使用,培养和锻炼了独立从事开发项目系统的能力,而且通过对在线相册系统的管理的操作,加深了对管理信息系统的原理、技术、方法、工具、步骤和有关理论知识的理解和认识,为今后在工作岗位上更好的利用jsp技术开发网站打下良好的基础。 课程设计下来,感受最深的就是疲惫,还有就是知识极大程度的不够用。 好多问题都得去请教老师和同学才得以解决。 所以我认为自己在动手方面和知识的储备方面还不够,同时,就是在遇到问题的时候,有点手忙脚乱。 针对在这次课程设计中暴露的问题,以后的学习中我会更加努力,提高了自己的动手能力,争取下一次做得更好。 第6章参考文献 【1】邱加永《JSP基础与案例开发详解》,清华大学出版社,2009. 【2】温尚书《JavaWeb编程入门与实战》,人民邮电出版社,2010. 附录系统主要代码实现 相册首页photoIndex.jsp <%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*,java.util.*,com.wy.form.*"errorPage=""%>
<%@taglibprefix="c"uri="%>
useBeanid="dao"scope="page"class="com.wy.dao.OperationData">
useBean>
iftest="${sessionScope.userInfo==null}"> checkUserInfo()"title="请您先登录"class="a1">我的相册
if>
iftest="${sessionScope.userInfo! =null}"> info=userQueryPhoto"class="a1">我的相册
if>
<%
List
inta=0;
for(Photophoto1:
list1){
%>
info=queryPhotoList&type=<%=photo1.getPhotoType()%>">更多
<%
List
intb=0;
for(Photophoto2:
list2){
%>
info=queryOnePhoto&id=<%=photo2.getId()%>"> <% b++; if(b==3) break;} if(list2.size()<3){ for(inti=0;i<3-list2.size();i++){%> <%} }%>
<%
a++;
if(a==3)
break;
}%>
info=queryPhotoList&type=校园风光">校园风光 info=queryPhotoList&type=宿舍概况">宿舍概况 info=queryPhotoList&t 如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。