GAE-JCMS基于GAE和JAVA的CMS,BLOG,ALBUM功能系统   【Soft/Code】
浏览数:555      下载数:353

         自上次在GAE上用Python做了一个仿爱墙风格的留言本后(网站:http://cwq.iou1314.com/open/gae-python-webpy-jquery_a128 基于GAE-Python),总觉得还是用java开发GAE的程序来得顺手,虽然限制多多,但毕竟相对于Python,我还是比较熟悉Java,虽然JDO未用过,GQL限制多多,还是用java比用python易得上手。
         因为BB的成长记录网站一直采用PHP开发,是ixweb的国外空间,网站有大量的图片和视频,对于国外空间在国内访问速度的局限性,一直想把BB的网站移到GAE上,又想到BB的网站类CMS,BLOG和相册空间,既然这样,就写一个简单的CMS/BLOG/ALBUM吧。用时两周多,终于写完了,取其名为GAE-JCMS,winxp+Eclipse+JDK6+GAE SDK1.3.1开发。因为该系统只是个人使用的,本人的要求并没有上传图片并写入数据库,所以相册模块没有提供上传的功能。(最新版本已经添加上传图片的功能。)
         在开发过程中碰到几个突出的问题
         1)中文乱码问题,文件编码和页面字符编码都是UTF-8了,还是乱码,查看编译后的jsp文件,发现编译后的java文件中中文都是乱码,那即使加了CharacterEncodingFilter,也是无补于事的。这个问题一直困绕了我很久,最后无意中在一个jsp头中加入pageEncoding="UTF-8"后,才发现终于找到了在GAE上解决乱码的问题了。
         2)GQL的限制,GQL的文档虽然比较详细,但是都是英文,而且不可能有尽全美,多条件查询中,不等式的条件只能有一个,而且只能使用不多于一个的参数。
         // in GQL, Only one inequality (include <,>,<=,!=,>=) filter per query is supported.
         // query only one parameter is supported.
         // if use gql, must according to where->declare->orderby
         // order by x, x must be in the first of the filters
         3)单向关联,不像Hibernate那样自动fetch,所以一直取得null,最后用Key实现单向关联,但还是要手工去fetch,好像系统比较简单,如果是复杂一点的系统,相信会严重影响代码的质量的性能。
         4) GQL和批量插入的性能,用代码批量导入一些数据,查看后台的LOG,发现了几个warning,都是cpu的峰值高的警告。


         演示地址:http://gae-jcms.appspot.com/gallery.html
         后台演示地址:http://gae-jcms.appspot.com/login.html?assd=d
         BB的网址:http://czj.iou1314.com