关于Javaweb课程设计的心得体会
关于Javaweb课程设计的
心得体会
----在线测试系统
这次课程设计我做的是章节自测系统,主要是服务于学生进行阶段性自测和练习。系统分为练习和测试两部分,每一部分又各分若干专题。系统中采用的技术主要有:JDBC数据库连接技术、和MVC三层架构利用MyEclipse集成开发环境。
虽然系统的基本功能都已实现,但还是存在系统不稳定等多个问题尚待解决。这个系统主要是我自己开发的,但也得到了老师和同学的很大帮助。我正在做系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,之所以能够顺利实现基本功功能,离不开老师和同学的大力相助。事实证明,只靠自己是不能顺利完成一套功能完整的系统的,必须充分利用团队的力量。
开发一套系统,最重要的是细心,并不是一定要做到面面俱到,但也要充分考虑到客户的需求和现实意义,不管什么系统,只用运用到实际应用中,才具
有先现实意义。所以在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。
通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。
主要功能及规格分析1.1登录系统的主要功能要求欢迎页面系统安全登录
管理员或普通用户功能选择1.2在线考试系统的主要实现功能要求用户修改登录密码让用户选择考试科目从试题库中随机出题给用户
根据随机出的题做出用户的考试页面保存用户的答案给用户的试卷评分查询用户成绩
1.3在线管理系统的主要功能要求
浏览整个系统中的各种用户(超级用户、普通用户)
添加管理员和普通用户浏览并添加考试科目浏览并添加题库管理员修改登录密码1.4在线阅卷系统的主要功能要求浏览系统中考试科目
根据考试科目进行试卷批改
实现客观题的自动批改
实现主观题的人工批改
2、功能需求和用例分析
2.1系统功能需求:老师可以在网上完成一个考试从题目设计,试题录入,考试安排,考试实施,考卷批
改,分析统计;考试数据,其它数据要求储存在数据库上;考试数据的存放和处理可以实现对学生公开(学生自测成绩可自己查看)也可以实现非公开,需要一定的安全性保障。2.1.1考生:
(1).分布式的,从考试客户端连接到考试应用服务器,在任何地方进行身份确认,从而完成考试(2).考生可以登陆后修改自己的密码
(2).题目具有一个稳定性和随机性,试卷生成方式主要有两种(随机自动生成、固定试题、)(3).考生提交试卷后可以得知考试结果并且知道哪里出错。2.1.2老师:
(1).提供一个功能全面的考试管理客户端,可以进行考试的设计和安排功能(2).对考生进行身份管理(3).对考试进行监控
(4).保存考试结果,供老师进行分析和察看。2.2用例描述:帐户管理
用例名称:帐户管理参与者:超级用户
功能描述:1.查看学生详细信息
2.添加和删除学生用户3.添加和删除教师用户考试管理
用例名称:考试管理参与者:超级用户功能描述:1.设置考试题型2.设置考试分值3.设置考试时间和难度级别
4.设置题目显示方式(全屏显示所以题还是一屏一题)
5.设置出题方式(随机出题还是固定试题)题库管理
用例名称:题库管理参与者:超级用户
功能描述:1.题库分类和题型管理2.添加和删除、修改试题3.试题成批倒入在线阅卷
用例名称:在线阅卷参与者:超级用户
功能描述:1.查看学生是否交卷
2.系统对照题库答案给出考试成绩.开始考试
用例名称:开始考试参与者:普通用户
功能描述:提示普通用户输入参数,系统将进行随机抽题,然后进入考试界面修改密码
用例名称:修改密码参与者:普通用户
功能描述:用户为了安全起见可以修改自己的登录密码
考试记录用例名称:考试记录
参与者:普通用户
扩展阅读:JAVAWEB课程设计报告
JAVAWEB课程设计报告-海贼王专柜
海贼王专柜绪论
系统开发背景
本项目作为《JAVAWEB应用开发技术》课程的实习项目提出,希望通过《海贼王专柜》电子商务网站的设计开发,提高使用JSP开发J2EE架构的电子商务网站(B/S结构)的能力;了解软件文档的相关标准和编写原则,训练并掌握软件各类文档写作的技巧。
海贼王专柜是一种高质量,更快捷,更方便的购物方式。海贼王专柜不仅可用于有关海贼王商品的在线销售,也有各种商品的在线销售。而且网站式的商店对商品的管理更加合理化,信息化。网上商店系统现状
网上商店在我国刚起步,但发展很快。随着我国互联网的更加普及和网上商店的更趋成熟,会有越来越大的消费群体,市场潜力会得到充分发挥。为了保护传统商店的投资,网上商店解决方案应切合传统商店实际的需求和发展的趋向,使投入回报和管理效益最大化,传统商店在实施上网方案的之前,必须对一系列问题进行科学的论证,如网上商店的需求分析、网上商店总体规划、网上商店系统的功能和实施方案、网上商店的传播与推广、运行网上商店系统的软件和硬件配置、网上商店的管理系统和管理方法等等。主要工作
用户分为注册于非注册用户,区别是能否对商品进行购买。
管理员可执行三种基本操作:对用户的查看、冻结;对商品的上传、修改;对订单的查看、执行、删除操作。
本项目主要实现了三个大的基本功能:即1:浏览用户的对商品的浏览、搜索、登录。2:用户对商品的浏览购买、及修改。系统需求分析系统功能需求客户功能需求
通过商品名对库中的商品进行查找,显示到客户端对用户的登陆操作
登陆后可将商品加入到购物车
查看购物车中现有商品、对购物车中的商品数量进行修改、清空购物车
管理员功能需求
管理员是管理需求的应用人员,分配一个账号为此,可实现对前端信息的管理和后台信息的修改等,管理需求如下:商品信息的维护:增加、修改、删除操作
用户信息的管理:对用户的信息的查看、修改、删除等操作订单管理:查看当前订单的状态、删除订单等操作开发平台
集成开发环境:Myeclipse7.5
简单而言,Myeclipse是Eclipse的一个插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错,而且6.0版本以后都不需要安装
JAVAWEB课程设计报告-海贼王专柜
Eclipse了,7.5以后连服务器都不需配置安装了,它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。Web应用服务器:Tomcat6.0
Tomcat6.0是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
数据库服务器:SqlServer201*
SQLServer201*是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。SQLServer201*数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。此外SQLServer201*结合了分析、报表、集成和通知功能。系统设计与实现系统整体设计
浏览者主要是对信息的显示、收集的工作,其中没有逻辑处理代码。
分为两类:用户和管理员,用户是指前端用户可见部分,注册用户和游客均可浏览,管理员部分仅是管理员账号可操作部分。此部分为jsp页面,页面大体设计如下:(图)
这是页面的总体框架设计情况,共划分了四个主区域:header,导航栏,main,bottom
Header包含页面头的部信息,各页面基本相同:header1,header2;其中导航栏部分又包含八部分;
Main包含部分比较多,因为导航栏的改变而改变;bottom包含页脚部分:bottom,bottom1,bottom2。
这样划分页面可以做到页面的复用性,提高了页面的灵活性。每个页面只需编写不同的小部分便可,减少了代码的重复、冗余。
控制器中的Form其实也是一种bean类,为Action服务,其中包含了相对应的Action中配置的页面的可收集内容,负责由ActionServlet将该页面请求中内容剥离放入Action配置的对应的Form中,然后作为参数传递给Action,所以Form中并没有实际的处理方法,只有一些对应页面的属性,和对应属性的getter/setter方法,如果有必要验证页面传来的参数是否合法可以重写validate()方法来实现对页面中属性的验证,验证不通过责由核心控制器返回到请求页面至客户端,由于本项目由Validator框架来实现的验证所以没有实现validate方法。只有对应
JAVAWEB课程设计报告-海贼王专柜
的getter/setter方法。
Action部分:此部分为中间组件,只是起到了调用逻辑的功能,接受到ActionServlet传来的参数后调用相应的Bean完成相应的逻辑。具体分类表如下:
ActionusershoppingLoginCheckServle逻辑方法接受到提交订单页面传来的请求,处理相应的逻辑,将客户的订单按提交得到的数据保存到库中并与对应的用户名关中。接受到客户登陆请求,并取出密码用户名,到库中校验,返回相应的操作(已注册予以登陆并取出相应的订单放入用户对象中、已注册但被冻结不予以登陆资格、未注册密码错误)销毁当前客户对应的Session,返回到主面该Action接受搜索引擎传递过来的请求,然后调用逻辑bean,将参数作为关键字在库中查找相对应的符合结果,将所有的结果返回到页面上进行显示。通过与数据库连接,查询用户信息LogoutServletPieceSearchServletCustomerDaoJDBCImplGoodsCatalogDaoJDBC通过与数据库连接,查询获取商品分类信息ImplGoodsDaoJDBCImpl通过与数据库连接,查询获取商品分类信息searchCatalog该Action接受请求后,调用逻辑bean查询该图书分类的所有有关书籍信息,返回到页面上GoodsCatalog获取商品详细信息ShoppingCartItemBuy:接受客户传来的请求,该请求中包含客户要放入购物车的书籍的id,然后搜索购物车中是否有该书籍,有则将书籍的数目+1,没有则实例一个item,数量为1,放入车中。Modify:提供了修改书籍数量的操作,按对应的item的id重新对车中的书籍数量遍历修改ShoppingCartClear:将购物车清空,并将session中信息清空Delete:接受用户要删除的书籍id,然后从车中将书籍删除
各功能的实现
搜索:通过的书名对库中的书籍进行查找,显示到客户端以下为搜索对应的Action代码:
publicclassPieceSearchServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");
JAVAWEB课程设计报告-海贼王专柜
Stringname=request.getParameter("goods");GoodsDaodao=newGoodsDaoJDBCImpl();Listgoods=dao.findGoodsByName(name);request.setAttribute("results",goods);RequestDispatcherdispatcher=request.getRequestDispatcher("piecesearch.jsp");dispatcher.forward(request,response);}}
本Action主要是从页面请求中取出书籍的检索关键字,然后交给后台dao.findGoodsByName(name)方法来查找,该方法返回一个linkedlist类型,其中包含了根据关键字检索到数目所有结果.然后返回到提交请求的页面.截图:
对用户的登陆、注册操作用户的登陆部分:(代码)
LoginCheckServlet的方法:packagecn.sdcet.onepiece.web;
importjava.io.IOException;importjava.io.PrintWriter;
importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;
importcn.sdcet.onepiece.dao.CustomerDao;
JAVAWEB课程设计报告-海贼王专柜
importcn.sdcet.onepiece.dao.jdbc.CustomerDaoJDBCImpl;importcn.sdcet.onepiece.domain.Customer;
publicclassLoginCheckServletextendsHttpServlet{
/**
*Constructoroftheobject.*/
publicLoginCheckServlet(){super();}
/**
*Destructionoftheservlet.*/
publicvoiddestroy(){super.destroy();//Justputs"destroy"stringinlog//Putyourcodehere}
/**
*ThedoGetmethodoftheservlet.*
*Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget.*
*@paramrequesttherequestsendbytheclienttotheserver*@paramresponsetheresponsesendbytheservertotheclient*@throwsServletExceptionifanerroroccurred*@throwsIOExceptionifanerroroccurred*/
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}
/**
*ThedoPostmethodoftheservlet.*
*Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost.*
*@paramrequesttherequestsendbytheclienttotheserver*@paramresponsetheresponsesendbytheservertotheclient*@throwsServletExceptionifanerroroccurred
JAVAWEB课程设计报告-海贼王专柜
*@throwsIOExceptionifanerroroccurred*/
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringname=request.getParameter("username");Stringpasswd=request.getParameter("password");CustomerDaodao=newCustomerDaoJDBCImpl();if(dao.hasMatchUser(name,passwd)){HttpSessionsession=request.getSession();Customercustomer=dao.findCustomerByName(name);session.setAttribute("user",customer);RequestDispatcherdispatcher=request.getRequestDispatcher("index.jsp");dispatcher.forward(request,response);}else{request.setAttribute("message","用户名或密码不正确");RequestDispatcherdispatcher=request.getRequestDispatcher("login.jsp");dispatcher.forward(request,response);}}}
jsp页面:用户登录
JAVAWEB课程设计报告-海贼王专柜
用户名:密码:
在这里是将客户登陆时传递过来的用户名、密码取出来调用Dbbean的方法来查找是否存在该用户,查找的时候先从管理员表里查找,然后再查找客户表,最后返回一个包含客户信息的Customer类事例,两表都不存在信息则返回一个简单的错误页面用户登录界面:
JAVAWEB课程设计报告-海贼王专柜
登录成功会跳转到首页
密码或用户名错误时会提示相应的提示信息:
登陆前截图:
登陆后截图:
JAVAWEB课程设计报告-海贼王专柜
登陆后可将书籍加入到购物车
加入购物车的Action对应的方法:publicclassShoppingCartItem{privateGoodsgoods;
privateintquantity;//购买数量
publicShoppingCartItem(Goodsgoods){this.goods=goods;this.quantity=1;}
publicShoppingCartItem(Goodsgoods,intquantity){this.goods=goods;this.quantity=quantity;}/**
*添加一个商品*/
publicvoidincrementQuantity(){this.quantity++;}/**
*减少一个商品*/
publicvoiddecrementQuantiry(){if(this.quantity>0){this.quantity--;}
9JAVAWEB课程设计报告-海贼王专柜
}publicGoodsgetGoods(){returngoods;}
publicvoidsetGoods(Goodsbook){this.goods=book;}
publicintgetQuantity(){returnquantity;}
publicvoidsetQuantity(intquantity){this.quantity=quantity;}
}该方法主要是接受页面传来的参数,封装成一个Item,然后从session中取出购物车(没有则实例一个),然后查看该车中是否包含该Item,有则Item的quantity的数量+1;
没有则将Item放入购物车中,最后后将购物车放回session中。返回到请求页面。此处为了防止刷新重复提交请求用到了Struts的Token机制(详细见代码)。截图(登陆后单击加入购物车连接,最后跳转到购物车页面):
查看购物车中现有书籍、对购物车中的书籍数量进行修改、清空购物车查看:此处代码省略,此处是从页面中循环遍历购物车,然后将Item还原为book在页面上打印出来即可。
修改:修改对应的Action方法:publicclassShoppingCart{
privateHashMapcarts=newHashMap();
10JAVAWEB课程设计报告-海贼王专柜
/**
*向购物车中增加一本书
*@parambook需要添加的图书*/
publicvoidadd(Goodsgoods){intid=goods.getGood_id();if(carts.containsKey(id)){//购物车中存在该条目,取出条目然后数量加1ShoppingCartItemitem=carts.get(id);item.incrementQuantity();}else{//购物车中不存在该条目,创建一个新的条目ShoppingCartItemitem=newShoppingCartItem(goods);carts.put(id,item);}}/**
*获取购物车的所有条目*@return购物车条目列表*/
publicListgetItems(){Listitems=ArrayList(carts.values());returnitems;}/**
*从购物车中删除一个条目
*@parambookId要删除图书的ID*/
publicvoiddeleteItem(intgoodsId){if(carts.containsKey(goodsId)){carts.remove(goodsId);}}/**
*修改图书的购买数量
*@parambookId要修改的图书Id*@paramnumber新的购买数量*/
publicvoidsetQuantity(intgoodsId,intnumber){
11newJAVAWEB课程设计报告-海贼王专柜
if(carts.containsKey(goodsId)){ShoppingCartItemitem=carts.get(goodsId);item.setQuantity(number);}}/**
*清空购物车*/
publicvoidclear(){carts.clear();}/**
*获取购物车中商品总价
*@return购物车中商品总价格*/
publicfloatgetPayment(){floattotal=0;Listitems=newArrayList(carts.values());for(ShoppingCartItemitem:items){total+=item.getGoods().getPrice()*item.getQuantity();}returntotal;}
}此处修改数量时提交请求是提交的车中所有的Item的数目(数组的形式),在该方法中取出数组,便利购物车中所有Item,将Item的数量修改,返回到客户端。
运行截图(以上为例,修改后截图):
点击生成订单,进行订单的提交,完善收信人信息:
JAVAWEB课程设计报告-海贼王专柜
总结与展望
经过两周的实习,本网站的建设基本完成,基本功能也能够正常使用,但是由于课程设计时间较短,所以该站点系统还有许多不尽如人意的地方,比如说功能不够丰富,没有对部分功能进行细化,管理员部分功能连接不能够实现,没有对strus框架进行应用,对数据的安全性考虑不多等,这些都有待改进。经过这次课程设计,我基本熟悉了网站开发的流程和基本技术,基本了解了小型项目的开发与设计,提高了自己的思考分析能力、设计能力,同时也提高了动手编码能力。参考文献
[1]柴大鹏.JavaWeb应用开发技术详解.北京:机械工业出版社,201*.2
友情提示:本文中关于《关于Javaweb课程设计的心得体会》给出的范例仅供您参考拓展思维使用,关于Javaweb课程设计的心得体会:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。