2009.05 01

放弃CMS系统,使用Fmpp和freemarker从本地创建纯静态网站(1)

发表: keel 20:55:12 | 撰文 | JAVA

在上个世纪90年代,很多人创建网站都是使用的Dreamweaver创建静态的html文件,然后上传到服务器的。这种方式最简单而且直接,从今天的角度来看仍然还是最为稳定和高性能的,当然它最大的缺点就是难以维护,做一个公司简介,业务介绍之类的“公司网站”当然问题不大,但对于真正有点内容的门户,就基本上不可能维护起来了。虽然Dreamweaver有“模板”和“库”的方式可实现模块化的静态站构建,而且有相当强大的html重构功能,但仍然不足以对网站内的静态页内容进行管理和维护。 所以,这种情况一般都需要使用服务端的动态页技术,如ASP,PHP等。

到今天来看,服务端的动态技术得到了很强的发展,从JAVA的角度看过去,就可以看到眼花缭乱的服务端WEB技术,还可以看到各种复杂的架构和分层。而且,不少CMS系统都以生成静态页的方式来提升站点的性能。 其实,对于小型站来讲,CMS系统并不是必须的,有一个很好的工具可以使用:fmpp。

简单来讲,fmpp就是使用freemarker模板引擎来生成文件的工具,它有很多的用途,在这里,我用它来生成纯静态的Blog站,也就是本站 www.k99k.com

fmpp可以设置它的数据源,输出方式,编码等,足以满足一般网站的需求,而且因为基于模板技术,每个页面的每个细节都可以随意进行修改,而不会局限于某某系统的功能。于是就形成了以下目标:
  • 通过freemarker模板和数据文件在本地生成静态html文件,然后进行上传更新.
  • 每新添一篇文章,就是新写一个数据页,然后执行fmpp命令完成静态页生成,类别,标签页等也随之自动进行处理.
  • 可以控制每个内容页的keywords,description,title,html文件名信息,这是很少有cms系统能做全和做好的。
  • 自动生成面向google的sitemap文件,自动生成rss文件
  • 后期可以通过fmpp的front-end机制,设置一个内容输入界面,并自动完成FTP上传工作
现在除了最后一点,其他的均已实现,大家可以看看本站,就是这样炼成的,更新和修改起来也是非常方便快捷,所有的操作都在本机运行,主机上不需要任何服务端技术,一个简单的http服务器就行了,安全性和性能也是没说的了。
[继续阅读]

2009.04 11

Google AppEngine for java 的JDO测试

发表: keel 20:02:12 | 撰文 | JAVA Google AppEngine for java

研究了一下dataStore文档,并作了一个简单的留言板,没有用DEMO里的那个,自己做的更方便修改,省时间。

有几个心得:
  • 使用eclipse的google插件可以节省很多必要的麻烦,我在前文中已有说明。
  • google 的dataStore分为标准api和low api(底层api),标准api分为jdo和jpa两种。底层API看上去比较复杂,文档也少(实际上只有javadoc),而比较jdo和jpa,虽 然后者比较新,但显示google对jdo的支持更全面,从文档和DEMO可以看出。
  • 按google的建议,先创建一个PMF工厂,然后使用Query对象构造查询,删除和新增经测试问题都不大,关键是查询和index。
感觉最麻烦的就是索引(index)处理了,与SQL相比,这一部分比较不太一样。eclipse在build项目时会自动处理Query产生的 index,并在WEB-INF/appengine-generated/下生成datastore-indexes-auto.xml配置文件,如果有数据更新,还会生成local_db.bin,这实际上就是数据保存的文件了,删除这个文件数据就消失了,这个文件不会上传到googleApp,所以本地调试时生成的数据是不会在上传时与googleApp上的数据同步的。
[继续阅读]

2009.04 09

GoogleAppEngine for Java的eclipse插件下载

发表: keel 21:52:12 | 撰文 | JAVA Google AppEngine for java

Google App Engine for Java的eclipse插件非常好!
很多烦琐的操作和步骤都代劳了。
比如:
  • 创建project项目的结构
  • 加入jdo,jpa的相关lib
  • build时使用的jdo优化
  • 直接集成jetty服务器测试
  • 最重要的,直接deploy,也就是上传你的APP
AppEngine for Java的eclipse插件下载

一切都很好,但是第一次下载时简单慢得夸张(eclipse3.4- ganymede),其根本原来原来是ganymede的update目录下载不了(这个是从eclipse的官网下的,google不会这么慢)。

这里提供一个Google App Engine for Java的 eclipse3.4-(ganymede) 插件下载
[继续阅读]

2009.04 09

Google App Engine for Java的JSP中文问题

发表: keel 21:02:12 | 撰文 | JAVA Google AppEngine for java

现象:直接使用java-sdk上传或使用eclipse上传后发现JSP中的中文是乱码的,Servlet在设置好request和respone的encoding后处理中文没有问题。

在使用命令行方式上传中文的JSP时,我发现有一个JSP报错如下:
--------------------------------------
8% Compiling jsp files.
2009-4-10 8:43:16 org.apache.jasper.JspC processFile
信息: Built File:a.jsp
11% Compiling java files.
classes/org/apache/jsp/a_
jsp.java:43: 警告:编码 GB18030 的不可映射字符
out.write("...head> meta http-equiv=/"Content-Type/" content=/"text/html; charset=UTF-8/" /> title>鎴戞潵浜??/title> head> body> ");
1 警告
--------------------------------------
(因为blog发表的要求,部分html代码作了改动)

这说明在使用org.apache.jasper.JspC processFile进行Compiling jsp files使用了GB18030而不是UTF-8,而且在生成的临时文件夹中可以看到jsp编译后的.java文件直接就是乱码的,所以,并不是 googleApp的server不支持,而是appengine-java-sdk的JSP编译器的编码有问题。
[继续阅读]

Pages:   <<  1 | 2 | 3