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