一.计划
1 | 1、使用freemarker实现网页静态化 |
二.网页静态化
可以使用Freemarker实现网页静态化。
2.1 什么是freemarker
FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。
目前企业中:主要用Freemarker做静态页面或是页面展示
2.2 Freemarker的使用方法
把freemarker的jar包添加到工程中。
Maven工程添加依赖
1 | <dependency> |
1 | 使用步骤: |
模板:
${hello}
1 | /** |
2.3 模板的语法
2.3.1 访问map中的key
${key}
2.3.2 访问pojo中的属性
Student对象。学号、姓名、年龄
${key.property}
2.3.3 取集合中的数据
1 | <#list studentList as student> |
2.3.4 取循环中的下标
1 | <#list studentList as student> |
2.3.5 判断
1 | <#if student_index % 2 == 0> |
2.3.6 日期类型格式化
2.3.7 Null值的处理
2.3.8 Include标签
1 | <#include “模板名称”> |
2.4 创建整合spring的配置文件
得需要先导入一个spring-context-support的jar包,这个我们之前导入过2.4.1 创建整合spring的配置文件
在我们的springmvc.xml文件中加入如下代码(就是将我们之前用的freemark中的类配置到spring容器中)1 | <bean id="freemarkerConfig" |
需要编写一Controller进行测试
2.4.2 Controller
1 | 请求的url:/genhtml |
1 | /** |
2.5 商品详情页面静态化
2.5.1 网页的静态化方案
- 输出文件的名称:商品id+“.html”
- 输出文件的路径:工程外部的任意目录。
- 网页访问:使用nginx访问网页。在此方案下tomcat只有一个作用就是生成静态页面。
- 工程部署:可以把e3-item-web部署到多个服务器上。
- 生成静态页面的时机:商品添加后,生成静态页面。可以使用Activemq,订阅topic(商品添加)
2.5.2 实现步骤
- 先看看之前实现的消息接收和发送
- 导入相关activemq的jar包
- 实现监听消息接收的监听器
- 将jsp改造为模板
- 实现监听器
1 | /** |
- 配置商品监听消息在spring容器中(我们之前在search_service中配置过)
1 | <?xml version="1.0" encoding="UTF-8"?> |
三.Sso系统分析
3.1 什么是sso系统
SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。
3.2 为什么要有单点登录系统
3.2.1 传统的登录实现方式
此方式在只有一个web工程时是没有问题。
3.2.2 集群环境下
集群环境下会出现要求用户多次登录的情况。
解决方案:
1. 配置tomcat集群。配置tomcatSession复制。节点数不要超过5个。
2. 可以使用Session服务器,保存Session信息,使每个节点是无状态。需要模拟Session。
单点登录系统是使用redis模拟Session,实现Session的统一管理。