版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于SpringBoot的北海旅游网站设计摘要近几年,随着网络技术的飞速发展,网络技术不仅在许多领域得到了广泛的应用,还开发了越来越多的网络应用。在这之中网站的建设就是重要之一的开发。网站作为一种交流沟通的工具,人们通过网站可以发布他们想要发布的信息,或者通过网页浏览器来进入网站以获取他们想要得到的信息。通过展示网页,网站可以简洁明了地向用户展示他们所要得到的信息。随着现在经济的发展迅速,旅游已经成为现代人必不可缺的一种娱乐休闲的方式。国务院早在2007年就已经提出,要做到以小康社会建设为目标和消费结构转型升级的要求,对面向民生的服务业进行大力发展,像文化、体育、旅游和休闲娱乐等。旅游介绍和网站的相互结合可以让用户在足不出户的情况下提前规划好游玩线路和了解风景优美的旅游地方。旅游介绍网站对于那些喜欢旅游的人来说是必不可少的。旅游介绍网站搭建的需要框架是目前在web开发上比较主流的SpringBoot以及Thymeleaf组合框架,具有小巧灵活、配置简便,以及开发周期短和Html标签模板等优势,整个开发项目是基于Java编程语言。这样的技术选型能解决掉一般项目里搭建网站的劣势,例如成本大、投入高、长周期开发等问题,同时也能作为大多数初创公司的良好底层技术框架。在开发完毕之后,可以供无开发技能的运营人员使用。关键词:Springboot;Thymeleaf;Html目录TOC\o"1-2"\h\u11658第一章绪论 1269481.1课题背景以及意义 1221631.2国内外SpringBoot发展趋势 1295381.3本论文的主要工作 2236011.4本论文的结构安排 2234931.5本章小结 32037第二章相关工具与框架 4142902.1相关工具介绍 4111072.2相关框架介绍 597042.3本章小结 623200第三章系统需求分析 791693.1可行性分析 7219203.2用户需求分析 735173.3软件需求 8234793.4本章小结 1012811第四章系统总体设计 11175894.1系统总体模块设计 1121624.2业务平台架构设计 11215034.3部署架构设计 11202864.4数据库设计 1274844.5本章小结 1310182第五章系统详细设计与实现 14203615.1主体架构细化以及实现 14213205.2后台管理网站的设计与实现 1590585.3页面的设计与实现 18316815.4本章小结 2618578第六章实现效果 2742296.1后台管理网站测试 27237896.2浏览门户网站测试 29155226.3本章小结 3231143第七章总结与展望 33279917.1总结 3352457.2展望 3320762参考文献 34第一章绪论1.1课题背景以及意义北海是一个沿海对外开放城市,包含着丰富的海洋资源以及美丽的海滨风景。北海当地的空气十分清新,俨然让这座城市成为了一座氧吧,也因此这里并不适合重工业发展。近年来,北海当地政府也十分关注着如何把北海的旅游产业文化壮大做强,另一方面也扶持着北海的旅游产业在税收政策。丰盛的文化积淀,现代元素与传统文化底蕴的相互作用下,北海当地的旅游业展现出了得天独厚的资源优势。北海市管辖下的合浦县城,自秦代汉代至今,都是我国南方的重要港口,同时也是古代丝绸之路的海上路线始发港口之一,也是如此,它是一座历史悠久的古城。北海目前的热门旅游景点包括:合浦汉墓群、北海旧街、北海银滩、北海旧街等。自从北海被评为国家旅游城市以来,旅游产业被政府大力扶持,得到了强力的发展,但出力点并不是在旅游景点上,而是酒店的服务业发展上。当前北海的经济发展仍旧是稍微落后的,发展旅游业与海洋渔业仍然是拉动经济社会发展的重要手段,因此想要北海人民的生活水平有所提高从而利用消费拉动国民经济,就必须加大发展旅游业与实体经济的力度。为了符合新时代旅游宣传的要求,使用新型技术构建一个旅游宣传网站显得尤为重要。对北海的旅游地点进行了解,对旅游的地点进行浏览并拍摄一些网站需要用到的照片,对当地的人们或者网上搜索了解相关景区的历史文化。设计网页功能模块,设计好网页的外观。广西北海旅游攻略网站主要目的是给游客浏览北海旅游景点,阅览景点相关历史。给游客推荐旅游线路。利用网络信息传递的方便快捷吸引游客游玩。设计网站大概框架,比如首页、北海历史、旅游地点、旅游地点推荐和特色美食推荐等。北海旅游攻略网站架构运用的结构为B/S结构,用户通过浏览器对北海旅游攻略网站进行访问。1.2国内外SpringBoot发展趋势SpringBoot出现在开源社会之后,就引起了开发界的广泛关注,首先是个人的使用,然后逐渐到了公司也开始慢慢地采用了这个开源软件,并且开始喜欢上它。但在国内,直至二零一六年,SpringBoot才慢慢被个人开发者以及公司注重起来,这期间有很多开发者都在研究并发表了不少关于SpringBoot的使用心得。与此同时,还有一些企业在公司内部开展了对于SpringBoot在web开发商的应用实验,并把经验分享到了网络上与众多开发者进行了沟通交流。从2016年到2021年,越来越多的企业和个人开发者使用起SpringBoot,这里我们可以通过百度指数(见图1-1)可以观察得出来。图1-1SpringBoot的百度指数1.3本论文的主要工作本课题的主要研究内容如下:使用SpringBoot框架构建网站的后端核心。使用MyBatis3持久层框架,定制化SQL、编写存储过程以及数据实体高级映射。使用Thymeleaf模板引擎、jQuery、Bootstrap编写前端页面(4)使用Log4j2框架记录项目运行日志。(5)使用ApacheShiro1.6框架实现管理后台的身份验证、授权。核心的研究任务主要在于如何构建管理后台管理游客浏览门户网站。管理后台主要负责页面内容的文章编辑、资源上传与管理、模板编辑与管理、权限授权;游客浏览门户网站包括北海历史与文化、热门景点、旅游绿路线推荐、特色美食、游客留言的内容,这些内容需要一一从网上或者书籍里收集并整理。采用实验验证法,落实好每一步骤的工作。1.4本论文的结构安排该论文一共有七个章节,主要介绍北海旅游网站的详细设计与功能实现的过程。第一章主要是介绍北海旅游网站的背景以及意义,还有国内外的SpringBoot的发展趋势和论文的主要工作与安排。第二章是项目相关的工具与框架介绍。包括数据处理的MySQL与Redis、springboot框架、Mybatis框架等,为后续的北海网站开发打下了技术基础。第三章是北海网站系统开发进行需求与分析。对网站进行可行性、需求等分析,明确网站设计思路。第四章是系统总体的设计,以及项目的架构设计、还有数据的设计,为接下来的项目的具体实现打好基础。第五章是北海网站的功能实现方法、整体功能设计逐步完成了对北海网站的开发。第六章是对系统进行测试。第七章是对该论文以及设计的网站的总结与展望,完成的课题研究的目的以及认识到自身的技术不足。1.5本章小结本章主要讲述了该课题项目的课题背景以及意义,阐述了一下北海的历史,旅游业对北海的重要性,还有对北海旅游业的看法和北海旅游业的发展依赖取决于政府宣传。还讲了国内外的SpringBoot发展趋势,从数据中分析这以技术框架在国内外的web开发领域的重要性。以及本论文的主要工作以及本论文的结果安排。第二章相关工具与框架2.1相关工具介绍本项目系统使用的是比较流行的构建Java-web应用的技术与工具,其中大部分为构建后端的技术与工具。2.1.1IDEA开发工具介绍IDEA是一个给java项目的使用者使用的集成环境。许多java开发者都觉得它是最好用的开发工具。其具有以下的特点:代码提示、支持JavaEE、代码助手等。在众多集成开发工具中,它最值得称赞的点在于GUI界面的设计,可以说是超常的。2.1.2Mysql关系型数据库介绍MySql是关系型数据库系统,是最受开发者欢迎的数据库系统之一。MySql具有良好地性能,能提供大量数据的操作,性能强悍。在商用上,还是当前最好用的RDBMS管理系统之一。与大多数关系式数据库系统一样,MySql将数据存储在不同的表之中,这提高了速度和灵活性,而不是将全部的数据都放置在某个大表之中。MySql所使用的SQL语言,是当前最普遍的标准化编程语言,用于访问数据库。由于MySQL数据库具有速度快、体积小等优点,在许多行业中有着多种应用,许多网站都将其作为自己的开发数据库。2.1.3Redis非关系型数据库介绍Redis是一个存储系统,存储以键值对为形式的数据。可以存储很多不同的value类型,比如哈希、字符串等。在Redis上进行操作,提供推数据、拉数据、添加、移除、取交集、并集,以及差集等一系列数据操作。在Redis上关于数据的操作都是基于原子性的,正因如此,其允许多种多样的排序函数进行排序。在Redis上的数据操作效率十分之高,因为数据是以缓存的方式存储在内存之中的。Redis还有一种重要的保存数据策略,就是中从同步,在实际的操作上看,就是会定期地往一个额外的记录文件中写入需要修改的操作,又或者往磁盘里写进更新好的数据。作为高性能数据系统,redis的出现,相当程度上解决了一般缓存类存储系统存放键值对数据的缺点,并且在某些场景下还能给关系数据库提供不可获取的加强作用。Redis的主从同步功能,展开到实际操作上来讲,就是以主服务器为中心,往其他分支的从服务器上同步数据。如此的操作带来的益处是Redis可实现单层树拷贝,在存储数据时,可按照需要随时地操作数据。2.2相关框架介绍2.2.1SpringBoot框架介绍Spring是用Java编程语言编写的一个开源应用框架,其主要的核心特性是两个:依赖注入、控制反转。Spring在Java应用中常常受开发者的重视,获得了大量的青睐,是因为其框架自身是比较自由的对于一般的编程模型来说,甚至后期还能为成为EJB模型的平替方案。Spring框架可为Java开发者提供多种多样的Solution,统合各种五花八门的持久化技术用来管控数据的访问,利用控制反转的重要特性,并使用依赖注入来实例化管理对象,同时根据对象生命周期来使用容器管理。Spring还供给了开发人员许多优化的web框架。利用控制反转的特性,Spring框架允许开发人员轻松地维护和测试项目,在此基础上,一个对象被通过使用Java的反射机制来管理和分配的好方案就此诞生。对象的生命周期可以通过Spring框架的容器来管理,并通过扫描类上的Java注释或者XML文件进行配置,另一方面,开发者可以通过依赖注入信息或者搜索信息来获取对象。另一个Spring框架值得称赞的点就是切面编程AOP框架,改框架的设计模式是代理模式。SpringBoot的基础框架设计理念是Spring4的结构,既采用优化配置的形式去简化Java应用的结构构建和构建流程,同时继承了Spring框架的优秀功能。更进一步地说,SpringBoot更是统合了许多框架来减少Jar包之间的版号冲突,大大缓解了引用Jar包的不稳定性。2.2.2Mybatis框架介绍作为持久层框架MyBatis,它支持SQL定制化、存储过程以及高级映射。Mybatis之所以能把接口和Java的Pojo对象映射为数据库中的Record,是因为其能简化XML或者注解去映射或者配置初代数据。MyBatis框架本身就是小巧和简便的,不仅仅不需要依赖第三方,而且安装也不繁琐,安装两个jar包,以及对一些Sql映射文件进行配置就可以使用了。不仅如此,还可以清晰地学习到其中的设计思想与付诸实践,通过源码和文件。在MyBatis的编写规范是,是将Sql语句写进XML文件中的,在管理数据上具有优秀的统一性,因此可以实现多种数据库的需求以sql语言的方式。MyBatis通过建立DAO层,分开数据访问和业务之间的访问逻辑,因此达到了剔除计算机程序和sql之间的耦合,让设计的系统变得清楚,维护简易,方便单元测试。分离代码和数据库语言,可维护性大大地增加了。同时,MyBatis允许对象和数据库之间的对象关联映射,组建维护在支持的对象之间。2.2.3Thymeleaf框架介绍Thymeleaf作为一个流行的Java模板引擎,可以在独立的环境或者网页中被应用,能解析Html、XML,或者是处理JavaScript、CSS,甚至是纯文字。建造一个高效而高级得可维护的模板建造方案,这是Thymeleaf的首要目标。一定要一自然模板的设计概念作为基准,还要运用逻辑形式嵌入到模板之中,才能完成这个首要目标,但是要说明的是,这样的做法不会破坏自然模板被作为设计的理念。Thymeleaf作为目前主流的Java模板引擎,可以用浏览器解析。在被解析的时候,Thymeleaf的标签属性没有定义的就会被浏览器无视掉,用来显示模板的静态页面成效。2.2.4JQuery框架介绍JQuery是一个JavaScript框架,开发快捷、设计简单,是一个非常强大且优雅的JavaSctrip框架。于二零零六年被约翰开发出来。“WriteLess,DoMore”是JQuery的高级设计概念,意味着提倡少编码,多做事的方法。JavaScript给出了一种简捷高效的设计理念,在文件操作、处理事件、设计动画,还有交互Ajax的方面上具有优势。此外,JQuery有一个优势点,那就是拥有着很多的已完善的插件,可供开发者们选择,以及非常详尽地描述各类应用,并且拥有着非常全面的说明文档。JQuery可以将开发者的前端页面内容和代码进行高度分离,这就意味着只要定义id就行,而不需要在Html页面里使用一些js的命令来进行调用了。2.2.5Bootstrap框架介绍Bootstrap框架是由美利坚共和国的推特公司设计师马克·奥特编写的简洁、强力的前端界面框架,是基于H5编程语言开发的。Bootstrap框架能让前端开发变得更迅速有效,不仅如此,Bootstrap还建立了优秀的Html和CSS准则,同样是基于动态CSS编程语言和Less编程语言开发的。Bootstrap诞生之后就受大量的开发者的青睐,一度登上了著名开源社区Github的热榜项目。2.3本章小结该章节是对设计北海网站的开发工具与框架的介绍,包括开发工具idea、处理数据的MySQL与redis数据库以及springboot框架等。为后续的网站开发提供技术支持。第三章系统需求分析3.1可行性分析对整个项目进行可行性分析,有利于对项目的深度理解与开发,预知风险和控制成本。3.1.1技术可行性该项目是偏主流的web开发项目,所采用的技术机构是SpringBoot的java架构,能够解决大多数web开发的后端开发问题,很多功能开箱即用,给开发者带来极大便利。项目的前端部分的技术则是沿用了Html语言的开发。SSM架构是为比较普遍的MVC开发模式。3.1.2经济可行性该项目的使用者是宣传北海旅游页的自发爱好者,面向想要了解北海旅游的游客,项目的使用环境是面向互联网的大众,项目周期大概是在5至6个月,不需要购买额外的组件,所用软件皆为开源或者免费,开发成本仅是时间成本,该项目是公益项目,无经济利益成分。3.1.3社会(操作)可行性该项目上线之后,和大多数的旅游推荐网站一样,是免费提供旅游相关信息给浏览的游客,是一个公开的门户网站,符合国内网站的监管要求,游客无需同意任何网站浏览协议。3.2用户需求分析3.2.1系统需求概述该项目需要两大部分,一部分是面向游客的浏览门户网站,另一部分是给网站的管理人员对门户网站进行管理的管理后台。浏览门户网站,需要提供一个首页、以及多个分项栏目,详细地提供关于旅游的相关信息,包括北海历史与文化栏目、热门景点栏目、旅游路线推荐栏目、特色美食栏目、游客留言栏目。管理后台则提供栏目/文章管理、附件管理、表单模型、模板管理、变量管理、系统管理。3.2.2需求用例分析旅游推荐网站的门户面向的是一般的网上访问者,即无权限的高低之分,是门户网站的直接浏览者。用户用例如图3-1所示。图3-1用户的用例图管理后台负责管理门户网站,是提供给网站管理者的,可分不同的管理权限,管理的内容包括文章编辑、模板管理、权限管理。管理者用例如图3-2所示。图3-2管理者的用例图3.3软件需求定位明确,思考换位。旅游推荐景点网站必须明确自己的定位,到底是做怎样的旅游推荐形式,是门户型网站或者是景区型网站,而主要的业务是有代表性的业务或者是综合型业务,还要考虑消费群众主要集中在那个年龄段。只有通过了解游客的需求和期望,为游客考虑。才能明确定位,选择合适的模式,实现更多的访问和阅读量。合理布局页面,干净且整洁,游客点击进来页面首先会看到的是首页,接着是看到分栏里的内容,因此,第一印象是很重要的。优秀的首页必须看中清晰的图片还有符合人体视觉习惯的色彩,搭配上不同的色彩来配合主题构建旅游网站模板这点就至关重要了。还有顶部的分栏内容内容、搜索框、精致的Logo标志,这些都要十分讲究,不能随随便便地揉在一块。如果要减少部分内容对主体的影响,可以利用透明色作为搭配。网站顶头的导航栏应该包括部分基本内容,也可以做适当的增加或者减少,基于不同的主题,在设计旅游网站模板时考虑上这一点。搜索框的作用非常重要,其在导航栏的分类下能构建与全部页面资源的联系,尤其是当用户无法明确表达出自己想要看到的内容时。浏览门户是游客访问式的,即直接访问的,无须登录。浏览门户展示的内容包括首页、北海历史与文化、热门景点、旅游路线推荐、特色美食、游客留言。每个栏目的内容都是由文章模板构建,即HTML和模板标签。这些文章内容的编辑都在管理后台完成,由管理员来管理,可分为不同权限等级的人员来管理。整个页面内容的结构是瀑布式的,由上往下排版,每个文章内容都是模块化的,有垂直式和方格式的。浏览门户的功能结构图如图3-3所示。图3-3浏览门户的功能结构图旅游推荐的门户网站所需要的内容分析好了之后,接下来就是设计管理后台了。管理后台负责对门户网站的管理,以及对管理员权限的设计,是整个项目中最重要也是最难的部分。管理后台的设计一定要清晰明了,让管理人员能够清楚地知道各个操作的作用与细节,方便网站门户的管理。在编辑文章内容时,要提供便利的页面操作与修改,文字与图片资源的存放要合理。模板的编辑与添加要灵活,方便管理者设计出多样化的模板。管理后台的内容有栏目/文章管理、资源管理、表单模型、模板管理、系统管理。栏目/文章管理包括栏目名称、简称的编辑,每个文章都要选择一个模板类型,配备有栏目描述、栏目内容,也就是游客在门户直接能看到的内容。内容的编辑提供HTML的语言编写方式,懂技术的人员可以直接编写HTML页面内容,不懂技术的人员也可直接在上面编写文字与粘贴图片。资源管理可上传一些资料附件,然后以标签的形式写入到页面中,供游客点击下载。表单模型就是文章的数据结构类型,可自行添加、修改、删除字段。模板管理就是文章页面的内容结构,可编辑与添加、删除。管理后台的功能结构图如图3-4所示。图3-4管理后台的功能结构图3.4本章小结本章介绍了对北海网站的开发需求与分析,确认北海网站的总设计思路,为接下来的功能实现打下基础。第四章系统总体设计4.1系统总体模块设计该项目的总体设计分为浏览门户的设计,以及管理后台的设计。这两个部分都会从系统总体模块设计、业务平台价格设计两点出发去考虑,达到项目的合理开发。4.2业务平台架构设计依据对旅游推荐网站的需求分析,设计整个项目的系统框架(见图4-3)。系统的核心底层框架是SpringBoot2.x和SSM,在此基础上构建java-web项目。SpringBoot2.x是较新的SpringBoot版本,仍旧采用JDK8的开发环境。SSM框架集由Spring、MyBatis两个开源框架整合而成,通常作为数据源较为简单的web项目的框架。系统的安全框架是使用ApacheShiro1.6,是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。系统的管理后台包括静态资源、主题、模板引擎Thymeleaf、模块、其他部分。系统的前端部分,即页面模板,由HTML和模板标签组成。数据库系统采用的是MySql,数据表的设计遵循单模块单表。整个系统涉及到的编程语言有Java、JavaScript、Sql。图4-3系统架构图4.3部署架构设计项目的部署,这里将采用模拟服务器的形式,利用windows系统来部署项目,以及各种中间件。主体项目是用软件IDEA来部署java项目,数据库软件mysql和redis则是直接安装在windows本地,然后启动。部署结构如图4-4所示。图4-4部署架构图4.4数据库设计4.4.1数据库实体联系(E-R)模型本项目主要的数据库实体联系(见图4-5)是管理员与栏目、文章之间的联系。管理员可以有多个,去管理多个栏目,也可以管理多个文章。图4-5数据库实体联系图4.4.2数据库物理设计首先是管理员表结构,主要的字段有类型为varchar以及长度为32的用户编号、类型为varchar以及长度为32的用户名、类型为varchar以及长度为32的密码、类型为varchar以及长度为32的真实姓名.如表4-1所示。表4-1管理员表字段说明字段名数据类型(长度)是否为空备注用户编号idvarchar(32)否主键用户名usernamevarchar(32)否密码passwordvarchar(32)否真实姓名realnamevarchar(32)否然后是栏目表结构,主要的字段有类型为varchar以及长度为32的栏目编号、类型为varchar以及长度为128的栏目名称、类型为text以及长度不限的栏目内容、类型为varchar以及长度为32的栏目模型、类型为varchar以及长度为128的栏目列表。如表4-2所示。表4-2栏目表字段说明字段名数据类型(长度)是否为空备注栏目编号idvarchar(32)否主键栏目名称cnnamevarchar(128)否栏目内容html_contenttext否栏目模型article_tempvarchar(32)否栏目列表list_tempvarchar(128)否最后是文章表,主要字段有类型为varchar以及长度为32的文章编码、类型为varchar以及长度为32的文章标题、类型为text以及长度不限的文章内容、类型为varchar以及长度为32的上级栏目。如表4-3所示。表4-3文章表字段说明字段名数据类型(长度)是否为空备注文章编码idvarchar(32)否主键文章标题titlevarchar(32)否文章内容passwordtext否上级栏目category_idvarchar(32)否4.5本章小结本章主要是讲述了系统总体的设计,以及讲一下项目的架构设计、还有数据的设计,为接下来的项目的具体实现打好基础。第五章系统详细设计与实现5.1主体架构细化以及实现此项目的基础工程基本是基于开发工具IDEA进行开发,项目结构为Maven,使用的开发语言为Java。5.1.1项目的初始化首先,打开IDEA工具,点击左上角的File,创建一个NewProject。选择Maven结构创建项目,填入项目名,选择项目保存的地址。由于是Mavne项目,所以需要填入GroupId和ArtifactId、Version,最后点击创建。创建好的项目只有两个文件夹.idea和src,以及一个xml形式的pom文件。Idea文件夹包括一些关于IDEA项目配置的文件,基本不用改动。Src文件夹是用来写项目文件的,其下有两个文件夹,一个是main文件夹,存放编写的源码以及代码里所需要的资源、配置等,另一个是test文件夹,用来存放测试代码。Pom文件是Maven项目结构的依赖管理文件,负责管理整个项目所需要的jar包资源。如图5-1所示。图5-1项目初始化图5.1.2依赖组件初始化打开pom文件,首先添加spring-boot-starter-parent的父级依赖,这个SpringBoot项目的核心依赖,采用的版本为2.3.1.RELEASE。接着添加编写SpringBoot的java-web工程的核心依赖spring-boot-starter-web。 SpringBoot2.x版本的默认日志框架是Logback,此次项目的技术选型选择的日志框架为log4j2,因此要添加Log4j2的依赖来替换掉默认的Logback日志框架。然后依次添加Redis、Thymeleaf、Mysql、Shiro、Mybatis的依赖。5.1.3系统配置初始化打开src文件夹下的resources,创建项目配置文件application.yml,这个是SpringBoot项目的配置文件,可单独分配不同环境的配置,包括但不限于测试、生产环境。项目端口的配置,SpringBoot用的java-web应用服务器是Tomcat,因此,项目的端口默认为8080,这里改成8888,在server的port里设置。servlet的context-path配置为”/”。Spring的默认配置profile为dev,即默认开发环境的配置。mvc模式的静态资源返回路径配置为”/**”,静态资源存放的路径配置为classpath:/resources/,即文件夹resources下存放代码需要的静态资源文件。thymeleaf的模板渲染打开,接口的请求体大小限制为20MB以下。Mybatis设置代码变量形式为驼峰式,配置对应的mapper映射xml文件的所在路径为classpath:mapping/*.xml,对应实体类的路径为java文件夹下的entity包。配置项目运行时记录的日志配置文件路径为classpath:log4j2.yml,里边有具体的日志配置清单,包括日志的打印等级,控制台打印与日志文件输出的格式。与MySql服务进行连接,则需要配置Spring的datasource,填入MySql的服务名、服务地址、用户名、密码、jdbc驱动版本。同理,如果需要连接Redis服务,也同样需要配置Spring的redis,填入redis服务的地址,即host与port,密码默认不填,最后设置连接的超时时间为2秒。5.2后台管理网站的设计与实现项目的接口模块主要分为后台系统设置接口模块、资源上传接口模块、数据修改接口模块。这些接口模块主要写在controller包下,也就是对外接口的包里,供界面的使用方调用。5.2.1后台系统设置接口的设计与实现后台设置的接口模块细分比较多,主要有文章管理、栏目管理、表单管理、授权管理、菜单管理、用户管理。文章管理,首先设计一个文章的实体类,其字段包括ID、文章标题、属性、图片路径、描述、种类和种类ID、内容、点击量、创建人、创建时间、修改人、修改时间。文章管理的添加接口,接收到这些参数之后,直接赋值到新建的实体类对象中,然后插入到数据库里。文章管理的修改接口,拿到文章的ID之后,将修改的数据赋值到实体类对象中,然后用sql语句,根据文章ID去修改数据库中的该文章数据。文章管理的删除接口,同样也是根据文章ID,用sql语句去删除数据库中该文章的数据。文章管理的展示接口,首先从数据库拿到对应的文章数据之后,将数据放入到Model类的对象中,这样数据就会自动嵌入到准备好的Thymeleaf的Html模板中,最后将页面模板返回给前端即可。栏目管理的字段比较多,分别有ID、栏目名称、代码、表单ID、图片路径、描述、链接地址、文章模板、列表模板、栏目种类、创建时间等。在拿到了栏目的数据后,直接赋值到实体类的对象中,然后直接插入到数据库里。表单管理主要是管理数据表的字段,提供增加字段和删除修改字段的作用,先将Thymeleaf的Html模板返回给前端,使用者在界面上进行字段的操作,然后点击提交,提交之后的数据到了后端的接口后,用Sql语句进行相应的增删操作。授权管理负责用户的权限设置,每一次到后端的请求都会携带上一个证书类,里边包含用户的类型、用户名、认证码、加密的数据、密钥码、创建时间、创建者。后端拿到前端请求的数据后,先验证认证码和密钥码是否正确,如果错误,则不给授权,接着解析密钥码获得权限字符串,再将字符串解析出来得到相应的权限码,最后将设计好的权限设置Thymeleaf模板返回给前端。菜单管理,就是将管理后台的所有设置操作的菜单项都列出来,让操作者来进行增删操作,可以选择添加某一个菜单项,或者删掉某一个菜单项。在菜单管理的接口中,又细分了多个操作接口,每个操作接口都会拿到前端的请求后返回对应的模板页面给前端。用户管理,是给整个管理后台设置登录账户的地方,添加了用户之后,就可以给用户分配不同的权限,从而达到不同管理级别的用户共同建设网站的目的。用户的实体类包含属性有用户ID、用户名、密码、联系方式、真实姓名、用户状态、用于密码加密的随机盐、创建时间、创建者等。添加用户的时候会校验用户名是否已经重复,然后初始化用户实体类对象的各个值,用MD5加密技术给密码加密,最后添加到数据库中。关于权限的部分,不同的用户,可以授予不同的角色,不同的角色拥有不同的权限。5.2.2资源上传接口的设计与实现资源文件上传接口接收一个文件类MultipartFile对象,首先判断该对象是否为空,接着或者项目配置好的文件资源存储路径,为文件的保存做准备。再根据系统时间和系统名称组合成文件名,然后使用MultipartFile的transferTo方法将文件保存到指定路径中,最后保存原文件名、文件大小、文件类型、文件路径、文件链接地址到实体类对象中,再将这些数据返回到用户界面中。在使用该图片资源时候,只要访问项目的基本路径进来,然后访问图片的存储的绝对路径即可。5.2.3变量管理接口的设计与实现变量管理,负责项目里页面中全局变量的管理,开发者在编写页面代码的时候,可以将这些设置好的变量嵌入到页面代码中显示出来,设置好的变量可以在管理后台进行修改或者删除。在添加变量时,变量管理接口在接收到请求之后,会检查该变量是否已经存在,如果存在则报异常返回给页面提示,否则将继续将相关的变量信息存储到数据库中。5.2.4数据持久层的设计与实现数据持久层,介于基础架构层和领域层之间。出于对象范例和关联范例之间存在的不完美匹配问题,数据持久层单独存在于J2EE架构中的单个层次,提供了一种成功的企业级映射方案,成为了解决对象-关系数据库之间的关键因素,极大程度地克服了对象适配问题带来的第二范式的差距。如图5-2所示。图5-2数据持久层框架图在项目中实现Mybatis的数据持久层框架,先创建一个interface,然后在其下添加要操作数据层的方法,接着写一个xml文件,在mapper标签中给namespace赋值,填写刚刚创建的interface,紧跟着以Sql的语法实现刚刚在interface里添加的方法,编写对应的操作数据层的增删查改。不过要注意,每个方法都要写上对应interface的方法中id,表示是对其的实现方法,要检查输入的参数的类型parameterType和输出参数的类型resultType,如果参数类型不匹配,那么跑程序的时候会报异常。如果Sql的操作,获取的数据体过于复杂,没有对应的实体类能匹配上,那么可以使用mybatis中的resultMap来接收,然后再自定义装填的参数。5.2.5模板引擎构建页面的设计与实现Thymeleaf是一个模板引擎,可以看做是JSP的替代品,可以脱离网络环境运行,从而实现前端和后端的轻度分离。Thymeleaf不仅可以使后端开发者在服务器里观察数据的页面动态效果,还能使前端开发者在浏览器中观察页面的静态效果。同时也是因为Thymeleaf的模板能够静态运行,所以浏览器在解析Html页面时,会把未定义的表情属性给忽略掉。而页面上有数据返回来时,Thymeleaf标签能够动态化地把接收到的数据替换掉原来的数据,让整个页面体现出动态性。首先,创建HTML页面,在html页面中定义xmlns属性,使用对应的语法来编写内容,最常用的语法有"th:text",替换标签中的文本内容;"th:value"是用来替换表单中的值。"th:href"是thymeleaf的URL表达式,能访问指定的路径;"th:if"是条件判断;"th:switch"是选择结构;"th:each"是迭代遍历,能将集合中每个对象都访问到。要将数据装填进去,则需要在接口的代码中创建Model类的对象,然后使用addAttribute的方法以键值对的形式写入参数。部分代码如下。项目中构建模板时,使用的前端框架是bootstrap,其主要的特点是利用栅格式的标签构建页面的板块,还能适应不同的终端设备显示,最大的栅格分配比例为12份。搭配Thymeleaf开发页面比较合适,也是现在构建Java-web主流的技术选型之一。5.3页面的设计与实现5.3.1管理网站页面设计与实现首先是登录管理界面的设计,登录界面的设计比较简约,用户名、密码、验证码以及登录键竖直居中排列。登录之后便可以进入到管理主页面。管理主页面的顶部是管理栏,最左边是一个管理后台的Logo,最右边是一个账户名字的显示,名字旁边有一个向下的箭头,点击之后展开功能列,其包含了跳转到浏览门户首页的链接、修改用户密码选项和退出登录选项。顶部的管理栏下便是主功能部分了,功能列表竖直依靠左边,可以伸缩,右边是功能页面显示。左边的竖直功能栏包括栏目/文章管理、附件管理、表单模型、模板管理、变量管理、系统管理。登录管理界面部分代码如下。栏目/文章管理界面,可以新添加栏目,而且栏目可以排序、显示与隐藏、编辑、删除,每个栏目下面都可以新添加文章以及修改,点击栏目名称即可进入到文章列表部分。部分代码如下。附件管理界面,提供一个上传附件的功能按键,上传好的附件可下载预览、复制下载链接以及删除。表单模型界面,包括添加与修改、删除表单的功能,点击表单能进入字段修改,字段名与字段描述。模板管理界面,可编辑已存在的Html模板,如果要添加新的模板,则需要手动将模板资源放入到项目的资源管理文件夹中。变量管理界面提供了变量的添加、编辑、删除。系统管理列表包括了用户管理、角色管理、菜单管理、权限管理。部分代码如下。5.3.2浏览门户界面设计与实现浏览门户的页面主要由三部分组成:页头、主体、页尾组成。页头主要是一个导航栏,从左到右分别是网站名称、首页按钮、北海历史与文化栏目、热门景点栏目、旅游路线推荐栏目、特色美食栏目、游客留言栏目、搜索框。首页(如图5-3)的设计思想是简约大方,所以首页只放一张风景大图,选取最具代表性的银滩景点,上半部分写上“北海欢迎你”的字样。部分代码如下。图5-3首页图北海历史与文化页面的布局是采用左右的格式,左边是竖直的栏目,右边是响应内容的显示,只要点击任一栏目,右边就会显现出栏目里边的具体内容。栏目包含北海从古至今的历史,以及北海文化中的语言文化、饮食文化。部分代码如下。热门景点(如图5-4)、旅游路线推荐、特色美食页面这几个页面都是同一的模块化设计,每篇文章都是一个方块,横向排列,每行四个。每篇文章都包含缩略图、文章发布时间、点击量、标题、查看详情按钮。点击文章方块即可进入文章的详情页。文章的详情页面的页面布局是竖直排版的,首先是文章发布的时间,接着是标题,然后是缩略图,最后是正文部分,正文部分图文并茂,内容详实。部分代码如下。图5-4热门景点图游客留言页面是给游客发表对旅游网看法或者对北海旅游业看法的专栏,游客可以直接填入标题、联系方式、内容,最后填入验证码即可成功发表上去,所有浏览门户的游客都可以看到所有已成功发表的留言,管理人员可以在管理后台对留言进行管理,可以删除留言,也可以回复留言。后台管理留言如图5-5所示。图5-5后台管理留言图游客留言的页面设计也是竖直排版的,首先是已成功发表的留言展示,横条式的留言竖直排列,并且分页显示。留言模板的内容是标题、发布日期、查看详情按钮。如图5-6所示。图5-6游客留言展示图然后是提供留言的模板,留空的标题、联系方式、内容、还有刷新好的验证码框、以及一个保存框。填好了内容之后,即可点击保存,便可成功发表上去。如图5-7所示。图5-7游客留言界面图5.4本章小结在本章中,介绍了北海网站的整体功能设计、功能实现方法,逐步完成了对北海旅游网站的开发。第六章实现效果6.1后台管理网站测试运行项目,然后在浏览器的地址栏填入http://localhost:8888/admin,进入到管理后台的登录界面(见图6-1),填入用户名、密码和验证码,点击登录,成功进入到管理后台的页面。图6-1登录界面图管理后台的默认打开页面是仪表盘界面(见图6-2),有信息统计模块、文章展示模块、服务器信息模块。信息统计模块包含文章数量、栏目数量、表单数量的统计。文章展示模块列出了部分最新发布的文章,点击文章可以进入到对应的文章详情页面。服务器信息模块展示出了运行改项目的服务器信息,其包含的信息有:JVM名称、JAVA版本、JAVA安装路径、JVM总内存、JVM总内存、操作系统名称、操作系统架构、数据库版本。图6-2仪表盘界面图点击栏目/文章管理(见图6-3),点击“添加顶级栏目”,进入到编辑页面,填入栏目名称、栏目英文名称、表单类型,最后点击保存。成功添加顶级栏目之后,回到栏目/文章管理界面,可以看到一个新的栏目已经存在于栏目列表之中。然后点击该行的“添加下级栏目”,进入到下级栏目编辑页面之后,同样是填入与上级栏目的内容,最后点击保存。保存成功之后,回到栏目/文章管理界面,可以看到上级栏目的旁边有个加号,点击加号便展示了下级栏目的列表,接着点击下级栏目的编辑按钮,进入到下级栏目的内容编辑界面,填入该下级栏目的内容,点击保存,便完成了对栏目的添加。图6-3栏目/文章管理界面图点击表单模型管理,可以看到已有表单的列表,每个列表都可以编辑和删除,点击添加表单,进入到添加表单的界面,然后填入表单名,保存之后,回到表单管理界面,可以看到已成功添加的表单,点击编辑进入到字段管理界面,可以添加字段、编辑字段、删除字段。点击模板管理界面(见图6-4),可以看到已有的模板文件列表,点击编辑,便可进入到对应的模板的Html文件编辑界面中,直接修改Html的代码,然后点击保存,将会直接生效于已使用该模板的界面。图6-4模板管理界面图点击系统管理,展开管理列表,包括用户管理(见图6-5)、角色管理、菜单管理、权限管理。点击用户管理,可以看到添加用户按钮,每个用户都可以为其分配权限、修改账户密码、编辑用户信息、删除用户。点击角色管理可以看到已经存在的角色,每个角色都有自己的名称、编码,可以给每个角色分配权限、编辑信息、删除角色。点击菜单管理,在已有的菜单列表中,可以对每个菜单进行编辑、删除,如果需要新添加菜单,则需要提前编写好菜单页面的Html文件,然后放入到项目工程文件中,并且设置好文件的路径。权限管理则是分配了数据库相关操作的权限。图6-5用户管理界面图6.2浏览门户网站测试在浏览器的地址栏填入地址http://localhost:8888/index,即可跳转到浏览门户的网站界面,默认是进入到首页,映入眼帘的是一张很大的银滩风景背景图,可以看到“北海欢迎你”这几个醒目的字眼。网页顶头的导航栏都正常地显示出来,最右边的导航栏收缩按钮也能正常控制侧边导航栏地伸缩。首页如图6-6所示。图6-6首页图点击导航栏上的“北海历史与文化”栏目,跳转到改栏目
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年“学宪法讲宪法”学法知识竞赛题库附答案
- 应急局理论考试题及答案
- IBM(中国)校招面试题及答案
- 大学计算机应用考试题及答案
- 2026黑龙江绥化市中医医院招聘38人参考题库必考题
- 中共玉环市委宣传部关于下属事业单位 市互联网宣传指导中心公开选聘1名工作人员的备考题库附答案
- 兴国县2025年招聘城市社区专职网格员【23人】备考题库必考题
- 南充市经济合作和外事局局属参照管理事业单位2025年公开遴选参照管理人员(4人)考试备考题库附答案
- 广安市广安区石笋镇人民政府关于2025年选用片区纪检监督员的备考题库必考题
- 招15人!2025年刚察县公安局面向社会公开招聘警务辅助人员考试备考题库附答案
- 静脉治疗新理念
- 高中研究性学习指导课课件系列总结阶段-学生如何开展研究活动
- 心内介入治疗护理
- 民办职业培训方案模板
- 04S519小型排水构筑物(含隔油池)图集
- 旅居养老可行性方案
- 中国焦虑障碍防治指南
- 心包积液及心包填塞
- GB/T 42195-2022老年人能力评估规范
- 两片罐生产工艺流程XXXX1226
- 施工进度计划表完整版
评论
0/150
提交评论