FreeMarker改进并整合企业新闻发布的应用

【摘 要】众多企业都用Web发布新闻信息,新闻信息在绝大多数时候样式固定不变.FreeMarker是一个使用纯Ja编写的模板引擎,能够基于模板动态和静态生成HTML网页.本文在企业应用中,利用FreeMarker模板技术为某企业进行新闻网页改造,改造方式分为Servlet动态生成新闻、后台生成静态Html新闻,在新闻消息的整合和企业版本升级优势上得到充分体现.

【关 键 词 】新闻发布;FreeMarker;版本升级;Ja

1.引言

现在大部分企业或公司都要求有自己的网站,用来发布新闻信息展示公司自己的形象、宣传自己的产品、获取客户的反馈信息等.基于Web的系统由于前台页面经常需要改版,花费在维护界面改动上的成本越来越高[1,3].经研究表明,这些网站的网页显示风格在一段时间内不会变化.如果将网站的显示风格抽象成固定模板,而网站的信息内容独立管理,这样网站的显示和数据可分开管理和设计.通过FreeMarker引擎可将信息按照对应的模板生成所需要的HTML页面.这样一个模板可以应用到多条信息的显示上,而同一条信息也可以通过不同模板生成不同的网页,从而可以大大提高信息内容网站的建设和升级[1].下面以FreeMarker实现某企业新闻模块的改版升级为例,讲述FreeMarker的应用过程.

2.Freemarker简介

FreeMarker是基于Ja的开发包和类库,一种基于模板的、用来生成输出文本的通用工具.它一开始就是为MVC设计的,不依赖于Servlet,网络或Web环境,仅仅专注于展示,且程序逻辑(Ja程序)和页面设计(FreeMarker模板)分离,分层清晰、易于维护,利于分工合作,支持Struts2,Springmvc等主流Web框架的集成,简单易学、功能强大,免费开源.程序员可以将它嵌入到自己的项目中,实现MVC框架中的View层组件、Html页面静态化、代码生成工具、CMS模板引擎、页面栏目动态等.它可以从Servlet获取的数据来动态生成HTML代码,且编译速度非常快,与普通的HTML相比也毫不逊色[2],很多采用MVC模式的软件架构都使用FreeMarker来实现模板功能,支持从任意位置加载模板;从类路径下,从数据库中等,易于定义特设的宏和函数.它的核心原理是:数据模型+模版等于输出[1].

3.新闻发布改进并整合的设计与实现

在企业新闻的发布中,有一些新闻用户的访问量特别多,又有一些用户访问量比较少.针对这两种情况,程序设计人员怎么做呢?又怎么加以区分这两种新闻呢?文章给出具体步骤设计并实现.

3.1 定义Html网页模板,并用FreeMarker对其进行编程

3.1.1 手动制作网页

比如:制作topimgdowntext.,上方显示新闻的图片,下方显示新闻的文字,网页美工人员可以事先用做好.效果图略.

3.1.2 对模板进行编程

另存topimgdowntext.网页为topimg-

downtext.ftl后缀文件,用FreeMarKer语言对其进行编程,原则是只对需要变动的数据进行数据替换,比如这一种上方图片、下方文字新闻,在以后的新闻发布中会用很多次,那么需要替换的部分就是图片和文字,而新闻模板的样式是没有改变的.简单实例如下:替换img标签的${image1},p标签的${content}.更复杂的需要自己动手编程,对模板进行定义.

3.1.3 设置模板专用库templates

模板放于工程目录templates下,这个文件夹专用于存放各类型的网页模板,动态和静态方式都需要调用这个目录下的模板,设置文件夹的目的是为了方便工程管理.还可以自定义模板,导入到模板库,方便新闻发布者预览和调用,预览时候配合原模板的Html文件.


3.2 整合并改进新闻发布

通过对企业单位的分析,发现在实际的网站访问中,有一些新闻用户点击率相当的高,有一些新闻用户点击率不高,于是从服务器承受访问压力的角度来看,对于那些访问不高的新闻采取Servlet动态加载模板输出新闻网页来实现;对于那些访问量特别高的新闻采取新闻发布时,用模板技术,先在后台生成静态的Html新闻网页,并按日期、分类存放在服务器端(sina,sohu大多采取这种方式),当用户访问时候直接调用静态网页就行了,这样可以减轻因服务器编译、执行带来性能上的压力.

3.2.1 Servlet动态输出网页实现

WEB-INF\web.xml中的配置

Hello

logic.freemaker.Hello

Hello

*.to

说明:在配置Servlet的时候,servlet-name名字可以任意起名,url-pattern可以不用设置,这里设置成*.to为为了和项目中用到的Struts中的*.do格式统一,servlet-class是需要手动写的ja代码.关键代码片段如下:

Configuration cfg等于new Configuration();

cfg.

setServletContextForTemplateLoading (getServletContext(),SystemPara.templatesAddr);设置FreeMarker的模版文件位置

Map root等于new HashMap();建立数据模型

root.put("content",News_Content);为新闻内容赋值;

root.put("image1",ImgAddr+imgsName);为新闻图片赋值;

数据库设计部分内容如下:

字段说明:News_Content,专门存放新闻的文字,New_Src是新闻图片存放位置,News_Template在templates模板目录下,具体调用的模板名.这种方式下对软件版本的改版、升级和维护比较有利.因为新闻的内容始终保持在数据库或文件服务器里面,我们只需要对模板进行修改,又可以利用原来数据重新生成新的新闻网页,缺点就是需要用数据库存储新闻的内容和图片,需要对数据库进行设计.

3.2.2 静态输出网页Html的实现

定义后台输出文件的ja处理类

本系统为例:ja处理类的包名目录是:src\logic\freemaker\.里面定义了四个常用新闻模板处理的ja类:多图片新闻,文本新闻,上面图片、下面文字新闻和上面两张图片,下方文字的新闻.

举例MutiImages.ja多图片新闻生成为例,核心代码如下:

Template temp等于cfg.getTemplate(News_Template);加载模板,模板不同样式.

Map root等于new HashMap();

root.put("title",Title);

root.put("content",Content);

root.put("imgslist",ImgAddr);

Writerout等于newOutputStreamWriter(new FileOutputStream(OutHtmlAddr),"GBK");

News_Template变量为加载模板的变量,这里引用的是事先在模板库目录templates下定义好的模板.

ImgAddr为List变量,然后再以文本输出流的形式,把文件输出到工程项目规定的地址,就完成静态网页的生成.

3.3 新闻发布策略分析

新闻网页的设计中,我们是选择采取servlet方式输出,还是先输出静态网页文件,再提供给用户访问呢?这需要额外的设计一个策略选择器.第一步:开发人员可以对该单位进行初步的调研,对该模块新闻的发布预先定义两种模式中的一个.第二步,对新闻网页按日,按月等进行用户访问量的统计,同时对Web服务器的性能进行同步检测,对检测的结果记录下最高和最低的峰值和出现的时间点,然后和这期间的用户访问量做比对,对比对的结果,我们可以加权求一个相对的平均值,超过这个值的这类新闻就按照静态生成网页形式来解析,提供给用户访问;低于这个值,也就是用户访问比较少的情况下,就采取servlet来访问.这样可以相对达到一个平衡.

4.总结

本文用FreeMarKer模板引擎技术,对某单位的新闻发布系统进行了改造和整合.在这过程中,详细的把开发技术和流程做了介绍.通过实践表明,FreeMarKer模板技术配合servlet动态和后台静态输出两种方式可以快速对网站的新闻版块进行升级改造,大大缩短人力和财力.

类似论文

“TXNews”新闻发布系统与设计

[摘 要]随着Inter的快速发展和普及,计算机网络、广播电视网络、通信网络的进一步融合,越来越多的企业、组织和。
更新日期:2024-9-10 浏览量:117880 点赞量:25605

基于.NET的校园新闻发布系统的设计与实现

摘 要:新闻发布系统是每个高校在教学管理工作中不可或缺的工具 文章结合高职院校的特点出发,采用B/S三层架构及RBA。
更新日期:2024-4-5 浏览量:13547 点赞量:5010

企业新闻宣传工作

摘 要:新形势下,企业宣传有利于保证企业正确的政治导向,提升企业形象,有利于服务企业改革发展稳定大局,有利于保障生产经营工。
更新日期:2024-9-18 浏览量:116928 点赞量:24838

基于ASP的商会动态新闻发布系统

摘 要:本文主要讲述了基于ASP技术和Access数据库技术的商会动态新闻发布系统的设计和开发 主要针对商会网。
更新日期:2024-1-22 浏览量:21334 点赞量:6094

海尔整合企业文化建设的重要性

[摘 要]企业以文化的方式存在,企业的发展首先是文化的发展,企业文化的发展方向,İ。
更新日期:2024-2-5 浏览量:9380 点赞量:3658

企业新闻发言人的定位与任务

[摘 要 ] 企业新闻发言人是传播和维护企业形象的信息管理者、企业危机公关的核心人物,担负着洞悉“媒体是怎样。
更新日期:2024-12-20 浏览量:155918 点赞量:33311