在线相册管理系统.docx
《在线相册管理系统.docx》由会员分享,可在线阅读,更多相关《在线相册管理系统.docx(49页珍藏版)》请在冰豆网上搜索。
![在线相册管理系统.docx](https://file1.bdocx.com/fileroot1/2023-2/22/1139a5c3-069c-47dc-bc55-7f0ef6eb7096/1139a5c3-069c-47dc-bc55-7f0ef6eb70961.gif)
在线相册管理系统
广东海洋大学
学生实习总结报告
环节名称
Web开发技术课程实习
学院
信息学院
所在系
计算机
指导教师
甘元驹
学生姓名
杨汛
专业名称
计算机科学与技术
班级
计科1111班
起止时间
2014年5月26日至2014年6月20日
目录
目录1
第一章绪论2
1.1课程设计题目2
1.2课程设计任务2
1.3系统采用的相关技术2
第二章系统需求分析和总体设计2
2.1需求分析2
2.2功能模块2
2.3系统总体模块功能图3
2.4数据库设计4
2.4.1数据库逻辑设计4
2.4.2连接数据库的实现5
2.5系统实现的主要功能7
2.6主要功能的实现算法7
第三章系统详细设计与实现9
3.1界面设计9
3.1.1新用户注册界面9
3.1.2登录界面10
3.1.3整体界面10
3.1.4我的相册界面11
3.1.5照片上传界面11
2.1.6照片浏览界面12
3.1.7照片详细信息界面13
3.2系统测试与实现13
第五章总结14
第六章参考文献14
附录系统主要代码实现15
第一章绪论
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
email
邮件地址
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;iintv=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>
|
|
<%
Listlist1=(List)request.getAttribute("list");
inta=0;
for(Photophoto1:
list1){
%>
<%=photo1.getPhotoType()%>
info=queryPhotoList&type=<%=photo1.getPhotoType()%>">更多
|
<%
Listlist2=dao.photo_queryList("photoType='"+photo1.getPhotoType()+"'");
intb=0;
for(Photophoto2:
list2){
%>
info=queryOnePhoto&id=<%=photo2.getId()%>">"class="cannelBorder">
<%
b++;
if(b==3)
break;}
if(list2.size()<3){
for(inti=0;i<3-list2.size();i++){%>
无
<%}
}%>
|
<%
a++;
if(a==3)
break;
}%