基于JQuery的移动网页设计与实现─以广东美食食谱为例_第1页
基于JQuery的移动网页设计与实现─以广东美食食谱为例_第2页
基于JQuery的移动网页设计与实现─以广东美食食谱为例_第3页
基于JQuery的移动网页设计与实现─以广东美食食谱为例_第4页
基于JQuery的移动网页设计与实现─以广东美食食谱为例_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于JQuery的移动网页设计与实现─以广东美食食谱为例摘要JQuery是一个JavaScript的框架,它的语言非常简单快捷,是在Prototype之后出现的又一个优秀的JavaScript代码库(或JavaScript框架),利用jQuery可以轻松进行网页设计,制作动态网站等。而jQueryMobile属于jQuery的一个组件,它主要是用来创建移动端WebApp的,是优化了触控操作的一个基于jQuery库构造的框架。jQuerymobile基本适用于目前市场上的一切的一般移动手机和平板电脑。jQueryMobile是基于使学习变得容易的jQuery库构筑的。本网站选择使用JQueryMobile+Spring+hibernate进行开发设计。网站前台主要用于浏览菜谱、美食资讯等操作上,而后台主要可以进行美食文章和图鉴的发布、资讯的管理等功能。关键词:Jquery;JQueryMobile;Spring;hibernate;网页设计DesignandImplementationofMobileWebPageBasedonJQuery:TakingGuangdongFoodRecipesasanExampleAbstractJQueryisafastandconciseJavaScriptframework.ItisanotherexcellentJavaScriptcodebase(orJavaScriptframework)afterPrototype.UsingjQuery,youcaneasilydesignwebpagesandcreatedynamicwebsites.JQueryMobileisacomponentofjQuery.ItismainlyusedtocreatemobileWebApp.ItisaframeworkbasedonjQuerylibraryoptimizedfortouchoperation.jQuerymobileisbasicallysuitableforallgeneralmobilephonesandtabletsonthemarket.jQueryMobileisbuiltonthejQuerylibrarythatmakeslearningeasy.ThiswebsiteusesJQueryMobile+Spring+hibernatefordevelopmentanddesign.Thewebsiteisdividedintotwomodules,thefrontdeskandthebackdesk.Thefront-endmoduleisonlyusedtobrowserecipes,foodinformation,etc.Thebackgroundmodulemainlyhasthefunctionsofpublishingfoodarticlesandinformationmanagement.Keywords:Jquery;JQueryMobile;Spring;hibernate;WebDesign目录1、 引言 引言随着时代的快速发展,信息化技术的发展和所存在的应用越来越快,互联网逐渐在人们生活中成为了不可缺少的重要角色,人们也更多地选择从互联网上获取各种信息。因此,互联网逐渐成为了一个广大群众选择去进行信息发布以及信息获取的一个平台。方便了人们平时的生活带。以广东美食网站为例,能方便地为广大美食爱好者提供一个合适的平台进行交流和学习。这个网站系统主要是基于jQuerymobile语言上设计出来的,是为了方便有效地为来广东旅游的人们提供广东本地的美食介绍和当地的美食文化,让人能随时随地通过自己的手机来查找并发现美食,将广东美食文化以更好更全的面貌展示给用户,让用户更容易沉浸在美食中。2、系统分析2.1需求分析当今社会真向着信息化时代快速发展中,信息化的作用越来越大,把人们能从繁琐的工作中彻底解放了出来,提高自身的工作效率。因此,商家们、美食追寻者们可以利用互联网进行对广东本地美食、食谱等进行线上推广,从而带动线下的推行,让更多的人们能从互联网上查询到当地美食的情况,去寻找当地的美食,品尝到当地的风土人情。2.2前台功能分析美食网站的首页整体以简洁的风格为主,在网页头部有一个菜单按钮,菜单主要包括了:饮食资讯、美食图鉴、登录/注册、管理、网页相关等按钮。在首页用户可以随意选择饮食资讯和美食图鉴,可以进行网站登录,对喜好的美食信息进行浏览发布。2.3后台功能分析网站后台功能主要是用于管理网页内容的,网站的管理员可以通过账号密码进行登录,登录进去后,可以进入到后台管理界面,进行一系列的管理操作。后台管理主要包含了对用户的所有信息管理,对美食文章以及美食图鉴的增加、删除、修改等功能。3、JQueryMobile+spring+springMVC+hibernate技术架构3.1JqueryMobile简述jQueryMobile主要是用来创建移动端WebApp的,是优化了触控操作的一个基于jQuery库构造的框架。jQuery基本适用于目前市场上的一切的一般移动手机和平板电脑。jQueryMobile是基于使学习变得容易的jQuery库构筑的。jQueryMobile使用了极其少的脚本代码来完成对整体页面布局的渲染,例如Html5、CSS3、JavaScript和AJAX等。“做更少、更多的事情”的概念被jQueryMobile将其提升到一个新的层次。这个,对于Web网页的相互作用容易使用的外观的自动设计,全部的移动设计一致。3.2Spring框架介绍Spring框架是由7个独立具体的模块构造而成的层级架构,这些模块定义明确。如图1所示,Spring的所有模块建立于中心容器之上,在整体的基础上,对Bean的创建、配置和管理的方法进行了定义。图SEQ图表\*ARABIC1构成Spring框架的每一个模块(或组件)都是单独一个个体的,可以与其他一个,又或者与其他多个进行结合集成。每个模块的功能如下:1.核心容器:核心容器提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工场模式的实现。BeanFactory主要是利用控制反转(IOC)的方式,把WebApp程序的配置、依存性规范和实质上的WebApp程序代码进行区分。2.Spring上下文:是向Spring框架供给上下文信息的基础配置文件;Spring上下文包含了JNDI、EJB、电子邮件、国际化、验证、调度功能等众多的企业服务。3.SpringAOP:SpringAOP模块主要是利用配置管理的功能,把面向纵横的编程功能直接往Spring框架中进行整合。因此,由其管理负责的所有对象都可以简单地支持AOP。SpringAOP模块主要供给的处理项是事务管理,提供给基于Spring的应用对象进行使用。使用SpringAOP这一个模块,能够将宣言型事务管理往WebApp程序中进行集成,而不需要依赖于其他的EJB组件。4.SpringDAO:JDBC道抽象层提供了一种有意义的异常层,可以用于管理由不同数据库供应商慢处理和错误消息。根据例外层,错误处理被简化,需要写入的例外代码(连接的开闭等)被大幅度削减。SpringDAO的JDBC指向的例外,遵循一般的DAO例外层。5.SpringORM:Spring框架插入一些ORM框架,从而提供JDO、Hibernate、iBatisSQLMap等ORM对象管理工具。以上所有提供的工具都遵循了Spring的一般事务。6.SpringWeb模块:Web上下文模块本质是为了给基于Web的应用提供上下文的,为了给予这些基于Web的应用提供上下文。与此同时,Web模块对多段请求的处理进行了简化,并且也同时请求参数对域对象的绑定进行了修改,使其变得更加简便。7.SpringMVC框架:MVC框架是作用主要是为了实现构建WebApp的全功能。通过其内置的策略接口和方法,使得整个MVC框架变得可配置其高度;在这其中,MVC可以支持JSP、iText、POI等多种视图技术[[1]Spring的大部分功能也可以适用于非管理环境,可以在任意的J2EE服务器中使用;Spring的核心是支持未被特定的J2EE服务绑定的可再利用的服务以及数据访问对象。这样的对象可以在独立的App程序、测试环境之间和不同的J2EE环境(Web或EJB)等不同环境中被重新使用。3.3SpringMVC的工作原理很多应用程序的问题在于处理业务数据的对象和显示业务数据的视图之间存在紧密耦合,一般来说,更新商务对象的命令从视图本身开始,会对业务对象的变更非常敏感,如果多个视图隶属于同一业务对象,则不具有灵活性。SpringMVC关键的架构,如图2示:图SEQ图表\*ARABIC2具体流程:1)一开始是浏览器进行DispatcherServlet的请求发送。前端控制器接到请求后并不会进行自动处理,但是它会委托其它分句分析器对请求进行处理,以便控制全部进程的通用存取点。 2)FromDispatcherServlettoHandlerMapping。这个处理器映射器向HandlerExecutionChain对象发送邀请,包括HandlerExecutionChain对象和HandlerInterceptor接口,并且会把它映射到对象中。 3)FromDispatcherServlettoHandlerAdapter。处理器会被处理适配器进行自动包装,即适配器设计模式的应用。这样能够方便以后支持各种类型的处理器使用。 4)从处理适配器到调用处理器相应功能处理方法,并自动返回生成一个ModelAndView对象,其中该对象包括了两部分内容:模型数据、逻辑视图名。 5)FromModelAndView对象toViewResolver。ViewResolver(视图解析器)将把逻辑视图名解析为具体现实的视图。 6)从视图到渲染。视图对接收到的模型数据为基础,如何对其进行渲染,这里的模型实际上是映射数据结构。 7)从上面的操作开始,知道以上的操作结束后,把整个系统的控制权进行了返回,并交给DispatcherServlet进行负责,然后,由DispatcherServlet把响应反馈给用户知道,到此一个完整的流程结束。SpringMVC的关键代码:web.xml<web-app><servlet><!--加载前端控制器--><servlet-name>springmvc</servlet-name><servlet-class>org.sprringframework.web.servlet.DispatcherServlet</servlet-class><!-- 加载配置文件 默认加载规范: *文件命名:springmvc-servlet.xml *路径规范:必须在WEB-INF目录下面 修改加载路径:--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>springmvc.xml<beans> <!--配置映射处理器:根据自己定义bean类属性的地址去寻找handler。其默认的映射处理器是BeanNameUrlHandlerMapping --> <beanclass="org.sprringframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> <!—通过配置处理器适配器来对Controlelr进行执行操作;springmvc默认的是SimpleControllerHandlerAdapter --> <beanclass="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean> <!--配置自定义Controller--> <beanid="myController"name="/"class="org.controller.MyController"></bean> <!--配置sprigmvc视图解析器:解析逻辑试图; 后台返回逻辑试图:index 返回物理视图:/WEB-INF/jsps/index.jsp --> <beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"> <propertyname="prefix"value="/WEB-INF/jsps/"></property> <propertyname="suffix"value=".jsp"></property> </bean></beans>3.4Hibernate的简介Hibernate是于一个对象关系架构,是由GavinKing于2001所创建的。使用相关对象的可持续性和服务,创建Java应用程序的强大且有效。Hibernate将Java类从数据库表格、Java类型模拟成SQL类型。Hibernate是传统Java对象和数据库服务器的连接点,用于处理这些对象时使用的桥,它采用O/R映射机制和模式。Hibernate的结构是一层一层分开的,作为数据接入层不需要了解所有基本的API。“Hibernate”使用数据库和组件,并借此为当前的应用程序提供永久服务以及永久对象。深入了解一下Hibernate应用程序架构视图以及所需要的一些关键类,如图3示:图SEQ图表\*ARABIC3在Hibernate应用程序架构中的关键类对象如下:1)配置对象:构成对象是第一个从所有Hibernate应用程序生成的Hibernate对象,通常只在应用程序初始化中创建。显示休眠模式所需要的部件或属性文件。每个组件都提供两个基本组件。2)SessionFactory对象:配置对象是SessionFactory对象的绘制,也是使用了配置文件的配置文件,然后依次配置应用程序的Hibernate,用于将会话对象实例化。3)Session对象;一个会话将会和所需要的数据库进行物理连接。这个Session的对象非常轻量,它能够在系统每一次进行实例化操作时,与数据库进行所需的互动。Session对象会对永久对象进行所需的存储和搜索。会话对象通常不会被红色警告而长时间不被打开,并且根据需要需要创建和删除。4)Transaction对象:事务代表数据库中的工作单位,大多数RDBMS支持事务功能。在运用Hibernate的系统中,事务对象一般是由基础事务管理器和事务一同来进行处理操作。这是具备选择性的一个对象,系统能够选择不去使用该接口,而选择运行自己设计的代码来对这一事务对象进行管理操作。5)Query对象:查询对象使用SQL或Hibernate查询语言(HQL)字符串获取数据,并在数据库中创建对象。Hibernate的关键代码hibernate.cfg.xml:<?xmlversion="1.0"encoding="GBK"?><!--指定Hibernate配置文件的DTD信息--><!DOCTYPEhibernate-configurationPUBLIC"-//Hibernate/HibernateConfigurationDTD3.0//EN""/dtd/hibernate-configuration-3.0.dtd"><!--hibernate-configuration是连接配置文件的根元素--><hibernate-configuration><session-factory><!--指定连接数据库所用的驱动--><propertyname="connection.driver_class">com.mysql.jdbc.Driver</property><!--指定连接数据库的url,hibernate连接的数据库名--><propertyname="connection.url">jdbc:mysql://localhost/数据库名</property><!--指定连接数据库的用户名--><propertyname="connection.username">root</property><!--指定连接数据库的密码--><propertyname="connection.password">32147</property><!--指定连接池里最大连接数--><propertyname="hibernate.c3p0.max_size">20</property><!--指定连接池里最小连接数--><propertyname="hibernate.c3p0.min_size">1</property><!--指定连接池里连接的超时时长--><propertyname="hibernate.c3p0.timeout">5000</property><!--指定连接池里最大缓存多少个Statement对象--><propertyname="hibernate.c3p0.max_statements">100</property><propertyname="hibernate.c3p0.idle_test_period">3000</property><propertyname="hibernate.c3p0.acquire_increment">2</property><propertyname="hibernate.c3p0.validate">true</property><!--指定数据库方言--><propertyname="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property><!--根据需要自动创建数据表--><propertyname="hbm2ddl.auto">update</property><!--显示Hibernate持久化操作所生成的SQL--><propertyname="show_sql">true</property><!--将SQL脚本进行格式化后再输出--><propertyname="hibernate.format_sql">true</property><!--罗列所有的映射文件--><mappingresource="映射文件路径/News.hbm.xml"/></session-factory></hibernate-configuration>4、系统实现该美食网站主要是管理员、游客以及注册用户这三种角色。已经注册过的用户能够在该网站上进行文章、美食图鉴的发布;而游客可以在网页随意进行浏览文章和美食图鉴,但不可进行文章以及美食图鉴的发布;管理员则是能够对系统进行维护,管理用户信息、文章以及美食图鉴等,确保系统运行安稳。。4.1网页界面设计美食网站的网页界面设计是个至关重要的工作,这是吸引用户的第一道门面。网站用白色作为网站的主要色调,在用户第一次浏览时能给用户一种简洁之直观的感觉,吸引住用户的眼球;在操作上,不需要太多花里胡哨,想要的专区可以直接前往浏览。在首页页面中,首先是网站顶部的设置,网站的名字,顶部下面就有用户选择登录注册的按钮,点击按钮,就会跳转到登录注册的页面。主页面中,导航栏位于侧边栏部分,用户点击位于左上角的菜单图标即可拉出,点击侧边栏以外的区域或者点击菜单图标即可关闭;导航栏里选项主要包括:美食文章,美食图鉴,发布文章,网站管理(只在管理员登录时才会存在,非管理员无法选择该选择),网站相关等,通过这几个选项,用户可以非常方便地找到自己想去的专区。美食图鉴的界面中,美食图鉴的信息会整齐地排列在页面,并附上简短的介绍,点击该图鉴图片,就能进入相对应的美食图鉴详细页面,观看该美食图鉴的详细介绍、评价、推荐以及其地点等。美食文章专区的界面就是用户对其喜欢的美食以及新发现的美食进行评价安利的专区,用户可以在这里发布自己对美食独特的见解,发布菜肴的做法等,让用户能在这里各抒己见,大谈己论一番。管理专区,只有管理员进入的区域,主要负责对文章、美食图鉴的管理,可以对不符合的文章、美食图鉴进行删除操作,维护网站的日常运行。4.2美食食谱界面设计美食食谱页面的设计遵循简单易用的理念来设计的,页面不需要太多风格装饰,整体以简洁的样式来设计。食谱为列式表格,显示内容为两部分:左边部分为该食谱的图片展示,右边部分为该食谱的名称显示。这样可以让人一目了然,能找到自己想要的食谱信息。当用户找到心仪的食谱信息后,可以点击该食谱的名称查看详情。点击了食谱名称后,会跳转到相对应的食谱详情页。食谱详情页主要分为四部分:美食的名称、美食的图片、美食的介绍以及地点和美食的详细做法。美食的介绍和地点能方便用户去了解该美食的起源、文化,激起用户去当地寻找该美食的兴趣;而详细做法可以让用户不必到当地来,动一下自己的巧手就能尝试制作该美食,体验到美食。这两个个页面主要运用CSS和html5来进行整体的页面设计布局,让整一个页面看起来美观整洁。4.3后台模块功能实现后台模块是整个美食网站的核心部分,整个后台采用的是SpringMVC经典的三层分层结构,在控制层、业务层和持久层分别采用@Controller、@Service、@Repository对分层里面的类进行注解。 @Controller在SpringMVC中被用来标记类,因此被标记的类就是一个对象。分布式处理器会对注释类中使用的方法进行扫描,并且检测该方法是否使用到@RequestMapping注释。因为@Controller只是用来标记一个控制器类,并不包含其所需要的处理请求,所以需要使用注释@RequestMapping,它所注释的方法才是系统所需要的实际处理请求的处理器。仅用@Controller来标记类,实际上并不是一个控制器。有必要给Spring管理提供这个控制器级别,并将该控制器的位置传达给Spring知道。配置如下:<context:component-scanbase-package="com.system.controller"><!—不扫描@Service标注的类--><context:exclude-filtertype="annotation"expression="org.springframework.stereotype.Service"/></context:component-scan>在连接数据库上用hibernate来创建对象映射的关系。在编写完对象POJO类后,编写相对应的映射文件xxx.hbm.xml,关键代码如下:<?xmlversion="1.0"?><!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN""/hibernate-mapping-3.0.dtd"><!--Generated2018-3-169:16:18byHibernateTools3.5.0.Final--><hibernate-mapping><classname="User"table="Users"><idname="id"type="int"><columnname="ID"/><generatorclass="assigned"/></id><propertyname="name"type="java.lang.String"><columnname="NAME"/></property><propertyname="password"type="java.lang.String"><columnname="PASSWORD"/></property></class></hibernate-mapping>4.4数据库设计4.4.1数据库ER图图SEQ图表\*ARABIC44.4.2数据库字典数据库涉及三个表,如下:表SEQ表格\*ARABIC1用户表(Users)中文名称字段名数据类型约束条件序号IDint主键,不为空用户名Namevarchar(30)不为空密码PasswordVarchar(10)不为空表SEQ表格\*ARABIC2文章表(Contents)中文名称字段名数据类型约束条件序号IDint主键,不为空标题Titlevarchar(10)不为空内容Contentvarchar(max)不为空作者Authorvarchar(30)不为空日期ReleaseTimeDatetime不为空表SEQ表格\*ARABIC3美食食谱表(Recipes)中文名称字段名数据类型约束条件序号IDint主键,不为空食谱名称Recipevarchar(10)不为空内容Contentvarchar(max)不为空作者Authorvarchar(30)不为空地址Addressvarchar(50)不为空日期ReleaseTimeDatetime不为空4.5系统测试4.5.1测试方案本次测试对象为我建设的美食食谱网站,这个网站系统主要是为了方便有效地为来广东旅游的人们提供广东本地的美食介绍和当地的美食文化,让人能随时随地通过自己的手机来查找并发现美食,将广东美食文化以更好更全的面貌展示给用户,让用户更容易沉浸在美食中。该美食食谱网站主要分为用户登录、文章浏览、食谱浏览、管理等模块。本次测试主要测试主要包括:网站登录、浏览的功能测试,以及多用户登录和浏览的性能测试。测试环境为戴尔7229型笔记本电脑,软件环境为Windows10家庭版,测试用浏览器为GoogleChrome。功能测试1、测试目标:确认数据的输入和处理等测试功能是否调校正常。2、测试范围:登陆、浏览和修改密码所涉及到的所有功能。3、技术:使用流程或函数,使用有效数据和无效数据来执行每个使用情况,并检查下面的情况。为了得到预期的结果,要使用所设计的有效数据,使用错误且无效的数据,会得到显示相应的错误或警告消息。请放在可以正常运行的应用程序上进行测试。4、开始标准:每一个功能模块都已经开发完毕。5、完成标准:具体参照本文完成测试的标准。6、需要考虑的特别情况:应用功能是否完整;是否产生作用;是否无错误;是否符合所预定的要求。性能测试1、测试目标:确认所指定的功能的性能动作。预想的沉重的工作负载。2、测试范围:登陆、浏览网站;3、技术:为测试功能或者业务周期测试制定适应的测试过程;通过修改脚本来增加相应事务的迭代数量;脚本最好是以单个用户、单个事务为基准,并在客户机上重复测试。4、完成标准:在单个事务或单个用户情况下:在每个事务所预期时间范畴内,能够不出现任何的问题,成功地完成所设计的测试脚本;在有复数个事务或者用户情况下:在给定的时间范畴里面,能够不出现任何的问题,成功地完成所设计的测试脚本。5、需考虑的特殊事项:往所用的服务器中添加后台是全面性能测试的主要工序这个有以下很多方法。直接强制“分配事务”的服务器。模拟许多(通常是数百个)客户端。此负载可通过测试工具(loadrunner12.53)来实现。这个方法也可以用于向网络加载“通信量”。性能测试必须要求在专用的计算机上,或者在专用的计算机时间内进行所设计的所有测试,由此实现完全控制以及得出精确的系统评估。4.5.2测试用例功能测试用例表SEQ表格\*ARABIC4功能测试用例表用例编号:T-001优先级:非常高用例概述:登录验证:用户名为空数据输入:执行步骤:预期结果:用户名:空密码:Zilong196输入《用户名》,《密码》点击登录按钮登录失败,系统显示用户名不能为空用例编号:T-002优先级:非常高用例概述:登录验证:用户名错误数据输入:执行步骤:预期结果:用户名:94408077AA密码:Zilong196输入《用户名》,《密码》点击登录按钮登录失败,系统提示登录失败,用户名或密码错误,请重试用例编号:T-003优先级:非常高用例概述:登录验证:密码为空数据输入:执行步骤:预期结果:用户名:94408077密码:输入《用户名》,《密码》点击登录按钮登录失败,系统显示密码不能为空用例编号:T-004优先级:非常高用例概述:登录验证:密码错误数据输入:执行步骤:预期结果:用户名:94408077密码:123456输入《用户名》,《密码》点击登录按钮登录失败,系统登录失败,用户名或密码错误,请重试!用例编号:T-005优先级:非常高用例概述:登录验证:登录成功数据输入:执行步骤:预期结果:用户名:94408077密码:Zilong196输入《用户名》,《密码》点击登录按钮登录成功。用例编号:T-006优先级:高用例概述:任意浏览成功数据输入:执行步骤:预期结果:点击任意专区进入,点击任意连接按钮。系统顺利跳至链接对应内容。性能测试用例表SEQ表格\*ARABIC5性能测试用例表用例编号:TX-001优先级:中用例概述:性能测试:同时登录系统的用户人数不超过25人数据输入:执行步骤:预期结果:打开网络教学平台,点击登录同时登录系统的用户人数不超过25人用例编号:TX-002优先级:中用例概述:性能测试:25人同时登录响应时间不超过10秒数据输入:执行步骤:预期结果:打开网络教学平台,点击登录25人同时登录响应时间不超过10秒用例编号:TX-003优先级:中用例概述:性能测试:同时浏览的用户人数不超过25人数据输入:执行步骤:预期结果:打开网络教学平台,点击登录同时浏览的用户人数不超过25人用例编号:TX-004优先级:中用例概述:性能测试:25人同时浏览响应时间不超过10秒数据输入:执行步骤:预期结果:打开网络教学平台,点击登录25人同时浏览响应时间不超过10秒4.5.3测试结果分析1、功能测试结果表SEQ表格\*ARABIC6测试用例执行结果表测试用例编号测试用名称测试结果T-001登录验证:用户名为空通过T-002登录验证:用户名错误通过T-003登录验证:密码为空通过T-004登录验证:密码错误通过T-005登录验证:登录成功通过T-006任意浏览成功通过2、性能测试结果图SEQ图表\*ARABIC5RunningVusers图SEQ图表\*ARABIC6TransResponseTime图SEQ图表\*ARABIC7HitperSecond图SEQ图表\*ARABIC8WindowsResources本系统基本符合系统设计要求,可以正常使用,少部分缺陷可以在以后的版本进行修改。5、结论本系统使用了Spring+SpringMVC+Hibernate作为整体架构,使用jQueryMobile设计制作该美食网站的前端页面,实现了网站的前台与后台的交互。该系统包括了浏览美食图鉴、美食资讯、发表文章等功能。该系统设计的初衷是为了方便人们在如今互联网时代,能够随心随意地用自己随身携带的手机对广东美食食谱进行查找浏览。所以为了能够在如今一切流行的一般智能手机和平板电脑上运行,我选择了jQueryMobile作为我设计制作的网站页面的基础。而jQueryMobile是一个优化了触控操作的,在jQuery库基础上进行构建的的框架,学习使用起来简单。“做更少、更多的事情”的概念被jQueryMobile将提升到一个新的层次。这个对于Web网页的相互作用容易使用的外观的自动设计,全部的移动设计一致。在系统的设计中,我选用了Spring+SpringMVC+Hibernate作为我的网站系统的框架。Spring框架本来就是要为了简化企业化应用程序开发的复杂性而被作者开发出来的,非常适合操作使用,简化网站构造步骤。其主要优点在于层级化的架构。通过一层一层分开的架构,用户不仅可以选择自己需要使用的组件,还可以提供用户一些集成框架运用于J2EE系统程序的开发,方便用户的选择。Spring的核心主要包含了两部分:控制反转(IoC)和纵横指向(AOP)。Spring的特点包括:方便解耦,简化开发;AOP编程的支持;声明事务的支持;方便程序的测试;方便集成各种优秀的框架等。Spring框架的使用,能极大地方便程序员有效地去重组中间对象,通过使用最简单可行的解决方法就可以基本解决我的问题。SpringMVC主要是为了基于Java的WebMVC设计模式的请求驱动型轻量Web能够得以实现的一个框架。而且SpringMVC淋漓尽致地表现出了mvc的核心概念,是当前最优秀的一个mvc框架。在控制器和处理程序中提供与该模式相关的多项功能,当程序在mvc中添加反转控制(IoC)时,可以高度分离应用程序,通过简单的配置变更来提供动态的变更。组件的灵活性其优点包括:清晰的角色划分;扩展相当灵活,分工明确;对象设计成一个POJO类,不需要继承;能随意和Spring等框架进行集成;可定制性;本地化和主题的解析支持;包含了强大的JSP标签库等。Hibernate是一个对象关系映射框架。它的源代码开源,获取和使用都非常方便。其中对JDBC建立了POJO和数据库表之间的映射关系,并对其进行了极其轻量的包装。Hibernate是一个具备完全自动化的orm框架,不需要程序员在代码中编写SQL语句,它自身就能够自主生成SQL语句,并且能够自动去执行这些SQL的语句,因此,程序员可以直接利用面对对象的编程思维方式,通过这个思维方式来对数据库进行自由操作。它的优点主要包括了:对象数据库的映射;透明持久化;提供事务;不存在侵入性;移植性良好;提供了一级和二级缓存;简洁的HQL编程等。本系统其实存在很多需要改善的地方,在一些网站的易用性需要继续改进和改善。在这个网站里应该加入一个收藏页,方便用户对自己喜欢的文章、图鉴进行收藏,方便往后翻出来阅读浏览;在文章发布区,文章的下面增加一个评论区的区域,让用户可以更好地与他人交流学习。另外在未来我还想在这网站里面加入一个小视频专区,让用户可以分享美食的视频,与大家分享交流,形成一个美食的Vlog专区,让人们更好地感受到分享美食的乐趣!参考文献[1]黄安.基于PHP+Mysql技术的网站设计与实现——以美食网站系统的设计为例[J].轻纺工业与技术,2019,48(07):168-170.[2]朱运乔.基于Spring+SpringMVC+hibernate框架的Web系统设计与实现[J].电脑知识与技术,2018,14(26):66-68.[3]何晶.以SSH框架与jQuery技术为基础的Java-Web开发应用探讨[J].计算机产品与流通,2019(11):104-105.[4]乐蓓.探究JQueryMobile实现智能移动终端的网页前端开发[J].数码世界,2019(11):37.[5]薛亚田,舒后.基于jQueryMobile的移动订餐系统的设计与实现[J].北京印刷学院学报,2018,26(12):93-95+118.[6]潘蕊.SSH框架的Web网站设计与实现研究[J].成才之路,2019(36):58-59.[7]刘丽华,薛玉倩.基于springMVC的学生信息管理系统[J].通讯世界,2019,26(10):173-174.[8]刘丽华,薛玉倩.基于springMVC的学生信息管理系统[J].通讯世界,2019,26(10):173-174.[9]闫薇.美食网站的设计与实现[J].数码世界,2017(07):107-108.[10]高雪芹.美食社区网站的设计与实现[J].计算机光盘软件与应用,2012,15(20):188-189.[11]向大芳.基于Hibernate框架数据持久化的设计与实现[J].科技创新导报,2019,16(28):135-139.谢辞至此,我的毕业设计已经顺利完成了。在这里,我要特别感谢我的论文指导老师——计算机学院的冯力威老师。从一开始的选定毕业设计的题目到搜集资料,从确定毕业设计的大体思路到进行开题报告,从修改毕设初稿到最终的定稿,老师都给了我极悉心的指导。老师对我的论文指导尽心尽责、呕心沥血。这使得我的毕业设计能够如期、保质保量地完成了。在做毕业设计这段时间里,渊博的知识结构、精益求精的工作态度给我留下了非常深刻的印象,使我终身受益。在此,再次向我敬爱的老师致以最崇高的敬意与最衷心的感谢!毕业设计暂且告一段落了,这也意味着自己的大学四年学习生活即将结束了。回望过去,自己一生最宝贵的时间能在这样的校园里面学习生活,能在众多才华横溢、学富五车的老师们的熏陶下度过,实属是万分荣幸。在这四年的时间里面,我在学习上和思想上都受益匪浅。这除了自身的学习外,也与各位老师、同学和朋友们的关心和鼓励分不开的。另外,我还要感谢我身边的朋友和同学,感谢他们在写论文的过程中以及平时的生活中对我的帮助和支持,感谢所以关心、支持、帮助过我的良师益友们。最后,向在百忙之中抽出时间对本文进行评审并提出宝贵意见的各位老师表示衷心的感谢!时间仓促以及自身专业水平的不足,本文中存在的缺点和错误,恳请评阅的老师们多余指正,不胜感激!附录web.xml<?xmlversion="1.0"encoding="UTF-8"?><web-appversion="2.5"xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd"><display-name>spring-mvc</display-name> <!--配置DispatchcerServlet--> <servlet> <servlet-name>spring-mvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--Springmvc配置文件的位置和名称--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring-mvc</servlet-name> <url-pattern>/</url-pattern><!--所有的的请求,都会被DispatcherServlet处理--> </servlet-mapping> <filter> <filter-name>EncodingFilter</filter-name><!--编码过滤器--> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>/*****************************************************************************/Spring-mvc.xml<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context-4.0.xsd/schema/mvc/schema/mvc/spring-mvc-4.0.xsd"><!--配置自动扫描的包--><context:component-scanbase-package="com.system.controller"></context:component-scan><mvc:annotation-driven/><!--配置视图解析器把handler方法返回值解析为实际的物理视图--><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><propertyname="prefix"value="/Page/jsp/"/><propertyname="suffix"value=".jsp"/></bean>/*****************************************************************************/hibernate.cfg.xml<?xmlversion='1.0'encoding='UTF-8'?><!DOCTYPEhibernate-configurationPUBLIC"-//Hibernate/HibernateConfigurationDTD3.0//EN""/dtd/hibernate-configuration-3.0.dtd"><!--GeneratedbyMyEclipseHibernateTools.--><hibernate-configuration><session-factory> <propertyname="file"> com.microsoft.sqlserver.jdbc.SQLServerDriver </property> <propertyname="connection.url">jdbc:sqlserver://:1433;DatabaseName=db_Web</property> <propertyname="connection.username">sa</property> <propertyname="connection.password">123456</property> <propertyname="connection.driver_class"> com.microsoft.sqlserver.jdbc.SQLServerDriver </property> <propertyname="dialect">org.hibernate.dialect.SQLServerDialect</property> <!--显示Hibernate持久化操作所生成的SQL--><propertyname="hibernate.show_sql">true</property><!--下一个层级的映射文件,用来配置bean对象与数据表之间的关系--><mappingresource="com/system/bean/Users.hbm.xml"/><mappingresource="com/system/bean/Content.hbm.xml"/><mappingresource="com/system/bean/Rrecipe.hbm.xml"/></session-factory></hibernate-configuration>/*****************************************************************************/User.hbm.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN""/hibernate-mapping-3.0.dtd"><hibernate-mapping><classname="User"table="Users"><idname="id"type="int"><columnname="ID"/><generatorclass="assigned"/></id><propertyname="name"type="java.lang.String"><columnname="name"/></property><propertyname="password"type="java.lang.String"><columnname="password"/></property></class></hibernate-mapping>/*****************************************************************************/Content.hbm.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN""/hibernate-mapping-3.0.dtd"><hibernate-mapping><classname="Content"table="Contents"><idname="id"type="int"><columnname="ID"/><generatorclass="assigned"/></id><propertyname="title"type="java.lang.String"><columnname="title"/></property><propertyname="content"type="java.lang.String"><columnname="content"/></property><propertyname="author"type="java.lang.String"><columnname="author"/></property></class></hibernate-mapping>/*****************************************************************************/Recipe.hbm.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN""/hibernate-mapping-3.0.dtd"><hibernate-mapping><classname="Rrecipe"table="Recipes"><idname="id"type="int"><columnname="ID"/><generatorclass="assigned"/></id><propertyname="recipe"type="java.lang.String"><columnname="recipe"/></property><propertyname="content"type="java.lang.String"><columnname="content"/></property><propertyname="author"type="java.lang.String"><columnname="author"/></property><propertyname="address"type="java.lang.String"><columnname="address"/></property></class></hibernate-mapping>/*****************************************************************************/HibernateSessionFactory.Javapackagecom.system.Dao;importorg.hibernate.HibernateException;importorg.hibernate.Session;importorg.hibernate.cfg.Configuration;importorg.hibernate.service.ServiceRegistry;importorg.hibernate.boot.MetadataSources;importorg.hibernate.boot.registry.StandardServiceRegistryBuilder;/***ConfiguresandprovidesaccesstoHibernatesessions,tiedtothe*currentthreadofexecution.FollowstheThreadLocalSession*pattern,see{@link/42.html}.*/publicclassHibernateSessionFactory{/***Locationofhibernate.cfg.xmlfile.*LocationshouldbeontheclasspathasHibernateuses*#resourceAsStreamstylelookupforitsconfigurationfile.*Thedefaultclasspathlocationofthehibernateconfigfileis*inthedefaultpackage.Use#setConfigFile()toupdate*thelocationoftheconfigurationfileforthecurrentsession.*/ privatestaticfinalThreadLocal<Session>threadLocal=newThreadLocal<Session>();privatestaticorg.hibernate.SessionFactorysessionFactory; privatestaticConfigurationconfiguration=newConfiguration();//创建sessionfactoryprivatestaticServiceRegistryserviceRegistry; static{ try{ configuration.configure(); serviceRegistry=newStandardServiceRegistryBuilder().configure().build(); try{ sessionFactory=newMetadataSources(serviceRegistry).buildMetadata().buildSessionFactory(); }catch(Exceptione){ StandardServiceRegistryBuilder.destroy(serviceRegistry); e.printStackTrace(); } }catch(Exceptione){ System.err.println("%%%%ErrorCreatingSessionFactory%%%%"); e.printStackTrace(); }}privateHibernateSessionFactory(){} /***ReturnstheThreadLocalSessioninstance.Lazyinitialize*the<code>SessionFactory</code>ifneeded.**@returnSession*@throwsHibernateException*/publicstaticSessiongetSession()throwsHibernateException{Sessionsession=(Session)threadLocal.get(); if(session==null||!session.isOpen()){ if(sessionFactory==null){ rebuildSessionFactory(); } session=(sessionFactory!=null)?sessionFactory.openSession() :null; threadLocal.set(session); }returnsession;} /***Rebuildhibernatesessionfactory*重建sessionfactory*/ publicstaticvoidrebuildSessionFactory(){ try{ configuration.configure(); serviceRegistry=newStandardServiceRegistryBuilder().configure().build(); try{ sessionFactory=newMetadataSources(serviceRegistry).buildMetadata().buildSessionFactory(); }catch(Exceptione){ StandardServiceRegistryBuilder.destroy(serviceRegistry); e.printStackTrace(); } }catch(Exceptione){ System.err.println("%%%%ErrorCreatingSessionFactory%%%%"); e.printStackTrace(); } } /***Closethesinglehibernatesessioninstance.*关闭session*@throwsHibernateException*/publicstaticvoidcloseSession()throwsHibernateException{Sessionsession=(Session)threadLocal.get();threadLocal.set(null);if(session!=null){session.close();}} /***returnsessionfactory**/ publicstaticorg.hibernate.SessionFactorygetSessionFactory(){ returnsessionFactory; } /***returnhibernateconfiguration**/ publicstaticConfigurationgetConfiguration(){ returnconfiguration; }}

电脑无法识别U盘该怎么办HYPERLINK电脑无法识别U盘怎么办?打开我的电脑上单击右键,在快捷菜单里,选择“管理”,打开“计算机管理”窗口。在计算机管理窗口里,选择“存储”下面的“磁盘管理”,如果看得到没有盘符的U盘,那么在这个U盘上按鼠标右键,选择“更改驱动器名称和路径”选项,就打开了“更改……的驱动器号和路径”对话框。再点击“更改”按钮,打开“更改驱动器号和路径”的对话框,在“指定以下驱动器号”的右边下拉列表里,选择你希望分配给U盘的驱动器号,尽可能靠后选择,比如X、Y、Z,选择好后,单击确定按钮,回到上一次“更改……的驱动器号和路径”对话框窗口,再一次单击确定,就回到“计算机管理”窗口。至此,如果一切正常,就给U盘单独设置了一个长久使用的驱动器号,并却,不受虚拟驱动器的影响了。建议将U盘插到电脑上,看任务栏中是否显示图标,如果显示,在我的电脑点右键查看属性——高级——硬件——设备管理器——查看里面是否有问号的设备,在问号设备上点右键——更新驱动程序然后下一步——否暂时不连接到网络——下一步自动安装软件(推荐)就可以了另外:系统不认U盘的几种处理方法1.禁用主板usb设备。管理员在CMOS设置里将USB设备禁用,并且设置BIOS密码,这样U盘插到电脑上以后,电脑也不会识别。这种方法有它的局限性,就是不仅禁用了U盘,同时也禁用了其他的usb设备,比如usb鼠标,usb光驱等。所以这种方法管理员一般不会用,除非这台电脑非常重要,值得他舍弃掉整个usb总线的功能。但是这种屏蔽也可以破解,即便设置了密码。整个BIOS设置都存放在CMOS芯片里,而COMS的记忆作用是靠主板上的一个电容供电的。电容的电来源于主板电池,所以,只要把主板电池卸下来,用一根导线将原来装电池的地方正负极短接,瞬间就能清空整个CMOS设置,包括BIOS的密码。随后只需安回电池,自己重新设置一下CMOS,就可以使用usb设备了。(当然,这需要打开机箱,一般众目睽睽之下不大适用~~)2.修改注册表项,禁用usb移动存储设备。打开注册表文件,依次展开"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbehci”双击右面的“Start”键,把编辑窗口中的“数值数据”改为“4”,把基数选择为“十六进制”就可以了。改好后注销一下就可以看见效果了。为了防止别人用相同的方法来破解,我们可以删除或者改名注册表编辑器程序。提示:“Start”这个键是USB设备的工作开关,默认设置为“3”表示手动,“2”是表示自动,“4”是表示停用。3.在computermanagement里将removablestorage的使用权限禁止。computermanagement是一个windows管理组件,可以在控制面板——管理工具——计算机管理打开。在该工具窗口中storage——removablestorage——property中,general项,可以控制系统托盘是否显示security则可以管理移动存储设备的使用权限。在security中将普通用户的使用权限降低,就可以达到禁用u盘的目的。破解的方法也很简单,管理员降低普通用户移动存储设备的使用权限,但未必禁用computermanagement的使用权限。普通用户可以通过这个工具解除usb移动存储设备的使用权限限制。另外,值得一提的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论