web应用开发-html5开发web应用
《JavaWeb应用开发课程 学 院管理学院专 业电子商务年级班别14级(2)班姓 名梁伟彬学 号3114004987指导老师胡凤2016年12月目录1 主要功能模块介绍(截图、文字说明)2设计概述:21.1各功能模块表结构及表关系31.2用户登录模块(ajax)31.3用户注册模块(增,ajax)31.4用户修改资料模块(改)41.5首页视图及注销51.6主要业务1——用户上传模块(增,上传文件)51.7主要业务2——用户搜索模块(查)61.8主要业务3——文件下载和删除(删)62 开发环境及配置(截图、文字说明)72.1开发环境搭建72.2全局配置文件创建103 项目包层次结构(截图)144各模块代码实现及测试(截图、文字说明)154.1各模块代码实现154.2配置文件344.3运行测试35项目开发小结411 主要功能模块、说明)设计概述本次小项目的设计我编写的是一个网盘,参考了115网盘的样式来构建我的网盘。这个小网盘注册登陆后能上传下载2M以内的文件。其中运用的javaweb方面的知识点有:MVC开发模式(servlet+DAO+JSP),session的设置,DAO开发,过滤器(登录验证),ajax异步验证,tomcat数据库连接池,文件的上传下载,分页功能。117diskfilesuserVarcharfilenamevarcharfilesizeFloatFiletimeVarcharFileidint
各功能模块表结构表关系uservarchar
pwdvarcharnamevarchardormvarcharbedvarchar用户登录模块用户登录模块用户注册模块用户注册模块需要填写Servlet来处理注册插入数据库用户修改资料模块用户资料修改,基本沿用了注册页面的代码,做了一点点小的修改,用户不能修改自己的学号,并且修改也要全部符合要求后才能提交,并且更新117diskusers数据库数据。首页视图及注销登陆后的首页视图右上角并确认可以实现用户注销清空登录时设下的session主要业务用户上传模块用户上传模块用户只能上传主要业务用户搜索模块用户搜索在搜索框输入连续的搜索关键字下面的文件列表会分页列出找到的相关文件主要业务文件下载和删除点击下载或者删除按钮回传相应的文件id2 开发环境及配置、说明)环境搭建硬件环境开发:+DAO)【软件环境】:window10【开发工具】:Eclipse,MySQL,tomcat7.0,jdk1.8,navicat1、JAVA环境变量的配置安装好JDK之后配置path,JAVA_HOME等环境变量( Path的取值为C:\Program Files (x86)\Java\jdk1.8.0_11\bin( JAVA_HOME取值为C:\Program Files (x86)\Java\jdk1.8.0_112、MySQL的配置我下载的是mysql的解压版只要将mysql加入服务并且配置好环境变量与相应的配置文件即可使用Mysql的环境变量配置:path中添加mysql的bin目录路径 修改mysql的配置文件——my-default.ini:添加mysql所在目录及data文件夹所在目录 安装mysql服务:将mysqld.exe拖进cmd窗口并且install3、tomcat7.0的配置7.0的环境变量的配置CATALINA_BASE、CATALINA_HOME、TOMCAT_HOME:E:\tomcat7.0\apache-tomcat-7.0.73等配置安装和配置tomcat成功后访问:8080出现以下页面:4、navicat的安装使用Navicat下载的是破解版破解的步骤就不在这里述说截图展示一下运行的画面【开发模式】:MVC (DAO+JSP+Servlet)Controller层是多个servletView层是多个jsp全局配置文件创建omcat服务器配置(、虚拟目录、首页)配置及映射连接、文件上传等)preference->Server->Runtime Environment->Add找到tomcat的安装路径:② 【tomcat的端口号(server.xml)】:特别说明,本人因为同时在自学php的原因,php的apache用的是80端口,所以我并没有修改Tomcat的端口号,依然采用默认的8080端口。
③ 【tomcat的首页文件配置(web.xml)】:采用的也是默认配置④ 【虚拟目录配置⑤ 【smartupload包,数据库驱动包的导入】:我将这两个包直接放进了tomcat的lib文件夹里面,在eclipse的导视图中便可以看到这两个包已经被包含进来了。⑥ 【数据库连接池文件配置(context.xml)】:本次使用的是tomcat的数据库连接池,先在META-INF文件夹下建立context.xml然后往里面添加内容⑦ 【各种servlet,过滤器的配置映射(web.xml)】:登录过滤器配置web.xml:各种servlet的配置映射(这里只列举其中一个servlet的配置web应用开发,其他类推)3 项目包层次结构)整个项目的结构及文件层次示意图4各模块测试、说明)实现【VO. UploadFile类】:负责存储和提供上传文件对象的属性信息。这里截取代码的一部分,展示filename属性的getter与setter方法,其他属性的getter与setter方法类似。该类里面全是属性的get与set方法。② 【dao.IUserNFileDAO类】:定义了用户登录注册,文件上传下载等操作的接口。
【dao.UserNFileDAOImpl类创建新用户方法:用户资料修改方法:获得特定用户对象方法:判断用户是否存在方法:获取用户名字的方法:按账号查找密码的方法新上传文件插入数据库的方法:获取用户所有上传文件的方法按用户名查找用户文件的方法按照文件通过文件ID删除文件方法:【dao. UserNFileDAOProxy类】:DAO接口的代理实现类,完成具体的数据库打开与关闭操作。以及用户注册、登录、信息修改操作, 文件上传、下载、删除操作的异常抛出。基本上该类的方法都对应UserNFileDAOImpl类的方法只是做了数据库连接的打开与关闭和异常的抛出这里只展示其中一个对应方法的截图其他对应方法③ 【dbc.DatabaseConnection类④ 【factory.DAOFactory类⑤ 【filters.LoginFilter类⑥ 【servlets. CheckUserServlet类【servlets. DeleteServlet类【servlets.DownloadServlet类【servlets. LoginServlet类.jsp,失败则返回相应信息【servlets.ModifyServlet类【servlets. RegisterServlet类【servlets.UploadServlet类.jsp中【servlets. ValidateServlet类⑦ 【index.jsp文件】:项目的首页web应用开发,用于展示上传界面,上传的文件列表界面。
【Login.jsp页面】:项目的登录界面。【LogOut.jsp页面】:用户注销的处理。【Modify.jsp页面】:用户资料修改页面。【Register.jsp页面】:用户注册页面,js验证输入格式。【validate.jsp页面【Success.jsp页面【Error.jsp页面 配置文件context.xml)】:本次使用的是tomcat的数据库连接池,先在META-INF文件夹下建立context.xml然后往里面添加内容②【各种servlet,过滤器的配置映射(web.xml)】:登录过滤器配置web.xml:各种servlet的配置映射(这里只列举其中一个servlet的配置,其他类推,详细请查看项目的web.xml) 运行测试②【登录功能】:③ 【用户资料修改功能】:④ 【上传文件功能】:⑤ 【文件下载功能】:⑥ 【文件删除功能】:项目开发关于这次的javaweb课程设计我有很多很深的感触与体会首先我自己平时有在学另一种web语言php所以我在做这个javaweb的过程中发现其实有很多东西的原理是一样的只是各自实现的语法不通难怪总有些前辈说语言都是相通的语法知识细枝末节的东西通过这一次小项目的编写我算是深有体会了其次在这次小项目中我加入了不少css和js的前端的东西javaweb是一门后台语言这里加入这些东西只是为了我的界面稍微好看一点本来以为调一下样式是一件很快得事情但是没想到其实我发在这上面的时间甚至比我写javaweb的时间要多上一点瞬间就明白前端的工作者为什么也能称作为前端工程师了任何一个领域你想做好都是需要耐心和学习的没有一蹴而就的事情再次就是这次的项目加深了我对java这门语言的理解和体会我学php的一个原因是我以前觉得java的语法太死因为是一门强语言的关系大一的时候学习java总有很多不理解的地方但是现在渐渐使用多了就明白到强语言有强语言的优势它的出现必然有它的道理对比过其它语言才知道其实原理大家都是差不多的并且java可以做到php可以做的事情php就做不到很多java可以做的事情了这样的角度想想之后就发现其实java的语法虽然不算简洁但是读起来也是很有逻辑的所以我这段时间来对java有了质的改观写起代码来也不会想以前一样那么不情愿和一知半解了另外不得不说自己亲手做一个小项目出来才是最锻炼人和检验知识学习水平的我们知道书上的代码是这样写的知道这样tomcat就能配置好知道程序这样就能运行但是我们不知道自己亲手做的时候会不会也向书本那样顺利的就配好所有东西只有亲自做过了才知道原来书本善有些代码已经过时了有些代码是书本上自己写错了有更好的方法可以代替书本上的方法最后像所有自己编