google appengine for java 乱码解决方案

由于在windows环境下开发。所以在本地中文不会出现乱码。但上传到google appengine上。就会出现中文乱码。

这与jsp的编译环境有关系。所以在这里。我们不用jsp.我们选择freemarker.

1.首先需要将freemarker的jar包加到项目的环境中。
2.在web.xml中配置freemarker的servlet.在这里。我们对所有到html页面请示进行了拦截。代码如下:


<servlet>
  <servlet-name>freemarker</servlet-name>
  <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
   
  <!-- FreemarkerServlet settings: -->
  <init-param>
    <param-name>TemplatePath</param-name>
    <param-value>/</param-value>
  </init-param>
  <init-param>
    <param-name>NoCache</param-name>
    <param-value>true</param-value>
  </init-param>
  <init-param>
    <param-name>ContentType</param-name>
    <param-value>text/html</param-value>
  </init-param>
   
  <!-- FreeMarker settings: -->
  <init-param>
    <param-name>template_update_delay</param-name>
    <param-value>0</param-value> <!-- 0 is for development only! Use higher value otherwise. -->
  </init-param>
  <init-param>
    <param-name>default_encoding</param-name>
    <param-value>GBK </param-value>
  </init-param>
  <init-param>
    <param-name>number_format</param-name>
    <param-value>########</param-value>
  </init-param>

  <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>freemarker</servlet-name>
  <url-pattern>*.html</url-pattern>
</servlet-mapping>

3.在建工程的时候默认有个testServlet .在request中设置变量。forward到index.html  就不会出现中文乱码。
4.在建html页面的时候。要把html页面的编码改成GBK.

第二种可以用论坛中淘宝编码解码。

在开发appengine中用jdo进行数据库查询是遇到的问题。
例如我有如下一条语句。  select from com.bqh.Greeting where isShow==1 order by id desc range 0,10

这条语句在本地appengine环境运行很好。但是发布到外网以后。就无法执行。
经过我反复验证。只要去掉where isShow==1就可以正常运行。

我准备用appengine for java写一个blog 。 地址http://pythonfn.appspot.com/

慢慢完善功能。以后会将代码发布到google code 上。希望大家支持。


下面的jar包是如何解决中文乱码的.

你可能感兴趣的:(java,freemarker,linux,windows,Google)