ImageVerifierCode 换一换
格式:DOCX , 页数:71 ,大小:605.08KB ,
资源ID:4369474      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4369474.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计报告基于Struts的网上书店.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

课程设计报告基于Struts的网上书店.docx

1、课程设计报告基于Struts的网上书店课程设计报告-基于Struts的网上书店Struts_BookStore一、 绪论1. 系统开发背景 本项目作为JAVA WEB开发技术课程的实习项目提出,希望通过网上书店电子商务网站的设计开发,提高使用JSP开发J2EE架构的电子商务网站(B/S结构)的能力;了解软件文档的相关标准和编写原则,训练并掌握软件各类文档写作的技巧。 21世纪初,随着计算机科学的发展,数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。个性化已逐渐成为当今Web应用的潮流。2. 网上书店系统现状 网上书店在我国刚起步,但发展很快。随着我国

2、互联网的更加普及和网上书店的更趋成熟,会有越来越大的消费群体,市场潜力会得到充分发挥。技术的进步对传统书店上网解决方案提出更严格的要求和挑战。为了保护传统书店的投资,书店上网解决方案应切合传统书店实际的需求和发展的趋向,使投入回报和管理效益最大化,传统书店在实施上网方案的之前,必须对一系列问题进行科学的论证,如书店上网的需求分析、书店上网总体规划、网上书店系统的功能和实施方案、网上书店的传播与推广、运行网上书店系统的软件和硬件配置、网上书店的管理系统和管理方法等等。3. 主要工作 本项目主要实现了两个大的基本功能:即1:用户的对图书的浏览、购买,2:管理员对用户、图书、订单的管理两部分。 用户

3、分为注册于非注册用户,区别是能否对书籍进行购买。 管理员可执行三种基本操作:对用户的查看、冻结;对图书的上传、修改;对订单的查看、执行、删除操作。二、 系统需求分析1. 系统功能需求 客户功能需求客户分为注册用户和非注册用户,客户的功能需求如下: 通过的书名对库中的书籍进行查找,显示到客户端 查看图书的排行榜、推荐、新书上架等推荐内容 对用户的登陆、注册操作 登陆后可将书籍加入到购物车 查看购物车中现有书籍、对购物车中的书籍数量进行修改、清空购物车 跳转到收银台进行结账,录入自己的详细信息(地址、联系方式、邮编等必须信息)进行订单的提交,保存到账户信息中以便下次登录查看 管理员功能需求管理员是

4、管理需求的应用人员,分配一个账号为此,可实现对前端信息的管理和后台信息的修改等,管理需求如下: 图书信息的维护:增加、修改、删除操作 用户信息的管理:对用户的信息的查看、冻结、删除等操作 订单管理:查看当前订单的状态、对订单执行发货操作、删除订单等操作2. 开发平台 集成开发环境:Myeclipse 7.5 简单而言,Myeclipse是Eclipse的一个插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错,而且6.0版本以后都不需要安装Eclipse了,7.0以后连服务器都不需配置安装了,它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功

5、能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。 Web应用服务器:Tomcat Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 数据库服务器:Sql Server 2005 S

6、QL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。此外 SQL Server 2005 结合了分析、报表、集成和通知功能。 框架:Struts Struts把servlet、jsp、自定义标签和信息资源管理整合到一个统一的框架中,这样方便了开发人员实现mvc模式,极大节省了时间,struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。 主要

7、技术 Struts是实现MVC模式的通用框架。它由四个主要部分组成,模型、视图、控制器和XML文件。模型通常由Java Bean或EJB组件实现(本项目由JavaBean实现),负责处理业务逻辑;视图包括一组JSP文件,这些文件主要由JSP标签或客户化标签构成,它简化了JSP页面的编码工作;在Struts框架中控制器主要包括ActionServlet类和Action类,ActionServlet是Struts的核心部件,它接受用户的Http请求,根据配置信息将请求转发给适当的Action对象,Action类负责调用模型的方法,并帮助控制应用程序的流程;Struts包括Web.xml和Strut

8、sconfig.xml两个配置文件,其中Web.xml是Web应用的发布描述文件,Strutsconfig.xml是与Struts相关的特殊信息配置的描述文件。 页面部分由Tiles框架动态包含组合而成,增加了页面的灵活性,提高了页面的复用性。 注册部分验证采用了两种验证方式:javascript客户端验证和Validtor框架服务端验证,javascript验证被灵活的运用到客户端,可以起到对用户输入文本格式的验证,Validator框架可以起到服务器端的验证,为了防止一些人直接通过编写http请求发送到服务端,保证了数据的安全、准确性。三、 系统设计与实现1. 系统整体设计下表中给出了St

9、rutsBookStore的各个组件,根据此表可以宏观上了解各个组建的大体功能( 中为后缀格式):用户表示层(View).jsp控制处理层(Controller)业务逻辑层(Model).javaActionForm.javaAction .java1.Guest:IndexBookCatalogBookInfo.jspNewBooks.jsp(*)OrderOrderDetailRegShopCartCheckOutSaleList2 Management:BookManagementModifyBookOrderManagemementManageOrderInfoUserManageme

10、ntUserInfoCheckOutFormLoginFormRegFormUploadBookFormsearchForm(*)searchuserForm(*)searchorderForm(*)cartForm(*)printForm(*)catalogForm(*)(*)为动态formBeanCheckOutActionloginActionlogoutActionModifyBookActionOrderManagementActionPrintBookActionRegActionsearchCatalogActionseatchEngineActionShopCartAction

11、UploadBookActionUserManagementActionChangeLanguageActionBookBookCatalogCustomerFilUpLoadItemOrderPagerShopCartUserDbconn (interface)DBconnimpforJDBC过滤器(Filter): SetCharacterEncodingFilter资源文件(message-resources): ApplicationResources.properties(默认-英文) ApplicationResources_en.properties(英文) Applicatio

12、nResources_zh.properties(中文) Struts大体工作流程: 系统用例:该用例说明了系统的参与者与所能观察到的系统功能的模型图,呈现了一些参与 者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。 View层主要是对信息的显示、收集的工作,其中没有逻辑处理代码。分为两类Guest和Management,Guest是指前端用户可见部分,注册用户和游客均可浏览,Management部分仅是管理员账号可操作部分。此部分为jsp页面,其中应用了tiles框架来动态组合页面,页面大体设计如下:这是页面的总体框架设计情况,共划分了四个主区域:header

13、,left,main,footerHeader包含页面头的部信息,各页面基本相同。 其中left部分又包含三部分:login,message(*),vote(*),Main包含部分比较多,包含searchEngine,maincontent;Maincontent又划分为两部分:mainView ,Rightpart(*).Footer包含页脚部分。 这样划分页面可以做到页面的复用性,提高了页面的灵活性。每个页面只需编写不同的小部分便可,减少了代码的重复、冗余。 控制器中的Form其实也是一种bean类,为Action服务,其中包含了相对应的Action中配置的页面的可收集内容,负责由Acti

14、onServlet将该页面请求中内容剥离放入Action配置的对应的Form中,然后作为参数传递给Action,所以Form中并没有实际的处理方法,只有一些对应页面的属性,和对应属性的getter/setter方法,如果有必要验证页面传来的参数是否合法可以重写validate()方法来实现对页面中属性的验证,验证不通过责由核心控制器返回到请求页面至客户端,由于本项目由Validator框架来实现的验证所以没有实现validate方法。只有对应的getter/setter方法。 Action部分:此部分为中间组件,只是起到了调用逻辑的功能,接受到ActionServlet传来的参数后调用相应的B

15、ean 完成相应的逻辑。具体分类表如下: Action逻辑方法CheckOutAction接受到提交订单页面传来的请求,处理相应的逻辑,将客户的订单按提交得到的数据保存到库中并与对应的用户名关中。loginAction接受到客户登陆请求,并取出密码用户名,到库中校验,返回相应的操作(已注册予以登陆并取出相应的订单放入用户对象中、已注册但被冻结不予以登陆资格、未注册密码错误)logoutAction销毁当前客户对应的Session,返回到主面ModifyBookActionsearch:接受到用户提交修改书籍请求,并取出相应的书籍id,从库中取出书籍信息,返回到页面中。modify:接受用户提交

16、的书籍修改后的内容,将其更新到库中。OrderManagementAction提供了分页功能,分为三个方法:初始化页面,上下翻页,按关键词检索订单,然后返回相应的信息(包含适合页面大小的、符合请求的内容)PrintBookAction该Action接受一个id参数,然后调用逻辑搜寻该id的书的详细信息,然后返回到BookInfo.jsp上。RegAction该页面提供用户注册,接受用户注册的所有信息,然后调用逻辑处理bean将信息存放到库中,完成注册返回到登陆页面searchCatalogAction该Action接受请求后,调用逻辑bean查询该图书分类的所有有关书籍信息,返回到页面上sea

17、tchEngineAction该Action接受搜索引擎传递过来的请求,然后调用逻辑bean,将参数作为关键字在库中查找相对应的符合结果,将所有的结果返回到页面上进行显示。ShopCartActionBuy:接受客户传来的请求,该请求中包含客户要放入购物车的书籍的id,然后搜索购物车中是否有该书籍,有则将书籍的数目+1,没有则实例一个item,数量为1,放入车中。Modify:提供了修改书籍数量的操作,按对应的item的id重新对车中的书籍数量遍历修改Clear:将购物车清空,并将session中信息清空Delete:接受用户要删除的书籍id,然后从车中将书籍删除UploadBookActio

18、n进行书籍的上传,接受书籍的详细信息,包括图片等,然后将书籍存入库中,返回状态值到页面上。UserManagementAction该Action功能于OrderManagementAction功能有大致相似性,提供了初始化页面、上下翻页、查找用户、冻结/解冻用户等几个功能。ChangeLanguageAction进行页面的语言的转换支持中文-英文, 业务逻辑部分提供了一些实体类用来表示客观存在的事物,还包括一些业务逻辑处理类,具体解释如下表:Model相关介绍Book封装了实体书籍的详细信息,便于操作BookCatalog表示库中书籍的分类信息Customer客户在浏览网站时所持有的身份证明,

19、包含客户的一些状态信息FilUpLoad实现了文件的上传,受UploadBookAction的调用Item代表书籍和购物车的一种关联Order表示用户的订单Pager提供分页支持,封装了当前页面的信息。ShopCart代表虚拟的购物车,其中包含所有的客户购买的itemUser封装注册后的用户信息,便于管理员存取操作Dbconn (interface)借口,定义了所有与数据库有关的操作DBconnimpforJDBC实现了,dbconn接口中的方法.2. 各功能的实现a) 搜索:通过的书名对库中的书籍进行查找,显示到客户端以下为搜索对应的Action代码:public class searchE

20、ngineAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception /取值方法有两种:如下:/ DynaActionForm searchForm=(DynaActionForm)form;/ String bookkey = (String)searchForm.get(bookkey);String bookkey =

21、(String)PropertyUtils.getSimpleProperty(form, bookkey); DBconn db=new DBconnimpforJDBC(); LinkedList books = db.SearchBookByName(bookkey); request.setAttribute(books,books); String returnString = request.getParameter(page);request.setAttribute(nowbookcatalog, new BookCatalog(1,bookkey,NO); if(return

22、String.startsWith(/searchCatalog.do) returnString= new String(BookCatalog); return mapping.findForward(returnString); 本Action主要是从页面请求中取出书籍的检索关键字,然后交给后台db.SearchBookByName(bookkey)方法来查找,该方法返回一个linkedlist类型,其中包含了根据关键字检索到数目所有结果.然后返回到提交请求的页面.截图:b) 查看图书的排行榜、推荐、新书上架等推荐内容 此处只是各个页面中直接调用DBbean来查找一些满足条件(排行榜、推

23、荐、新书上架等)的表数据,封装成书籍,然后打印到相对应的部分中,就不具体说明实现方法了。截图(仅一例其他类似):c) 对用户的登陆、注册操作用户的登陆部分:(代码) loginAction的execute方法:public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception LoginForm loginForm =(LoginForm)form; HttpSession s

24、ession; String password=loginForm.getPassword(); String username=loginForm.getUsername(); db=new DBconnimpforJDBC(); if(db.CheckManage(username, password) session=request.getSession(); Customer customer=new Customer(); customer.setName(username); customer.setLimit(1); session.setAttribute(customer,

25、customer); return mapping.findForward(Manager); else if(db.CheckUser(username, password)!=null) session=request.getSession(); Customer customer=db.CheckUser(username, password); customer.setName(username); if(customer.getState()=0) PrintWriter writer=response.getWriter(); writer.write(Sorry, your ac

26、count has been frozen!You can visit the website only.return Index.Change another username login again.); return null; /将用户的库中订单信息从库中取到用户当前身份中! customer = db.SearchOrder(customer); session.setAttribute(customer, customer); return mapping.findForward(request.getParameter(page); /取出page来源,返回到登陆时所在页面 Pr

27、intWriter writer=response.getWriter(); writer.write(Sorry!Login failed!Please check your password and username.return Index.login again.); return null; jsp页面: 在这里是将客户登陆时传递过来的用户名、密码取出来调用Dbbean的方法来查找是否存在该用户,查找的时候先从管理员表里查找,然后再查找客户表,最后返回一个包含客户信息的Customer 类事例,两表都不存在信息则返回一个简单的错误页面登陆前截图:登陆后截图:用户的注册部分:(代码)p

28、ublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception String target=null; DBconn db=new DBconnimpforJDBC(); RegForm regForm=(RegForm)form; Customer customer=new Customer(); if(db.RegisterUser(regForm.getUsername

29、(), regForm.getPassword(), regForm.getEmail(), regForm.getAddress() customer.setName(regForm.getUsername(); request.getSession().setAttribute(customer, customer); target=/Index.jsp; else PrintWriter pt=response.getWriter(); pt.write(Sorry,failed to register,please: + Register again! + Just watch it!); return mapping.findForward(target); 在这里将用户注册时填写的信息取出来传递给Dbb

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1