javaweb,电子相册,报告

河 北 科 技 大 学 信息科学与工程学院 实 训 报 告 学生姓名 王 伟 学 号 08L0705219 专业班级 软 件 工 程 L082 实训地点 信息楼A303 实训时间 2011.12.5 -2012.01.13 指导教师 张 晓 明 2 012 年 1 月 实训成绩评定表 学生姓名 王伟 学 号 08L0705219 成绩 专业班级 软件L082 起止时间 2011.12.05-2012.01.13 实训地点 信息楼A303 指 导 教 师 评 语 指导教师 年 月 日 目录 一、实训目的4 二、实训任务与要求4 三、实训过程与内容4 1、需求分析4 1.1总体需求4 1.2功能需求5 1.3 系统用例图5 2、Java Web 应用程序工程制作流程6 2.1开发环境搭建6 2.2 系统设计6 3、实现过程9 3.1 JDBC连接数据库9 3.2 创建数据库的连接9 3.3创建一个Statement10 3.4 执行SQL语句10 3.5JavaBean与DAO模式11 3.6文件上传11 4、关键问题与实现结果12 四、实训总结与心得体会13 五、参考文献14 一、实训目的 本实训课程是在学生具备了Java 程序设计知识与面向对象技术的基础上,为进一步提高项目实践能力、开拓创新能力而设置的实践性环节课程。目的掌握使用JSP应用程序设计的基本技能,熟练使用MyEclipse进行Web应用程序的编写、调试,详细说明Java Web软件项目的整个开发过程,在项目开发过程中逐步熟悉知识点,掌握Java B/S结构程序的运行原理和应用技能,最后完成一个完整的软件开发项目 二、实训任务与要求 掌握Java集成开发环境(IDE)Eclipse的使用和调试方法,利用JSPServletJavaBean实现Web应用开发,掌握分层体系结构开发的技巧,完成教师指定的开发任务,本实训课程是围绕一个完整的Java项目而展开的,虽然每部分内容相对独立,但通过几次迭代开发后,最后形成一个完整的软件系统。任务通过实训课程结合实际案例独立完成web电子相册前台、后台的设计制作,并编码实现。

三、实训过程与内容 1、需求分析 1.1 总体需求 该设计系统要具有实用性,功能完善,界面良好。设计该系统的流程如图1所示。

功能需要 流程设计 程序设计 开始程序 初始化 页面设计 条件 数据库设计 代码操作 代码设计 图1 程序设计流程图 1.2 功能需求 本系统应该具有登录验证、修改密码、创建相册、浏览相片、上传相片、删除相册或相片、发表留言等功能,详见图2。

电子相册系统 退出登录 添加评论 删除相册相片 添加图片 查看图片 创建相册 修改密码 登录验证 图2 电子相册系统功能结构图 1.3 系统用例图 1.3.1 用户用例 普通用户登录系统后,可以点击缩略图的图片名称或者图片进而浏览大图,并在此基础上为此大图添加评论,同样,用户也可以在查看大图的同时,查看其他用户对该图片的评论,如图3所示 图3.普通用户用例图 1.3.2 管理员用例 管理员需要验证登录密码登录后台,当然可以修改管理员密码,然后,管理员可以创建、删除、修改图片分类,进而可以在每个分类目录下上传自己喜欢的图片,其中,管理员还有权删除游客对所上传照片的负面评论,如图4 所示。

图4管理员用例图 2、Java Web 应用程序工程制作流程 2.1开发环境搭建 在MyEclipse中配置好Tomcat服务器,配置好MySQL数据库在MyEclipse中利用jdbc驱动访问MySQL数据库,利用MyEclipse部署Web应用程序,在MySQL创建用户表。MySQL的数据库编码设置为UTF-8,这样有利于Web项目开发时,中文编码的一致性。MyEclipse中Tomcat服务器的设置时,要将JVM设置为本机的JDK安装路径,而非JRE的路径,使用navicate lite创建用户表。

2.2 系统设计 该项目页面设计上,采用了“障眼法”,在用户点击导航栏上的相应链接时,页面会跳转到各个相应模块,但是用户感觉只是其中一部分变化而已,实则不然,在页面布局设计上,应用jsp 的include功能,预先做出页面头,导航,以及尾部的jsp文件,并include进所有的jsp文件,在用户点击导航条时,其实各个页面的头,导航,尾部也被该页面内include的头,导航,尾部所替代,只是在用户感官上没有差异而已。

2.2.1 登录验证 登录页面是电子相册的首页,这是对浏览该电子相册的用户的筛选一个步骤,用户只有提供正确的密码才能进入相册主页进行其他操作。

流程描述 在URL栏里输入http//localhost/ephoto/login.html便可进入“登录页面”,如果在密码框内输入密码,系统会把其与之前给密码赋的值进行比对,相匹配则登录成功,跳转至相册主页;
否则返回登录页面。流程、代码及运行结果详见图5、图6、图7所示。

输入正确 输入密码 进入相册主页 YES NO 登录页面 开始登录 登录结束 图 5 登录验证图 图 6 验证登录用户名密码代码 图 7 电子相册登录页面 2.2.2 相册主页 相册主页是用户展示相片的页面,对该系统的相册和相片一览无余。同时它也是电子相册的“导航”,可以链接到上传照片、创建相册、修改密码、发表留言、返回主页、退出登录等功能。

在“登录页面”输入正确的密码后方可进入“相册主页”,如图8所示。用户可直接或用打开相册的方式浏览主页上的照片和相册里的照片,如图9所示。点击主页左方的各种链接可以进入相应的操作,进入其他功能界面。

图8 管理员进入相册主页 图 9 用户(游客)进入相册主页 2.2.3 修改密码 用户可以根据自己的需要来修改自己的登录密码。

通过“相册主页”左侧的链接点击“修改密码”进入到“修改密码页面”,根据提示输入修改后的密码,选择提交,则显示“密码修改成功”。修改密码完成后,可选择界面上方的“返回主页”和“退出登录”执行相关的操作。操作代码及运行结果如图10、图11所示。

图10 管理员修改密码代码 图11 修改密码页面 2.2.4创建相册 用户可以根据自己的需要来创建新的相册,把照片分类。

通过“相册主页”左侧的链接点击“创建相册”进入到“创建目录页面”,根据提示输入新创建的相册名称,选择创建,则新建相册成功,转到新建的相册里。创建相册完成后,可选择界面上方的“返回主页”和“退出登录”执行相关的操作。操作代码及运行结果如图12、图13所示。

图12 添加分类 代码 图13添加分类页面 2.2.5 上传照片 用户可以根据自己的需要上传照片。

通过“相册主页”左侧的链接点击“上传照片”进入到“上传照片页面”,根据提示输入选择上传方式。如果从本地上传,选择“浏览”在本地打开一张照片,点击“上传”则上传照片成功,否则提示“上传文件出错”。上传照片完成后,返回到相册主页或某相册。如果使用URL方式上传,输入网址选择“传送”则上传照片成功,否则提示“文件出错”。创建相册完成后,可选择界面上方的“返回主页”和“退出登录”执行相关的操作。操作代码及运行结果如图14、图15所示。

图14 上传图片代码 图15 添加图片页面 2.2.6 删除相册、照片 用户可以根据自己的需要删除相册或照片。

每个相册和每张照片后面都有“删除”的字样,点击后会出现提示“是否删除”,选择确认则删除成功,返回相册主页;
选择取消则无变化,返回相册主页。图片操作代码及运行界面如图16、图17所示。

图 16删除图片代码 图17 图片操作页面 2.2.7 退出登录 用户可以根据自己的需要退出登录。

用户只要点击“退出登录”,就返回到“登入页面”。

2.2.8 数据库设计 本系统的数据库MySQL是链接到留言板的功能,创建表、编写代码、链接数据库是DAO类实现的。

只要输入正确的口令、进入“相册主页”,就可通过“相册主页”左侧的链接点击“发表留言”进入到“我的留言板”,根据界面上的提示,可选择“发表留言”、“浏览留言”、“返回主页”、“退出登录”中的任一项进行相应的操作。选择界面上方的“发表留言”后会出现用户、标题、内容提示框,填写内容后提交留言,成功则出现“浏览留言页面”,否则则提示错误。选择“浏览留言”,直接转至“浏览留言页面”,可浏览所有的留言,点击“下一页”则跳转至第二页的留言内容,同样还可选择“上一页”、“首页”、“尾页”,执行相应的操作。选择“返回主页”和“退出登录”也分别对应着相关的操作。数据库表如下表所示 表1类别表 表2 图片表 表3 用户表 表4 评论表 3、实现过程 3.1 JDBC连接数据库 创建一个以JDBC连接数据库的程序,包含7个步骤加载JDBC驱动程序在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forNameString className实现。

例如 try{ //加载MySql的驱动类 Class.forName“com.mysql.jdbc.Driver“; }catchClassNotFoundExceptione{ System.out.println“找不到驱动程序类,加载驱动失败“; e.printStackTrace; } 成功加载后,会将Driver类的实例注册到DriverManager类中。提供JDBC连接的URL 连接URL定义了连接数据库时的协议、子协议、数据源标识。书写形式协议子协议数据源标识 。协议在JDBC中总是以jdbc开始 。子协议是桥连接的驱动程序或是数据库管理系统名称。数据源标识标记找到数据库来源的地址与连接端口。

例如(MySql的连接URL) jdbcmysql//localhost3306/testuseUnicodetrueuseUnicodetrue表示使用Unicode字符集。如果characterEncoding设置为gb2312或GBK,本参数必须设置为true。characterEncodinggbk字符编码方式。

3.2 创建数据库的连接 要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象, 该对象就代