网页静态化-FreeMark

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37499059/article/details/79967796

1.1. 什么是freemarker

FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarkerWeb容器无关,即在Web运行时,它并不知道ServletHTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XMLJSPJava 等。

目前企业中:主要用Freemarker做静态页面或是页面展示

1.2. Freemarker的使用方法

freemarkerjar包添加到工程中。

Maven工程添加依赖

<dependency>
  <groupId>org.freemarker</groupId>
  <artifactId>freemarker</artifactId>
  <version>2.3.23</version>
</dependency>

原理:

使用步骤:

第一步:创建一个Configuration对象,直接new一个对象。构造方法的参数就是freemarker对于的版本号。

第二步:设置模板文件所在的路径。

第三步:设置模板文件使用的字符集。一般就是utf-8.

第四步:加载一个模板,创建一个模板对象。

第五步:创建一个模板使用的数据集,可以是pojo也可以是map。一般是Map

第六步:创建一个Writer对象,一般创建一FileWriter对象,指定生成的文件名。

第七步:调用模板对象的process方法输出文件。

第八步:关闭流。


模板:ftl/hello.ftl

${hello}

测试:

package cn.e3mall.freemarker;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class FreeMarkerTest {
	@Test
	public void testFreeMarker() throws Exception {
		//1、创建一个模板文件
		//2、创建一个Configuration对象
		Configuration configuration = new Configuration(Configuration.getVersion());
		//3、设置模板文件保存的目录
		configuration.setDirectoryForTemplateLoading(new File("E:\\eclipse\\workplace\\e3-item-web\\src\\main\\webapp\\WEB-INF\\ftl"));
		//4、模板文件的编码格式,一般就是utf-8
		configuration.setDefaultEncoding("utf-8");
		//5、加载一个模板文件,创建一个模板对象。
		Template template = configuration.getTemplate("hello.ftl");
		//6、创建一个数据集。可以是pojo也可以是map。推荐使用map
		Map data = new HashMap<>();
		data.put("hello", "hello freemarker!");
		//7、创建一个Writer对象,指定输出文件的路径及文件名。
		Writer out = new FileWriter(new File("F:\\hello.txt"));
		//8、生成静态页面
		template.process(data, out);
		//9、关闭流
		out.close();
	}
}


ASP网页的伪静态化

04-10

asp网页的伪静态化,既有利于保留动态网页的交互性,方便性,又具有静态网页的搜索引擎的友好性。rn 这段时间一直想把自己的网站(www.yilv.net)静态化,真静态化有许多的不方便,决定做伪静态化。于是在百度上搜索,发现就那么几篇文章,被许多的网站转来转去,就是那么仅有的文章,也说得不太清楚。自己费了很大劲,花了很长时间,终于把自己的网站绝大部分伪静态化了。写这个文章的目的是希望有此要求的朋友依葫芦画瓢,完成网站的伪静态话。总体来说,我的文章努力做到傻瓜,不涉及深奥的知识,因为我也是ASP新手,也并不懂深奥的网页制作知识。我的操作系统是widows xp,服务器是IIS5,动态网页技术是ASPrn 第一步,动态网址到静态网址的映射。rn 需要的软件Isapi rewrite,我用的是isapi_rwl_0055版,免费的。rn 1、安装Isapi rewrite,这个简单,默认安装就可以了。我安装的是C:\Program Files目录。rn 2、IIS设置,打开IIS(Internet信息服务),点开网站,在右键点击网站,点属性,点Isapi 筛选器选项卡,点击添加,筛选器名称一栏起个名,随便起个都可以,个人认为应该是英文名,可执行文件(我的是)C:\Program Files\Helicon\ISAPI_Rewrite\ISAPI_Rewrite.dll。点击确定就可以了。rn 3、Isapi rewrite的设置,找到Isapi rewrite 安装文件夹(我默认安装在C盘,C:\Program Files\Helicon\ISAPI_Rewrite)httpd.ini,去掉其只读属性,在其内添加规则。下面举例说明,比如我的主页(www.yilv.net)有一个链接是这样的。http://www.yilv.net/news/detail.asp?/id=数字 那么如何把其静态化呢?以下是静态化的规则。rnRewriteRule ^(.*)/news/detail_([0-9]+)\.html$ $1/myweb/news/detail.asp\?n_id=$2rn 其实也就是把/myweb/news/detail.asp\?n_id=改为news/detail_([0-9]+)\.html 其中第一个/代表网页的根目录,([0-9]+)代表$2,大家可以去仔细琢磨,其实很简单。rn 第二步,修改网页,把网页中的动态地址改为静态。开始我在网上搜索了许久,都省略了这一步,还以为Isapi rewrite 可以直接把网页改为静态呢?现在明白了,他其实只能把静态的网址翻译为动态的,是一个单向的过程,本身不能修改网页中的动态网址。需要在这里说明的是,我的网站(www.yilv.net)动态网页都比较简单,结尾都是与asp?id=1类似的,也就是?后跟一个英文的项目名(如上例中的id)加等于号加数字,更复杂一些的网址我也不会,不过也应该不会太复杂。比如我网页中有一个链接,修改之前是这么样的rn"> rn修改之后是这也的。 rn .html">rn 请看我修改前后的网页。rn [img=http://www.yilv.net/myimage/xiugaiqian.jpg][/img]rn rn 下面看看我是如何改的。rn 好了,基本上大工告成了。rn总结一下伪静态化的原理,用户用浏览器浏览静态化的网页,点击网页中的静态链接网址,服务器接收后由isapi rewrite翻译成动态网址,向服务器提交此动态网址,服务器向客户端提交网页。rn 需要说明的是,对于如何asp网页伪静态化,知能说是知其皮毛而已。大家有什么好的经验可以相互交流,错误之处也希望大家指正。rn 要看效果,打击可以点击我的网站www.yilv.netrn

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试