收藏 分销(赏)

网站设计及其实现.doc

上传人:精**** 文档编号:2425775 上传时间:2024-05-30 格式:DOC 页数:40 大小:2.05MB
下载 相关 举报
网站设计及其实现.doc_第1页
第1页 / 共40页
网站设计及其实现.doc_第2页
第2页 / 共40页
网站设计及其实现.doc_第3页
第3页 / 共40页
网站设计及其实现.doc_第4页
第4页 / 共40页
网站设计及其实现.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、 毕业论文(设计)XX网站设计和实现摘 要网络科学技术飞速发展,科技产品层出不穷,对于企业或企业,宣传自己理念及推广所开发产品是至关关键。假如大家想要在更短时间内,了解到更多相关科技产品信息,一个比较便捷方法便是经过网络来访问。xx网站设计,它将需求、产品销售和用户服务高度紧密结合在一起,大大提升了效率,方便用户了解及订购适宜软件来提升工作效率,使得用户和企业能够轻松交互。网站以jsp作为前台关键展示工具,使用MVC设计模式,根据工厂模式解耦,设计程序底层使用Hibernate持久层框架。Spring容器管理对象,Struts2结合jsp做前台展示,实现了产品公布和展示,新闻公布,企业精神理念

2、展示,留言意见反馈,用户实时咨询,后台管理等功效。关键词:系统;电子商务;游戏开发;软件开发AbstractNetwork science and technology rapid development, science and technology products emerge in endlessly, for enterprise or company, promote their own ideas and development of products is vital.If people want to be in a shorter period of time, to kn

3、ow more about information technology products, is a more convenient way to access through the network. Jinrun website design, it will demand product sales and customer service level closely unifies in together, greatly improving the efficiency, convenient customer to understand and order the right s

4、oftware to improve work efficiency, make customers interact with the companies can easily. Site with JSP as the front desk of the main display tool, using the MVC design pattern, according to the three layers of decoupling relationship.The underlying use Hibernate persistence layer framework, the Sp

5、ring container management object, struts 2 combined with JSP front-end display.Has realized the product distribution and display, press release, the concept of enterprise spirit, the message feedback, users real-time consultation, background management functions.Key words : System;Electronic commerc

6、e;The game development.Software development目 录1 引言11.1 研究背景11.2 研究意义22 网站系统相关技术及工具介绍32.1 服务器Tomcat7.0介绍32.2 JAVA语言32.3 MySQL42.4 Hibernate42.5 Spring框架52.6 MVC开发模式介绍53 需求分析及总体设计介绍73.1 需求分析73.2 项目架构83.3 系统工作原理93.4模型设计103.4.1控制层设计103.4.2业务层设计113.4.3工具类设计163.4.4持久层设计184 网站前台设计和实现204.1 首页设计204.2 产品展示214

7、.3新闻中心214.4 留言反馈界面展示224.5 其它界面展示235 网站后台设计和实现255.1 管理员登录255.2 后台主页255.3 新闻管理模块265.4 产品管理模块275.5 网站信息管理模块285.6 用户留言管理模块285.7 其它模块296 系统测试306.1 测试要求306.2 测试用例设计306.3 测试结论307 结论31谢辞32参考文件33XX网站设计和实现1 引 言1.1 研究背景现在,网络发展趋势已经商业化和全民普及趋势。世界上大部分企业企业全部是以营利为首要目标。在宣传推广上,就显得尤为关键。使用有效广告能够为我们带来高效益,比如在企业宣传,招聘职员信息公布

8、,网上销售等方面,网络给我们带来了很多方便。现在网络俨然已经成为了企业竞争关键战略手段。网站优势源于能够为企业提供一个舞台来展示自己、另一个好处表现在能为消费者愈加便捷提供一个了解企业路径。企业或企业能够经过网络平台,实时提供在线客服以供咨询。利用网络推广和宣传企业产品、实时公布部分要闻,用户需求提议也能够经过留言信息立即反馈给企业网站工作人员。网络普及,使得计算机走进了千家万户,社会各层人士取得了平等接触实时信息机会。利用这股发展趋势,各大企业在管理和销售上全部能使用到软件领域工具来进行便捷销售,便捷办公,解放一定劳动力。利用网站推广产品,推进行业发展,促进产品销售是一个很好方案,新促销形式

9、,和传统相比有很多优点:它降低产品成本;利用网络作为交互平台;改变传统人和人直接碰面交谈方法,能够降低交互交谈时受空间和时间限制;信息传输及公布更新愈加快速灵活,新技术产品信息上传后,能够立即得到推广和发觉,用户能够立即看到,对于满意产品,能够直接和客服人员交谈,从而大大提升了效率。网站关键功效是利用网站作为企业企业产品展示平台,将最新产品部分基础信息和相关新闻、企业现在概况等信息以网站形式公布到网络上,以供大家观看和借鉴。此次毕业设计课题是基于JSP设计企业网站系统,它产生背景源于武夷山市企业信息化建设。此设计更具实际研究意义,目标是综合所学知识和利用身边网络资源,锻炼动手实践能力,有利于提

10、升综合学习能力。顺利完成设计课题前提条件还需要很多课外知识补充,如MVC开发模式,目前流行J2EE框架,对XML等配置文件书写有一定了解等等。1.2 研究意义信息化技术飞速发展,科学技术一日千里,这推快了大家生活节奏。时间变得愈加宝贵。任何产品需要很好被使用,其著名度就至关关键。大家生活中更多接触便是电视、电脑、手机这些科技产品。那么对于软件领域研发出来科技产品,企业应该怎样对其推广宣传和销售。源于这一思索,设想假如各大企业企业能纷纷建立起属于自己企业网站,将最新产品和新闻实时公布更新,那么去推广一个网站相对来讲愈加省时省力,这是提升效率有效路径。企业建立网站,这么能够很好对外展示企业文化,是

11、企业实力一个表现方法。今天,各行各业竞争日趋猛烈,每个企业所面临关键任务是提升工作效率和工作质量。企业网站建立能够大量降低人力资源方面成本付出,突破了时间和空间限制,用户对产品具体了解能够在任何时间和地点进行,能够即时进行。有了展销产品网站平台,用户就不需要到实地去查询产品详情,能够借助网络平台联络销售员,经过远程体验,大大便捷了交易所带来时间问题。鉴于互联网很多优势和对中国外软件产品销售现实状况研究分析,我此次设计是开发一个集成了公布产品、公布新闻、服务咨询等功效于一体企业网站,以微小力量推进中国互联网发展。2 网站系统相关技术及工具介绍2.1 服务器Tomcat7.0介绍Tomcat由开源

12、小区研究开发,对编程爱好人员能够自由对Tomcat服务器进行学习和研究。因为它无偿和开源这些特征。Tomcat得到了极大推广,而且经过开源小区贡献,它性能也愈加强大,趋于完善。Tomcat是纯粹由java代码编写。它以小型、轻量级Web服务器特点被广泛推广利用并受人喜爱。在个人电脑上安装上服务器软件,个人PC电脑自然就成为了一个初具模型服务器,在中小型系统和并发访问量不多情况下能够被普遍地使用。在配置好Tomcat服务器电脑上,这么Tomcat就能够对HTML页面等用户发出访问请求进行响应1。我们将web应用程序布署到Tomcat服务器中,就能够实现在当地进行web应用程序调试运行。2.2 J

13、AVA语言Java以其面向对象优势和安卓市场被广大人群深知。因为Java被很流行推出,同时拥有世界上最大开源小区正在快速发展,对c+语言已经形成了强大冲击。Java能够处理部分复杂逻辑问题,将问题转化为面向对象思想去处理。Java语言由杰姆斯高斯林和她同事共同开发,工程正式开启于1995年。后期更名为Java,而且重新设计开发互联网应用。由Java编写出源代码,经虚拟机类加载器编译成字节码文件后,能够运行在不一样平台上。这么就脱离了java运行环境,只需要编译过一次,就能够四处运行2。Java有一个用户友好,贴近现实生活语法。这么语言含有着独特优势,拥有面向对象概念,稳定性,和平台独立性,安全

14、性,稳定性和支持多线程,动态等优良特征。因为Java多线程特征,处理器在不一样线程间快速切换。相比其它语言,如C+没有内置多线程机制,所以C+多线程就必需调用操作系统多线程功效来进行多线程程序设计。Java在软件编程语言设计中,不单能够应用于开发大型应用程序,而且在Internet应用开发方面也较为突出。Java不仅是一门现在大家大量使用编程语言,就现在所知道IT行业很多最新技术全部包含了java语言,java早已经被大家公认为当今世上最关键语言之一3。2.3 MySQL就现在数据分类来看,MySQL规模能够将其划分到中型数据库,它是由瑞典研发人员所研发,现在已经属于Oracle企业。MySQ

15、L是最流行关系数据库管理系统,MySQL在很多Web应用程序中是最好关系数据库管理系统4。MySQL特点就是高效灵活,它工作原理是将数据保留一张张表中,数据整体存放合理,结构优良。MySQL使用标准结构化查询语言、其软件体积小、反应速度快、成本低、开源,因为这些优势,尤其是小型和中型网站应用开发通常是以MySQL为首选。MySQL底层应用语言以C和C+为主,使用了多个编译器对其进行测试和不停改善,在移植性方面,mysql表现较为突出。多个操作系统对mysql全部支持,像通俗常见就有:Linux、Mac OS、Windows等操作系统。它还为为多个编程语言提供了API支持。比如Java、C+、C

16、和Tcl等,MySQL和这边编程全部能完美融合。另外MySQL对多线程处理方面也有部分优势,这么就能使得服务器CPU资源能够被充足利用起来。因为MySQL提供标准结构化查询语言、提供ODBC和JDBC等连接数据库方法,使其愈加便于管理、检验,在优化数据库操作方面也愈加便捷5。2.4 HibernateHibernate优点:对JDBC封装,简化了很多反复代码。对DAO层编码工作进行了简化,使开发能够集中精力关心业务逻辑。移植性好,它支持多个数据库,这么更换数据库时代码改变量就比较少。该框架没有实现任何接口,没有侵入性。是一个轻量级框架。Hibernate延迟加载:延迟加载特点是当一个对象或对象

17、属性查询时,该对象或属性临时不存在内存中,只有当程序真正使用到数据时,该数据才被加载到内存中6。优化Hibernate:1、在一对多关联关系中,应该从多一方维护。2、避免使用一对一,尽可能使用多对一关联关系。3、配置对象缓存,降低使用集合缓存。4、降低表字段,表关联不要怕多,二级缓存撑腰。Hibernate因为其简单学习成本,功效完备而且运行高效,受到开发人员喜爱。使用Hibernate自带查询语言HQL,能够使数据库操作方面愈加得心应手,处理很多开发上常见对数据库操作一系列繁琐问题,使程序员能够专注于处理业务逻辑问题7。2.5 Spring框架Spring是一个轻量级容器,默认很多服务是不自

18、动打开,需要手动配置来将其打开。学习Spring框架两个关键:IOC和AOP。内部关键是一个Bean工厂(Bean Factory),它提供和实现控制反转和依靠注入。另外Spring容器用于申明式事务,安全等服务应用8。Spring能够和目前流行框架集成,应用范围广泛,能够是B/S或C/S9。本网站系统采取注释方法来管理事务。从三层结构来看,Web层Struts2框架和Dao层Hibernate框架全部和其进行整合。Spring强大管理及代理等方法,使任何Java应用全部能够从Spring中受益10。其结构图2-1所表示:图2-1 Spring结构 2.6 MVC开发模式介绍MVC是企业级应用

19、开发中常见设计模式。它把项目架构进行分层设计,分为表现层、业务逻辑层、数据访问层。MVC即代表模型视图控制器。模型(Model)即为部分常见实体类,(如Person类实体),实体类关键用于封装数据。视图(View),通常见作数据显示。在J2EE中视图由jsp负责显示。控制器(Controller),用于协调M和V关系,也用作处理业务逻辑,在Struts2中就是Action类11。1、模型模型通常表示数据封装。在三层架构中,模型拥有较多处理任务。模型能为视图提供数据支持。因为模型代码能够被多个视图反复使用,这么能够降低代码反复性书写12。2、视图视图提供给用户使用,而且能够和之交互界面。在Web

20、应用早期,界面关键是由HTML做出简单显示,然而,在现在网络技术发展下,部分新技术出现,如XHTML,XMLXSL,WML这些标识语言和Web服务。MVC应用程序能够处理很多不一样返回结果视图13。3、控制器当用户请求数据,控制器做出响应处理,最终将数据进行封装,再交给jsp做显示。所以当你点击在JSP互动步骤时,控制器接收组件要求和决议模型呼叫建立负责处理传入请求,然后封装数据,确定该视图显示界面14。3 需求分析及总体设计介绍3.1 需求分析xx模型是经典网上产品展销实践中较为普遍商务企业B/S模式,其关键功效模块包含产品公布、新闻管理、留言反馈、业务咨询等基础功效。另外,此网站也将实现企

21、业网站系统后台管理,其中包含新增产品添加和修改信息、新闻相关处理功效等。本系统Web层框架,是基于现在流行SSH,前台采取JSP技术作为显示和交互,在网站设计和开发过程中,利用软件设计模式,做到尽可能削减体系功效模块间耦合。本网站系统前后台功效关系,图3-1所表示:图3-1 系统功效分析 前台(游客浏览)部分: 企业文化展示:显示企业精神理念,企业福利待遇等信息; 经营业务展示:显示企业经营范围内业务项目; 新闻显示:按最新更新展示新闻条目及具体; 产品显示:经过预览图片或产看具体方法查看产品具体信息; 留言反馈:经过表单填写提交对此网站和产品提议或意见。1. 后台(管理员管理)部分: 管理员

22、:管理员登录; 新闻管理:分页查看全部新闻,对新闻进行编辑、批量删除、添加新闻操作; 产品管理:按更新时间次序添加新产品、查看产品具体信息、编辑产品、删除产品信息; 网站基础信息管理:更新网站基础信息,企业理念精神及企业福利,地址和联络信息;3.2 项目架构 图3-2 项目架构 图3-2所表示,左边是项目工程三层架构。Dao层及其接口实现类,这两个包中类协调负责对数据库中数据进行存取操作。而domain包下存放是实体类,关键是为了对数据进行封装和携带数据。Service及其实现类在三层架构中关键是针对业务逻辑进行编写类。Beans.xml、Hibernate.cfg.xml和struts.xm

23、l这三个配置文件则是对应SSH框架。而jinrun.properties则是此web应用程序中用到一个自定义配置文件。右边是根目录结构,其下是JSP页面存放和样式控制文件等,比如CSS、js文件等。此次项目设计遵照MVC设计模式,利用Spring容器巧妙创建和管理类,遵照工厂设计模式对类进行解耦,根据三层架构进行设计和实现,层和层之间类功效明确,整体结构清楚,便于调试和管理。3.3 系统工作原理基于web网站系统是用户经过浏览器发送请求,依据HTTP协议,Tomcat服务器接收到用请求后,将依据配置文件为其分配是由哪种Servlet来处理。假如是访问以.do结尾URL地址,就交由Struts2

24、来处理,Struts2将依据配置文件为其分配对应Action来处理请求。Action类中对应方法将调用对应业务类方法去完成请求,由业务类调用dao方法来完成对数据库存取和访问。图3-3所表示:Spring将三层中全部类创建管理起来,包含控制层,业务层实现类和DAO层中类。图3-3 工作原理3.4模型设计3.4.1控制层设计在SSH框架组合下,控制层代码由struts2Action来充当,依据请求信息调用指定action类中方法来进行请求处理,和返回对应结果视图,由jsp将数据作为展示给用户。命名空间以/sys标识为后台包,以/cli标识对应前台,通常由网络上游客随机访问。在两大类对应包名下有对

25、应前台和后台模块很多Action类,代码以下:Struts2中前台配置: /WEB-INF/client/index.jsp /WEB-INF/client/business.jsp /WEB-INF/client/product.jsp /WEB-INF/client/promore.jsp /WEB-INF/client/news.jsp /WEB-INF/client/fullText.jsp 3.4.2业务层设计业务层由Struts2action类和部分实体类配合使用,关键是针对业务逻辑和数据封装,数据携带这些请求进行处理,然后返回结果视图,供页面做显示。业务层处理内容包含:企业软件产

26、品增删改查功效、新闻模块显示功效、留言和意见反馈功效、客服在线咨询等。1、 软件产品业务设计,灵感来自于部分企业门户网站,其思绪是:产品罗列,能够对产品具体信息查看,在产品查看过程中能够即时联络客服人员订购咨询或了解详情。下面是产品业务类实现部分代码:/ 后台-显示产品列表public String list() QueryBuilder queryBuilder = new QueryBuilder(Product.class);queryBuilder.addOrderProperty(updateTime, true);PageView pageView = productService

27、.getPageView(queryBuilder, getPage Num(request);request.setAttribute(Products, pageView);return list;/ 后台-添加产品public String add() String suffix = null;try suffix = product.getPicFileName().substring(product.getPicFileName().lastIndexOf(.);if (!.jpg.equalsIgnoreCase(suffix) this.addFieldError(msg, 格式

28、错误);return addUI; catch (Exception e) this.addFieldError(msg, 请选择产品图片);return addUI;/ 文件上传if (product.getPicFileName() != null) String tmpFileName = product.getPicFileName().substring(product.getPicFileName().lastIndexOf(/) + 1);String UUIDName = UUIDUitls.getUUID() + suffix;String savedPath = Servl

29、etActionContext.getServletContext().getRealPath(uploads);File savedFile = new File(savedPath, UUIDName);if (product.getPic() = null) this.addFieldError(warn, 请选择图片);return addUI;product.getPic().renameTo(savedFile);/ 添加统计到数据库product.setNewName(UUIDName);product.setOglName(tmpFileName);product.setUpd

30、ateTime(new Date();productBiz.save(pro);request.setAttribute(msg, 提醒:上传成功);return addUI;2、 留言反馈处理:首先对想要留言用户进行姓名规则校验、电话号码校验、邮箱规则校验,校验不经过(包含空)将不提交页面,当非空等检测经过以后,就提交表单,这么就能够从数据库中查看到经过检测用户留言,能够避免大量垃圾留言。3、 新闻展示业务:包含新闻条目,新闻公布时间根据更新时间排序,经过分页对新闻进行显示。新闻模块功效实现,是从数据库按页查出目前显示页新闻页集合信息,用list集合封装,然后借助ognl对其进行迭代操作并显

31、示。而在前台页面分页功效实现,则是由Action去获取每页大小数和所查看数据目前页码,动态拼凑hql语句,每次去数据库询出指定页码统计条数,进行封装到page实体,再将多个page实体封装成list集合,完成查询后将返回结果给页面进行迭代显示。下面为新闻模块部分代码:/ 新闻列表public String listNews() QueryBuilder queryBuilder = new QueryBuilder(News.class);queryBuilder.addOrderProperty(record, false);PageView pageView = newsService.g

32、etPageView(queryBuilder, getPageNum(request);request.setAttribute(news, pageView);return listNews;/ 批量删除新闻public String del() / 获取idsString sids = request.getParameterValues(News_ids);Integer ids = DataType.converterStringArray2IntegerArray(sids);if (ids != null) / 删除newsService.deleteSysProductsByI

33、ds(ids);return listAction;return null;/ 公布新闻public String addNews() / 非空判定-titleif (StringUtils.isBlank(news.getTitle() this.addFieldError(msg, 请填写文章标题);return addNewsUI;/ 假如是事纪-年份不能为空String suffix = null;if (News.EVENTS_VALUE.equals(news.getRemark() if (StringUtils.isBlank(news.getYear() this.addFi

34、eldError(msg, 请填写事纪年份);return addNewsUI; else / 假如是新闻,图片不能为空if (StringUtils.isBlank(news.getPicFileName() / 新闻有图片this.addFieldError(msg, 请选择新闻图片);return addNewsUI;/ 图片名不为空时候-验后缀名try suffix = news.getPicFileName().substring(news.getPicFileName().lastIndexOf(.);if (!.jpg.equalsIgnoreCase(suffix) this.

35、addFieldError(msg, 格式错误);return addNewsUI; catch (Exception e) this.addFieldError(msg, 请选择图片);return addNewsUI;/ 新闻公布者-验空if (StringUtils.isBlank(news.getName() this.addFieldError(msg, 请填写您身份);return addNewsUI;/ 新闻内容-验空if (StringUtils.isBlank(news.getContent() this.addFieldError(msg, 请填写文章内容);return

36、addNewsUI;/ 1依据remark判定新闻还是事纪if (News.EVENTS_VALUE.equals(news.getRemark() / 设置年份 -String temp = news.getYear().substring(0, 4);news.setYear(temp + ); / 2设置新闻公布时间,截取news.setPostTime(new Date();/ 3.新闻摘要截取if (news.getContent().length() 100) news.setDigest(news.getContent().substring(0, 99);/ 4.设置新闻图片上

37、传信息-图片上传if (StringUtils.isNotBlank(news.getPicFileName() / System.out.println(picForm.getPicFileName();String tmpFileName = news.getPicFileName().substring(news.getPicFileName().lastIndexOf(/) + 1);String UUIDName = UUIDUitls.getUUID() + suffix;String savedPath = ServletActionContext.getServletConte

38、xt().getRealPath(uploads);System.out.println(-新闻添加- + savedPath);File savedFile = new File(savedPath, UUIDName);/ 新闻必需要有图、事纪图片可有可无-以下判定不需要if (news.getPic() = null) this.addFieldError(warn, 请选择图片);return addNewsUI;news.getPic().renameTo(savedFile);/ 添加统计到数据库news.setNewName(UUIDName);news.setOglName(t

39、mpFileName);/ 4.其它信息保留newsService.save(news);request.setAttribute(msg, 提醒:文章公布成功);return addNewsUI;3.4.3工具类设计当设计程序在调用过程中将反复性调用部分方法或需要便捷提供调用时,这时候就需要将其抽取出来,封装成单独工具。这么就能够和业务无关而能够在任意层被单独使用。在此次设计中工具类方法有:CheckPrivalegeInterceptor.java类用于检测后台操作时,管理员是否是登录状态检测。DataType.java用于对web前台所获取到数据参数进行类型转换。MD5keyBean.j

40、ava则是用于对字符串进行加密使用,通常是对其成数据指纹摘要,是一串32位明文密码。而SessionUtils.java是针对登录用户能够设置服务器session存活时间或退出系统时将user从session中移除出去。UUIDUtil.java用于生成全球唯一id号。代码示例:1. DataType.javapublic class DataType public static Integer converterStringArray2IntegerArray(String sids) if (sids != null & sids.length 0) Integer ids = new I

41、ntegersids.length;for (int i = 0; i ids.length; i+) if (StringUtils.isNotBlank(sidsi) idsi = Integer.parseInt(sidsi);return ids;return null;public static Integer Str2Integer(String id)if (StringUtils.isNotBlank(id) return Integer.parseInt(id);return null;public static String Integer2Str(Integer id)if (id!=null) return id.toString();return null;2. SessionUtils.javapublic class SessionUtils public static void setSysUserToSession(HttpServletRequest request,User user) HttpSession session=request.getSession();if(user=null)return;session.se

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服