`
a137268431
  • 浏览: 154382 次
文章分类
社区版块
存档分类
最新评论

Spring mvc系列八之 页面静态化(一)

 
阅读更多

提升网站性能的方式有很多,例如使用缓存技术,页面静态化等.对于一个网站来说,如果数据更新频率不高的话,那就没有必要没次都要从数据库取数据,一来调动数据库,响应速度慢,二来增加服务器对数据响应的负荷,三来不利于优化引擎.随着一个网站的访问量的加大,每次从数据库读取数据是以效率为代价的,特别是一些门户网站,网站访问慢对用户体验很不好.所以页面静态化是一个不错的选择.

页面静态化适合的场景:

  1. 数据更新不高的网站,如新闻型网站
  2. 实时性不是很高的网站,当然跟静态的方式有关,如果做成没增删改都静态化一次那就没这个问题,如果做成每隔一段时间更新一次就不可以了.
  3. 数据量不是很大的网站,如果一个网站有上万条记录,每条都生成一个页面谁受得了.

页面静态化的方法很多,这次我是基于freemarker.freeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。当然还有比较出名的是Velocity.在使用freeMarker前有必要先讲一下freeMarker标签的用法.

freeMarker一些内置函数:

内置函数freeMasequence?first返回sequence的第一个值。

sequence?last返回sequence的最后一个值。

sequence?reverse将sequence的现有顺序反转,即倒序排序

sequence?size返回sequence的大小

sequence?sort将sequence中的对象转化为字符串后顺序排序

sequence?sort_by(value)按sequence中对象的属性value进行排序

直接获取Controller传过来的变量.

Html代码收藏代码
  1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. ${title}
  9. </body>
  10. </html>

获取Controller传过来的对象.

Html代码收藏代码
  1. ${user.userPassword}

遍历集合:

Html代码收藏代码
  1. <#listlistsasuser>
  2. 用户名:${user.userName}<br/>
  3. 密码:${user.userPassword}<br/>
  4. 住址:${user.userInfo.address}<br/>
  5. </#list>

这是关于遍历集合其它一些用法,不多说.看了就懂:

Html代码收藏代码
  1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <#listlistsasuser>
  9. 用户名:${user.userName}<br/>
  10. 密码:${user.userPassword}<br/>
  11. 住址:${user.userInfo.address}<br/>
  12. </#list>
  13. <br/>
  14. list隐含变量item_index,当前迭代项在所有迭代项中的位置<br/>
  15. <#listlistsasuser>
  16. 第${user_index+1}个用户<br/>
  17. 用户名:${user.userName}<br/>
  18. 密码:${user.userPassword}<br/>
  19. 住址:${user.userInfo.address}<br/>
  20. <hr/>
  21. </#list>
  22. list隐含变量item_has_next,用于判断当前迭代项是否是所有迭代项中的最后一项。<br/>
  23. <#listlistsasuser>
  24. 用户名:${user.userName}<br/>
  25. 密码:${user.userPassword}<br/>
  26. 住址:${user.userInfo.address}<br/>
  27. <hr/>
  28. <#if!user_has_next>
  29. 共有${lists?size}最后一个用户名是:${user.userName}
  30. </#if>
  31. </#list>
  32. <h4>list隐含变量sort_by有一个参数,该参数用于指定想要排序的子变量,排序是按照变量对应的值进行排序</h4><br/>
  33. <#listlists?sort_by("userName")asuser>
  34. 用户名:${user.userName}<br/>
  35. 密码:${user.userPassword}<br/>
  36. 住址:${user.userInfo.address}<br/>
  37. <hr/>
  38. </#list>
  39. <h4>list隐含变量reverse还可以同sort_by一起使用</h4><br/>
  40. <#listlists?sort_by("userName")?reverseasuser>
  41. 用户名:${user.userName}<br/>
  42. 密码:${user.userPassword}<br/>
  43. 住址:${user.userInfo.address}<br/>
  44. <hr/>
  45. </#list>
  46. </body>
  47. </html>

获取Map数据:

Hash的内置函数
hash?keys 返回hash里的所有key,返回结果为sequence
hash?values 返回hash里的所有value,返回结果为sequence

Html代码收藏代码
  1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <#listmaps?keysastestKey>
  9. 键${testKey}值${maps[testKey].userName}
  10. </#list>
  11. </body>
  12. </html>

直接获取Map的值:

Html代码收藏代码
  1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <#listmaps?valuesasvalue>
  9. 值${value}
  10. </#list>
  11. </body>
  12. </html>

讲了freemarker后下一篇就讲一讲如何使用freemarker结合spring mvc实现页面静态化.

分享到:
评论

相关推荐

    Spring MVC 教程快速入门 深入分析

    Spring MVC是一种基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,使用了IoC容器,支持RESTful风格的应用程序开发。Spring MVC通过分离模型(Model)、视图(View)和控制器(Controller)来简化Web开发...

    Spring mvc 教程

    Spring Web MVC 是 Spring Framework 的一个重要组成部分,主要用于构建基于 Java 的 Web 应用程序。它提供了一个灵活且强大的 MVC 实现,使得开发者能够轻松地开发出复杂的 Web 应用。 #### Spring Web MVC 的新...

    spring mvc restful service

    5. **项目结构**:一个典型的Spring MVC Maven项目结构包括`src/main/java`(存放源代码)、`src/main/resources`(存放配置文件和静态资源)、`src/main/webapp/WEB-INF`(存放`web.xml`配置文件)等。 6. **配置...

    Spring MVC框架简介和使用

    DispatcherServlet 是 Spring MVC 的核心组件之一,负责接收请求并分发给合适的控制器进行处理。其启动流程大致如下: 1. **类的继承关系**:`DispatcherServlet` 继承自 `FrameworkServlet`,而 `FrameworkServlet...

    基本的spring mvc + spring security实现的登录(无数据库)

    在本项目中,我们主要探讨的是如何利用Spring MVC和Spring Security框架构建一个基本的无数据库登录系统。Spring MVC是Spring框架的一部分,用于处理Web应用程序的请求-响应模型,而Spring Security则是一个强大的...

    Spring MVC入门教程

    七、spring mvc 如何访问到静态的文件,如jpg,js,css? 八、spring mvc 请求如何映射到具体的Action中的方法? 九、spring mvc 中的拦截器: 十、spring mvc 如何使用拦截器? 十一、spring mvc 如何实现全局的异常...

    spring mvc mybatis velocity 示范

    Spring MVC 是Spring框架的一部分,用于构建高效、灵活的Web应用程序。MyBatis 是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。Velocity 是一款强大的模板引擎,能够帮助开发者将动态内容和静态...

    spring mvc项目创建

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在本项目创建过程中,我们将深入探讨如何配置一个基本的 Spring ...

    Spring+Spring MVC+Spring JDBC+MySql实现简单登录注册

    在本项目中,我们主要利用Spring框架,包括其核心模块Spring、MVC模块Spring MVC以及数据访问/集成模块Spring JDBC,结合MySQL数据库来构建一个基础的登录注册系统。以下是这个项目涉及的关键技术点: 1. **Spring...

    spring mvc+spring+maven框架项目,纯净项目

    这个"spring mvc+spring+maven框架项目"提供了一个纯净的基础,便于开发者快速搭建和理解这三者之间的协作。 **Spring MVC** Spring MVC是Spring框架的一部分,是一个用于构建Web应用的轻量级MVC(Model-View-...

    Spring MVC 教程 快速入门 深入分析

    七、spring mvc 如何访问到静态的文件,如jpg,js,css? 八、spring mvc 请求如何映射到具体的Action中的方法? 九、spring mvc 中的拦截器: 十、spring mvc 如何使用拦截器? 十一、spring mvc 如何实现全局的异常...

    jQuery Spring MVC

    本文将深入探讨如何将jQuery与Spring MVC进行有效整合,以及一个使用jqGrid的实例。 ### jQuery 简介 jQuery 是一个轻量级的JavaScript库,简化了DOM操作、事件处理、动画效果以及Ajax交互。它通过提供简洁的API,...

    spring-mvc 基础功能之源码debug

    这篇博客“spring-mvc 基础功能之源码debug”似乎深入探讨了Spring MVC的核心功能,并通过源码级别的调试来帮助读者理解其工作原理。 首先,我们来看Spring MVC的请求处理流程。当一个HTTP请求到达服务器时,...

    spring mvc demo下载地址

    这个简易的Spring MVC demo包含了一系列关键知识点,对于初学者来说是很好的学习资源。下面将详细阐述这些知识点: 1. **MVC模式**:Spring MVC的核心设计模式,它将应用程序分为三个主要部分:模型(Model)、视图...

    jetty 手动 加载spring mvc demo

    【jetty手动加载spring mvc demo】是一个关于如何在Jetty服务器上手动配置并运行Spring MVC应用程序的实践教程。在本文中,我们将深入探讨如何不依赖于自动化工具或集成开发环境(IDE)来完成这个过程,这对于理解...

    java 页面静态化

    - **PageCache**:一些Web框架如Spring MVC提供了内置的缓存机制,可以用于实现页面静态化。 - **Nginx** 或 **Apache** 的URL重写功能:可以通过配置规则,将动态请求重定向到对应的静态HTML文件。 在进行页面静态...

    spring mvc过程详解

    Spring MVC 作为一种成熟且高性能的 MVC 框架,已经成为了现代 Java Web 开发的首选工具之一。其简洁的设计理念、强大的功能集和出色的性能表现使其在众多框架中脱颖而出。无论是在大型企业级应用还是中小规模项目中...

    页面静态化

    页面静态化是Web开发中的一个重要概念,主要目的是提高网站的访问速度和搜索引擎优化(SEO)。在Java Web开发中,页面静态化通常涉及到将动态生成的HTML页面转化为纯HTML文件,以便用户请求时无需通过服务器执行复杂...

Global site tag (gtag.js) - Google Analytics