基于struts2的在线图片管理系统学院:计算机学院班级:软件11组员:***1060611014016雷莉莎1060611014033尹斌斌10606110140231.需求分析与总体设计1.1编写目的介绍一个基于Struts2框架的在线图片管理系统的设计与实现,该系统实现了用户注册、登录和显示用户列表以及允许登录用户上传图片、编辑图片和显示图片等操作的功能。
1.2背景和目标计算机和数码的普及,数字图片资源已成为我们日常生活中的一个重要部分,对于日常增多的图片资源,如何更好地存储和有效检索已成为我们面临的一个新课题,因而开发此图片管理系统。
1.3参考资料Struts2框架应用开发教程王建国编著清华大学出版社软件工程王文发等编著西安交通大学出版社深入浅出MySQL 唐汉明等编著人民邮电出版社Struts2标签详解电子书资料1.4运行环境操作系统:Window 7web服务器:tomcat7.0web开发框架:Struts2java开发包:JDK 1.8开发工具:eclipse EE,数据库:MySql 5.51.5数据描述本系统E-R图:1.6功能模块(1)用户管理模块通过网站首页的“注册”链接进入注册页面,实现用户的注册。
用户注册后可以通过网站首页的“登录”链接进入登陆页面进行登录。
登陆后的用户可以通过网站首页的“注销”链接从网站注销。
另外,用户也可以通过网站首页的“用户列表”链接查看注册的用户信息。
(2)图片管理模块本模块为图片信息管理模块,主要是未登录用户可以通过网站首页的“图片列表”查看所有图片。
当用户登录到网站后,可以对自己上传的图片进行操作,如图片列表显示,按图片标题进行查找,上传图片,编辑和删除图片。
1.7性能需求1.7.1数据精确度查询时应保证查全率,所有在相应域中包含查询关键字的记录都应能查到,同时保证查准率。
1.7.2时间特性一般操作的响应时间应在1—2秒内。
1.7.3适应性满足运行环境在允许操作系统之间的安全转换和与其他软件的独立运行要求。
1.7.4故障处理正常使用时不应出错,对于用户的输入错误应给出适当的改正提示。
若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。
2.系统详细设计2.1数据库设计本系统中涉及的的数据库主要有注册用户和图片信息。
2.1.1在mydata数据库中创建表stu语句如下:use mydata;CREATE TABLE stu(id int(11) NOT NULL auto_increment,name varchar(10) NOT NULL,password varchar(100) NOT NULL,PRIMARY KEY(id),UNIQUE KEY stuId(id))ENGINE=InnoDB DEFAULT CHARSET=utf8;向表stu中插入数据:insert into stu(name,password) values(‘lls’,’lls’);insert into stu(name,password) values(‘admin’,’123’);用户信息表包括Id,密码和姓名:2.1.2在mydata数据库中创建表album语句如下:use mydata;CREATE TABLE album(id int(11) NOT NULL auto_increment,imgTitle varchar(30) NOT NULL,fileName varchar(30) NOT NULL,description varchar(100) default NULL,updateTime timestamp NOT NULL default ‘0000-00-00 00:00:00’on update CURRENT_TIMESTAMP,userId int(11) NOT NULL,PRIMARY KEY(id),KEY stuId(userId)CONSTRAINT stu_album FOREIGN KEY(userId) REFERENCES stu(id)ON DELETE CASCADE)ENGINE=InnoDB DEFAULT CHARSET=utf8;图片信息表包括 Id,图片标题,描述信息,图片,更新时间,用户Id和操作:2.2系统主页面设计与实现1.注册用户、登录主界面:index.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>在线图片管理</title></head><body style="background-image: url('shu.jpg') ;"><s:if test="#er==null">还未登录<a href='<s:url action="register"/>'>注册</a> <a href='<s:url value="/login.jsp" />'>登录</a> </s:if><s:else><a href='<s:url action="logout" />'>注销</a></s:else> <a href='<s:url action="user"/>'>用户列表</a> <a href='<s:url action="listAlbum" />'>图片列表</a> <a href='<s:url value="/saveAlbum.jsp" />'>上传图片</a> <a href='<s:url value="/searchAlbum.jsp" />'>按标题查找</a></body></html>2.用户登录页面:login.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags" %><html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"> <title>在线图片管理</title></head><body style="background-image: url('shu.jpg') ;"><s:actionerror/><s:form action="login" method="post"><s:textfield name="userName" key="erName" /><br/> <s:password name="password" key="label.text.password" /><br/><s:submit name="submit" value="%{getText('label.text.login')}" /> </s:form></body></html>3.未注册用户注册界面:register.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><html><head><script type="text/javascript"src="scripts/jquery.js" type="text/javascript"></script><script type="text/javascript">function checkUser(){var userNameInput = document.getElementById("userName");var userName = userNameInput.value;if(jQuery.trim(userName) == ""){document.getElementById("userNameSpan").innerHTML = "";return false;}var isNameValid = true;jQuery.ajax({type:"POST",url:'<s:url action="userTest"/>',data:"userName="+userName,dataType:"json",cache:false,async:false,success:function(data,textStatus){isNameValid = data['isNameValid'];if(isNameValid){document.getElementById("userNameSpan").innerHTML="该用户名可以使用";}else{document.getElementById("userNameSpan").innerHTML="该用户名已被占用";userNameInput.focus();}}});return isNameValid;}</script></head><body><a href="index.jsp">网站首页</a><s:actionerror/><s:form action="register" method="post"><s:token/><s:textfield name="userName"id="userName" key="erName" onblur="checkUser()"/><br/><span id="userNameSpan"></span><br/><s:password name="password" key="label.text.password" /><br/> <s:passwordname="confirmPassword"key="label.text.confirmPassword" /><br/><s:submitname="submit"value="%{getText('label.text.register')}" /></s:form></body></html>4.用户列表界面:userList.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><table border="1"><tr><td><s:text name="label.text.ordinal" /></td><td><s:text name="erId" /></td><td><s:text name="erName" /></td></tr><s:iterator value="#erList" status="status"><tr><td width="40"><s:property value="#status.index+1"></s:property></td><td width="80"><s:property value="id"></s:property></td><td width="80"><s:property value="name"></s:property></td> </tr></s:iterator></table><a href="index.jsp">网站首页</a>3.系统测试3.1软件测试的目的软件测试的目标是:(1) 测试是为了发现程序中的错误而执行程序的过程;(2) 好的测试方案是极可能发现迄今为止尚未发现的错误的方案;(3) 成功的测试方案是发现了至今为止尚未发现的错误的测试。