1、JAVAWEB应用开发报告JAVAWEB应用开发报告院 管理学院 专 业 电子商务 年级班别14级(2)班 姓 名 梁伟彬 学 号 指导老师 胡凤全文结束年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 项目包层次结构(截图)
2、144各模块代码实现及测试(截图、文字说明)154、1各模块代码实现154、2配置文件344、3运行测试35项目开发小结411 主要功能模块介绍(截图、文字说明)设计概述:本次小项目的设计我编写的是一个网盘,参考了115网盘的样式来构建我的网盘。这个小网盘注册登陆后能上传下载2M以内的文件。其中运用的javaweb方面的知识点有:MVC开发模式(servlet+DAO+JSP),session的设置,DAO开发,过滤器(登录验证),ajax异步验证,tomcat数据库连接池,文件的上传下载,分页功能。117diskfilesuserVarcharfilenamevarcharfilesizeF
3、loatFiletimeVarcharFileidintFK_117diskfiles1、1 各功能模块表结构及表关系117diskusersuservarcharpwdvarcharnamevarchardormvarcharbedvarchar1、2 用户登录模块(ajax)用户登录模块,输入账号、密码和验证码,用javascriptit保证了这三项不能为空,然后登陆的验证交给LoginServlet来做,验证码用了ajax异步验证是否输入正确。1、3 用户注册模块(增,ajax)用户注册模块,需要填写5项资料。第1项资料同样用了ajax异步验证来判断学号是否已经存在,另外的4项都用jav
4、ascript来控制验证了它们的格式,全部符合要求之后才能提交给RegisterServlet来处理注册,并插入117diskusers数据库。1、4 用户修改资料模块(改)用户资料修改,基本沿用了注册页面的代码,做了一点点小的修改,用户不能修改自己的学号,并且修改也要全部符合要求后才能提交,并且更新117diskusers数据库数据。1、5 首页视图及注销登陆后的首页视图,点击右上角并确认可以实现用户注销,清空登录时设下的session。1、6 主要业务1用户上传模块(增,上传文件)用户上传模块,这一块用了smartupload组件来实现上传。因为用的是协议来进行上传,所以用户只能上传2M以
5、内的文件。点击浏览并选择相应的文件即可上传,上传后会有成功或失败的信息反馈,成功的话会即刻在下面的文件列表中分页列出刚上传的文件。1、7 主要业务2用户搜索模块(查)用户搜索,在搜索框输入连续的搜索关键字,下面的文件列表会分页列出找到的相关文件。1、8 主要业务3文件下载和删除(删)文件下载和删除,点击下载或者删除按钮,回传相应的文件id,实现功能。2 开发环境及配置(截图、文字说明)122、1 开发环境搭建软件环境、硬件环境、开发工具、开发实现模式(最低等级要求:JSP+DAO)【软件环境】XXXXX:window10【开发工具】XXXXX:Eclipse,MySQL,tomcat7、0,j
6、dk1、8,navicat1、JAVA环境变量的配置安装好JDK之后配置path,JAVA_HOME等环境变量j Path的取值为:C:Program Files (x86)Javajdk1、8、0_11bink JAVA_HOME取值为:C:Program Files (x86)Javajdk1、8、0_112、MySQL的配置我下载的是mysql的解压版,只要将mysql加入服务并且配置好环境变量与相应的配置文件即可使用 Mysql的环境变量配置:path中添加mysql的bin目录路径 修改mysql的配置文件my-default、ini:添加mysql所在目录及data文件夹所在目录
7、安装mysql服务:将mysqld、exe拖进cmd窗口,并且install之后即可成功启动登录mysql3、tomcat7、0的配置tomcat7、0的环境变量的配置:CATALINA_BASE、CATALINA_HOME、TOMCAT_HOME:E:tomcat7、0apache-tomcat-7、0、73等配置安装和配置tomcat成功后访问:/localhost:8080出现以下页面:4、navicat的安装使用Navicat下载的是破解版,破解的步骤就不在这里述说,截图展示一下运行的画面。【开发模式】XXXXX:MVC (DAO+JSP+Servlet)Controller层是多个s
8、ervlet,View层是多个jsp,Model层是DAO,但本项目并没有使用请求分发器。2、2 全局配置文件创建Tomcat服务器配置(端口号、虚拟目录、首页等)、组件包导入、配置及映射(数据库连接/连接池、标签库、文件上传、SSH包等) 【将tomcat配置到eclipse中】XXXXX:window-preference-Server-Runtime Environment-Add找到tomcat的安装路径: 【tomcat的端口号(server、xml)】XXXXX:特别说明,本人因为同时在自学php的原因,php的apache用的是80端口,所以我并没有修改Tomcat的端口号,依然
9、采用默认的8080端口。 【tomcat的首页文件配置(web、xml)】XXXXX:采用的也是默认配置 【虚拟目录配置(web、xml)】XXXXX: 【smartupload包,数据库驱动包的导入】XXXXX:我将这两个包直接放进了tomcat的lib文件夹里面,在eclipse的导视图中便可以看到这两个包已经被包含进来了。 【数据库连接池文件配置(context、xml)】XXXXX:本次使用的是tomcat的数据库连接池,先在META-INF文件夹下建立context、xml,然后往里面添加内容: 【各种servlet,过滤器的配置映射(web、xml)】XXXXX:登录过滤器配置we
10、b、xml:各种servlet的配置映射(这里只列举其中一个servlet的配置,其他类推)3 项目包层次结构(截图)整个项目的结构及文件层次示意图:4各模块代码实现及测试(截图、文字说明)123344、1 各模块代码实现 【VO、Account类】XXXXX:负责存储和提供用户对象的属性信息。这里截取代码的一部分,展示user属性的getter与setter方法,其他属性的getter与setter方法类似。该类里面全是属性的get与set方法。【VO、 UploadFile类】XXXXX:负责存储和提供上传文件对象的属性信息。这里截取代码的一部分,展示filename属性的getter与s
11、etter方法,其他属性的getter与setter方法类似。该类里面全是属性的get与set方法。 【dao、IUserNFileDAO类】XXXXX:定义了用户登录注册,文件上传下载等操作的接口。【dao、UserNFileDAOImpl类】XXXXX:DAO接口的真实实现类,完成具体的用户注册、登录、信息修改操作, 文件上传、下载、删除操作。创建新用户方法:用户资料修改方法:获得特定用户对象方法:判断用户是否存在方法:获取用户名字的方法:按账号查找密码的方法:新上传文件插入数据库的方法:获取用户所有上传文件的方法:按用户名查找用户文件的方法:按照文件ID查找对应文件方法:通过文件ID删除
12、文件方法:【dao、 UserNFileDAOProxy类】XXXXX:DAO接口的代理实现类,完成具体的数据库打开与关闭操作。以及用户注册、登录、信息修改操作, 文件上传、下载、删除操作的异常抛出。基本上该类的方法都对应UserNFileDAOImpl类的方法,只是做了数据库连接的打开与关闭和异常的抛出,这里只展示其中一个对应方法的截图,其他对应方法可查看源文件。 【dbc、DatabaseConnection类】XXXXX:该类通过配置数据库连接池,获取数据库连接对象。 【factory、DAOFactory类】XXXXX:该类提供获取一个DAO对象的方法。 【filters、LoginF
13、ilter类】XXXXX:用过滤器对用户是否登录做一个验证。其中登录,注册页面,css,js,图片加载地址等放行。 【servlets、 CheckUserServlet类】XXXXX:用于检查注册的用户账号是否已经存在,ajax异步返回检查的结果。【servlets、 DeleteServlet类】XXXXX:获取文件id,并通过id删除数据库数据以及文件,并返回相应信息。【servlets、DownloadServlet类】XXXXX:使用smartupload的下载方法下载文件。【servlets、 LoginServlet类】XXXXX:对用户账号密码的登录验证,成功就跳转index、
14、jsp,失败则返回相应信息,并返回登录页面。【servlets、ModifyServlet类】XXXXX:通过session中的user账号获得用户对象并进行修改,成功跳转到首页,失败则返回修改页面。【servlets、 RegisterServlet类】XXXXX:向数据库中添加用户数据,成功跳转到登录页,失败则返回注册页。【servlets、UploadServlet类】XXXXX:该类实现了文件上传功能,并且根据上传结果返回相应信息,显示在index、jsp中【servlets、 ValidateServlet类】XXXXX:该类负责比较输入的验证码是否匹配,通过ajax异步返回比较结果
15、。 【index、jsp文件】XXXXX:项目的首页,用于展示上传界面,上传的文件列表界面。【Login、jsp页面】XXXXX:项目的登录界面。【LogOut、jsp页面】XXXXX:用户注销的处理。【Modify、jsp页面】XXXXX:用户资料修改页面。【Register、jsp页面】XXXXX:用户注册页面,js验证输入格式。【validate、jsp页面】XXXXX:生成验证码并打印。【Success、jsp页面】XXXXX:用于接受所有成功操作后返回的信息进行显示,并跳转到指定页面。【Error、jsp页面】XXXXX:用于接受所有失败操作后返回的信息进行显示,并跳转到上一步页面。
16、4、2 配置文件【数据库连接池文件配置(context、xml)】XXXXX:本次使用的是tomcat的数据库连接池,先在META-INF文件夹下建立context、xml,然后往里面添加内容:【各种servlet,过滤器的配置映射(web、xml)】XXXXX:登录过滤器配置web、xml:各种servlet的配置映射(这里只列举其中一个servlet的配置,其他类推,详细请查看项目的web、xml)4、3 运行测试 【注册功能】【登录功能】XXXXX: 【用户资料修改功能】XXXXX: 【上传文件功能】XXXXX: 【文件下载功能】XXXXX: 【文件删除功能】XXXXX:项目开发小结关于
17、这次的javaweb课程设计,我有很多很深的感触与体会。首先,我自己平时有在学另一种web语言php,所以我在做这个javaweb的过程中发现其实有很多东西的原理是一样的。比如设计模式,开发模式等等。只是各自实现的语法不通,难怪总有些前辈说语言都是相通的,语法知识细枝末节的东西,通过这一次小项目的编写,我算是深有体会了。其次,在这次小项目中我加入了不少css和js的前端的东西,javaweb是一门后台语言,这里加入这些东西只是为了我的界面稍微好看一点。本来以为调一下样式是一件很快得事情,但是没想到其实我发在这上面的时间甚至比我写javaweb的时间要多上一点,瞬间就明白前端的工作者为什么也能称
18、作为前端工程师了,任何一个领域你想做好都是需要耐心和学习的,没有一蹴而就的事情。后端如此,前端如此,任何一门语言如此。再次,就是这次的项目加深了我对java这门语言的理解和体会。我学php的一个原因是我以前觉得java的语法太死,因为是一门强语言的关系,大一的时候学习java总有很多不理解的地方。但是现在渐渐使用多了就明白到强语言有强语言的优势,它的出现必然有它的道理。对比过其它语言才知道,其实原理大家都是差不多的,并且java可以做到php可以做的事情,php就做不到很多java可以做的事情了。这样的角度想想之后就发现其实java的语法虽然不算简洁,但是读起来也是很有逻辑的。所以我这段时间来
19、对java有了质的改观,写起代码来也不会想以前一样那么不情愿和一知半解了。另外,不得不说自己亲手做一个小项目出来才是最锻炼人和检验知识学习水平的。我们知道书上的代码是这样写的,知道这样tomcat就能配置好,知道程序这样就能运行,但是我们不知道自己亲手做的时候会不会也向书本那样顺利的就配好所有东西。只有亲自做过了,才知道原来书本善有些代码已经过时了,有些代码是书本上自己写错了,有更好的方法可以代替书本上的方法等,这些东西都是自己上机的切实体验,比只看书得到的知识收获的更多。还是那句话,实践才能出真知。最后,像所有自己编写项目的人一样,我们在这个过程中会遇到很多这样那样的问题,程序逻辑有漏洞、服务器报错,配置文件错误等等。没出现一个错误我们就要调试一个错误,这个发现问题解决问题的过程很锻炼人的耐性和他的能力。我身边就经常有人因为一两个问题以及后面的连带问题而被弄得很烦躁,其实他们只是没有稳住心态。多写代码,多发现并解决问题,就会不断地成长,之后做起编码就不会觉得编程是一件苦差事了。希望自己今天说的话,对以后会有所帮助吧。以上就是我本次javaweb课设的个人总结,谢谢!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1