<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>lizongbo at 618119.com &#187; Java</title>
	<atom:link href="http://618119.com/category/java/feed" rel="self" type="application/rss+xml" />
	<link>http://618119.com</link>
	<description>工作,生活,java,apache,tomcat,Resin,mina,Hessian,Openfire,XMPP,RPC,Ubuntu</description>
	<lastBuildDate>Wed, 14 Apr 2010 13:15:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>将google托管的ajax js文件同步到本地服务器</title>
		<link>http://618119.com/archives/2010/04/14/164.html</link>
		<comments>http://618119.com/archives/2010/04/14/164.html#comments</comments>
		<pubDate>Wed, 14 Apr 2010 13:14:25 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://618119.com/?p=164</guid>
		<description><![CDATA[google提供了供全世界访问的公共javascript库托管，
参考：http://code.google.com/intl/zh-CN/apis/ajaxlibs/
只要使用 &#60;script src=&#8221;http://www.google.com/jsapi&#8221;&#62;&#60;/script&#62; 引用google的js，
然后使用 google.load() 方法，就可以指定载入对应库的对应版本。 例如：google.load(&#8220;jquery&#8221;, &#8220;1&#8243;);
就可以载入当前最新的jquery库。

虽然google承诺无限期地托管各版本的js文件，但是由于大部分人知道的原因，在国内使用这种方式共享js资源存在一定风险。
因此，我参考google对这些js的部署结构，将js下载回来放到了本地服务器。

目前托管的js库有以下组件：
jQuery
jQuery  UI
Prototype
script.aculo.us
MooTools
Dojo
SWFObject
Yahoo! 用户界面库 (YUI)
Ext Core
全部都同步下来，操作步骤如下：
先在Firefox里打开：
http://www.google.com/jsapi
然后将js保存到成本地文件，然后用Aptana打开，并格式化，然后找到
google.loader.rpl，然后把括号里一段json对象复制出来，定义成  var jslibs;
然后通过js生成对应js的url。然后使用java下载到本地保存到对应目录。
代码参考：
&#60;SCRIPT LANGUAGE=&#8221;JavaScript&#8221;&#62;
&#60;!&#8211;
var jslibs={
&#8220;:jquery&#8221; : {
&#8220;versions&#8221; : {
&#8220;:1.2.3&#8243; :  {
&#8220;uncompressed&#8221; : &#8220;jquery.js&#8221;,
&#8220;compressed&#8221; :  &#8220;jquery.min.js&#8221;
},
&#8220;:1.3.1&#8243; : {
&#8220;uncompressed&#8221; :  &#8220;jquery.js&#8221;,
&#8220;compressed&#8221; : &#8220;jquery.min.js&#8221;
},
&#8220;:1.3.0&#8243; :  {
&#8220;uncompressed&#8221; : &#8220;jquery.js&#8221;,
&#8220;compressed&#8221; :  &#8220;jquery.min.js&#8221;
},
&#8220;:1.3.2&#8243; : {
&#8220;uncompressed&#8221; :  &#8220;jquery.js&#8221;,
&#8220;compressed&#8221; : &#8220;jquery.min.js&#8221;
},
&#8220;:1.2.6&#8243; :  {
&#8220;uncompressed&#8221; : &#8220;jquery.js&#8221;,
&#8220;compressed&#8221; [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2010/04/14/164.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows下安装配置Apache cassandra 0.5.1</title>
		<link>http://618119.com/archives/2010/04/11/163.html</link>
		<comments>http://618119.com/archives/2010/04/11/163.html#comments</comments>
		<pubDate>Sun, 11 Apr 2010 06:34:32 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[cassandra]]></category>

		<guid isPermaLink="false">http://618119.com/?p=163</guid>
		<description><![CDATA[cassandra是facebook开源的，代码托管在apache,主页是：http://cassandra.apache.org/
目前版本0.5.1，首先下载最新版：
http://apache.freelamp.com/cassandra/0.5.1/apache-cassandra-0.5.1-bin.tar.gz
来源：
http://cassandra.apache.org/download/
解压到D:\Java\，生成到目录为：D:\Java\apache-cassandra-0.5.1
运行D:\Java\apache-cassandra-0.5.1\bin\cassandra.bat      ，提示错误信息如下：
D:\Java\apache-cassandra-0.5.1\bin&#62;cassandra.bat
找不到路径 &#8211; D:\Java\apache-cassandra-0.5.1\bin\lib
系统找不到指定的驱动器。
Starting Cassandra Server
Listening for transport dt_socket at address: 8888
Exception in thread &#8220;main&#8221; java.lang.NoClassDefFoundError: org/apache/cassandra/
service/CassandraDaemon
Caused by: java.lang.ClassNotFoundException: org.apache.cassandra.service.Cassan
draDaemon
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
Could not find the main class: org.apache.cassandra.service.CassandraDaemon.  Pr
ogram will exit.
打开cassandra.bat一看，发现取的CASSANDRA_HOME是当前目录，估计cassandra的开发者不用windows操作系统开发，或者是已经配置过环境变量CASSANDRA_HOME。
于是对照Apache Tomcat的bat文件，在cassandra.bat的 SETLOCAL后面加上一行 “cd ..”。然后重新运行bat。程序启动成功。
(http://ahuaxuan.javaeye.com/blog/603106 这篇文章说&#8221;在环境变量配置中加入CD=xxxx/cassandra根目录&#8221;是不合理的，CD本身就是调用cd命令输出当前路径，
即使要加全局环境变量，也是直接配置类似CASSANDRA_HOME=D:\Java\apache-cassandra-incubating- 0.5.1即可)
cassandra-cli.bat在SETLOCAL后面加上两行：“cd ..
if NOT DEFINED CASSANDRA_HOME set CASSANDRA_HOME=%CD%”
修改后，也能成功启动。
cassandra.bat 此时会发现“我的电脑”里多了一个磁盘目录P，从cassandra.bat中可以看到是运行了以下命令：
subst P: &#8220;%CASSANDRA_HOME%\lib&#8221;
P:
set CLASSPATH=P:\
这个命令将 [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2010/04/11/163.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用epub-tools抓取网页生成epub电子书，用epubcheck进行校验</title>
		<link>http://618119.com/archives/2010/03/04/162.html</link>
		<comments>http://618119.com/archives/2010/03/04/162.html#comments</comments>
		<pubDate>Thu, 04 Mar 2010 15:03:03 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[epub]]></category>

		<guid isPermaLink="false">http://618119.com/?p=162</guid>
		<description><![CDATA[最近在看epub格式的电子书，于是对epub格式的电子书有一点了解。
然后下载了epub-tools和epubcheck的代码，写了个小程序，通过分析网上小说主页和章节内容，然后生成epub格式的电子书。
epub-tools 来源：http://code.google.com/p/epub-tools/
epubcheck来源：http://code.google.com/p/epubcheck/
部分代码如下:
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
package com.lizongbo.epub;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import com.adobe.dp.epub.io.DataSource;
/**
*网上图片的数据源
*/
public class ImgFileUrlDataSource extends DataSource {
String url;
public ImgFileUrlDataSource(String url) {
this.url = url;
}
public InputStream getInputStream() throws IOException {
return new URL(url).openStream();
}
}
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
package com.lizongbo.epub;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import com.adobe.dp.epub.io.BufferedDataSource;
import com.adobe.dp.epub.io.OCFContainerWriter;
import com.adobe.dp.epub.io.StringDataSource;
import com.adobe.dp.epub.ncx.TOCEntry;
import com.adobe.dp.epub.opf.BitmapImageResource;
import com.adobe.dp.epub.opf.NCXResource;
import com.adobe.dp.epub.opf.OPSResource;
import com.adobe.dp.epub.opf.Publication;
import com.adobe.dp.epub.opf.Resource;
import com.adobe.dp.epub.ops.Element;
import com.adobe.dp.epub.ops.OPSDocument;
import com.adobe.epubcheck.api.EpubCheck;
import com.adobe.epubcheck.api.Report;
import com.adobe.epubcheck.util.DefaultReportImpl;
import javax.imageio.ImageIO;
/**
* 从网上抓取网页下来，打包成epub
* 书目录url：
* 参考 [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2010/03/04/162.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Eclipse 3.5.2及插件安装</title>
		<link>http://618119.com/archives/2010/03/04/160.html</link>
		<comments>http://618119.com/archives/2010/03/04/160.html#comments</comments>
		<pubDate>Thu, 04 Mar 2010 14:28:19 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[JAVA IDE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Bytecode]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[findbugs]]></category>
		<category><![CDATA[smplayer]]></category>
		<category><![CDATA[Subclipse]]></category>

		<guid isPermaLink="false">http://618119.com/?p=160</guid>
		<description><![CDATA[Eclipse 3.5.2及插件安装

1.首先下载Eclipse 3.5.2.

http://d2u376ub0heus3.cloudfront.net/technology/epp/downloads/release/galileo/SR2/eclipse-jee-galileo-SR2-win32.zip

来源：http://download.eclipse.org/eclipse/downloads/

2.下载相关插件：
a.Subclipse 1.6.8
来源：http://subclipse.tigris.org/
下载地址：http://subclipse.tigris.org/files/documents/906/47393/site-1.6.8.zip
b.Findbugs 1.3.9
来源：http://findbugs.sourceforge.net/
下载地址：http://nchc.dl.sourceforge.net/project/findbugs/findbugs%20eclipse%20plugin/1.3.9/edu.umd.cs.findbugs.plugin.eclipse_1.3.9.20090821.zip
c.Bytecode Outline plugin for Eclipse 2.2.10
来源： http://asm.ow2.org/eclipse/index.html
下载地址：
http://download.forge.objectweb.org/asm/asm-3.2.jar(Bytecode Outline依赖的jar)

http://download.forge.objectweb.org/asm/de.loskutov.BytecodeOutline_2.2.10.jar

3.把插件集中放到一个地方：
解压site-1.6.8.zip到D:\Java\ecplugin\subclipse
解压edu.umd.cs.findbugs.plugin.eclipse_1.3.9.20090821.zip到：D:\Java\ecplugin\findbugs\eclipse\plugins
确保D:\Java\ecplugin\findbugs\eclipse下面有features和plugins目录
复制asm-3.2.jar和de.loskutov.BytecodeOutline_2.2.10.jar到D:\Java\ecplugin\bytecode\eclipse\plugins
确保D:\Java\ecplugin\bytecode\eclipse下面有features和plugins目录

4.安装插件

新建目录 D:\Java\ec352\eclipse\links

在D:\Java\ec352\eclipse\links下面，新建subeclipse.link，内容为：path=D:\\Java\\ecplugin\\subeclipse
在D:\Java\ec352\eclipse\links下面，新建findbugs.link，内容为：path=D:\\Java\\ecplugin\\findbugs
在D:\Java\ec352\eclipse\links下面，新建bytecode.link，内容为：path=D:\\Java\\ecplugin\\bytecode
上面这样操作太麻烦，可以用下面的bat双击一次搞定
set ECPLUGIN_LINK=D:\Java\ec352\eclipse\links
mkdir %ECPLUGIN_LINK%
echo path=D:\\Java\\ecplugin\\subeclipse &#62; %ECPLUGIN_LINK%\subeclipse.link
echo path=D:\\Java\\ecplugin\\findbugs &#62; %ECPLUGIN_LINK%\findbugs.link
echo path=D:\\Java\\ecplugin\\bytecode &#62; %ECPLUGIN_LINK%\bytecode.link

5.配置maven
maven已经装好
运行
mvn eclipse:configure-workspace -Declipse.workspace=D:\javadev\workspace

	Tags: Bytecode, eclipse, findbugs, smplayer, Subclipse

	Related posts
	
	配置独立运行的jsp预编译ant脚本 (0)
	在神舟笔记本优雅HP540(d3)上安装Linux(Ubuntu8.10) (0)
	使用Eclipse的几点注意事项 (0)
	Ubuntu 8.10上我的常用软件安装与配置 (0)
	Jprofiler 5.1.2 配置。 (0)


]]></description>
		<wfw:commentRss>http://618119.com/archives/2010/03/04/160.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用Servlet Filter来防止Xss漏洞和SQL注入的方法</title>
		<link>http://618119.com/archives/2010/02/23/156.html</link>
		<comments>http://618119.com/archives/2010/02/23/156.html#comments</comments>
		<pubDate>Tue, 23 Feb 2010 14:32:20 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[servlet]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Xss]]></category>

		<guid isPermaLink="false">http://618119.com/?p=156</guid>
		<description><![CDATA[使用Servlet Filter来防止Xss漏洞和SQL注入的方法
在用java进行web业务开发的时候，对于页面上接收到的参数，除了极少数是步可预知的内容外，大量的参数名和参数值都是不会出现触发Xss漏洞的字符。而通常为了避免Xss漏洞，都是开发人员各自在页面输出和数据入库等地方加上各种各样的encode方法来避免Xss问题。而由于开发人员的水平不一，加上在编写代码的过程中安全意识的差异，可能会粗心漏掉对用户输入内容进行encode处理。针对这种大量参数是不可能出现引起Xss和SQL注入漏洞的业务场景下，因此可以使用一个适用大多数业务场景的通用处理方法，牺牲少量用户体验，来避免Xss漏洞和SQL注入。
那就是利用Servlet的过滤器机制，编写定制的XssFilter，将request请求代理，覆盖getParameter和getHeader方法将参数名和参数值里的指定半角字符，强制替换成全角字符。
使得在业务层的处理时不用担心会有异常输入内容。
相关的代码如下：
XssFilter.java
[code]
package com.lizongbo.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
public class XssFilter implements Filter {
@Override
public void init(FilterConfig config) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
XssHttpServletRequestWrapper xssRequest = new XssHttpServletRequestWrapper(
(HttpServletRequest) request);
chain.doFilter(xssRequest, response);
}
@Override
public void destroy() {
}
}
[/code]
XssHttpServletRequestWrapper.java
[code]
package com.lizongbo.filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
/**
*
* @author lizongbo
*
*/
public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
HttpServletRequest orgRequest = null;
public XssHttpServletRequestWrapper(HttpServletRequest [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2010/02/23/156.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows下编写google app engine jsp出现中文乱码问题的真正原因</title>
		<link>http://618119.com/archives/2009/04/12/148.html</link>
		<comments>http://618119.com/archives/2009/04/12/148.html#comments</comments>
		<pubDate>Sun, 12 Apr 2009 04:54:52 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[jspc]]></category>

		<guid isPermaLink="false">http://618119.com/?p=148</guid>
		<description><![CDATA[Windows下编写google app engine jsp出现中文乱码问题的真正原因，是com.google.appengine.tools.admin.Application里启动javac没加-encoding参数导致.
在Linux下，因为一般都是LANG=zh_CN.UTF-8，因此就不会遇到这个问题了。
Windows下一般是取的默认的file.encoding为GBK，因此根据jsp生成的class文件就是乱码内容了。
验证流程如下：
1.首先重命名E:\Java\appengine-java-sdk-1.2.0\lib\shared\jsp\jasper-compiler-5.0.28.jar为 jasper-compiler-5.0.28.jar.bak。
然后在E:\Java\appengine-java-sdk-1.2.0\bin下运行 appcfg update E:\Java\workspace\testwe\war。
这个时候在命令行下会看到如下的出错信息。
E:\Java\appengine-java-sdk-1.2.0\bin&#62;java -cp &#8220;E:\Java\appengine-java-sdk-1.2.0\bin\\..\lib\appengine-tools-api.jar&#8221; com.google.appengine.tools.admin.AppCfg update e:\Java\workspace\testweb\war
Reading application configuration data&#8230;
2009-04-12 03:05:34.240::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
Beginning server interaction for lizongbo&#8230;
0% Creating staging directory
5% Scanning for jsp files.
8% Compiling jsp files.
Exception in thread &#8220;main&#8221; java.lang.NoClassDefFoundError: org/apache/jasper/JspC
at com.google.appengine.tools.development.LocalJspC.main(LocalJspC.java:
14)
Caused by: java.lang.ClassNotFoundException: org.apache.jasper.JspC
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
&#8230; 1 more
java.lang.RuntimeException: [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2009/04/12/148.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>使用Google App Engine的URLFetchService实现类似phpproxy访问页面</title>
		<link>http://618119.com/archives/2009/04/11/147.html</link>
		<comments>http://618119.com/archives/2009/04/11/147.html#comments</comments>
		<pubDate>Fri, 10 Apr 2009 16:00:10 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[phpproxy]]></category>

		<guid isPermaLink="false">http://618119.com/?p=147</guid>
		<description><![CDATA[使用Google App Engine的URLFetchService实现类似phpproxy访问页面,
今天接着体验google appEngine，参考文档写了个类似phpproxy以代理方式获取页面内容的Servlet。
phpproxy的功能很强大,我的程序很简单,只实现了简单的获取页面内容然后显示。
phpproxy的代码在：http://idea.hosting.lv/a/phpproxy/phpproxy-0.6/phpproxy.phps
我的页面在：
http://lizongbo.appspot.com/p?url=http://www.google.cn
URLFetchService的介绍在：http://code.google.com/intl/zh-CN/appengine/docs/java/urlfetch/
首先，web.xml的配置是：
[code]
&#60;/servlet-mapping&#62;
&#60;servlet&#62;
&#60;servlet-name&#62;HttpProxy&#60;/servlet-name&#62;
&#60;servlet-class&#62;com.lizongbo.gapp.HttpProxyServlet&#60;/servlet-class&#62;
&#60;/servlet&#62;
&#60;servlet-mapping&#62;
&#60;servlet-name&#62;HttpProxy&#60;/servlet-name&#62;
&#60;url-pattern&#62;/p&#60;/url-pattern&#62; &#60;!-- 写成/p/*居然没法匹配到/p--&#62;
&#60;/servlet-mapping&#62;
[/code]
com.lizongbo.gapp.HttpProxyServlet.java的代码为：
[code]
package com.lizongbo.gapp;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL;
import java.util.Enumeration;
import java.util.Map;
import javax.servlet.http.*;
import com.google.appengine.api.urlfetch.*;
@SuppressWarnings("serial")
public class HttpProxyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
String urlStr = request.getParameter("url");
java.net.URL url = null;
try {
url = new URL(urlStr);
if (!url.getHost().toLowerCase().endsWith("appspot.com")//不需代理本站
&#38;&#38; url.getPort() == url.getDefaultPort()) {//google限制了只能访问默认端口
URLFetchService urlFetchService = URLFetchServiceFactory
.getURLFetchService();
HTTPRequest req = new HTTPRequest(url, HTTPMethod.GET);
req.addHeader(new HTTPHeader("X-Fetchby",
"http;//lizongbo.appsport.com"));
HTTPResponse res = urlFetchService.fetch(req);
response.setStatus(res.getResponseCode());
response.reset();
response.addHeader("X-powerby", "http://lizongbo.appsport.com");
for (HTTPHeader [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2009/04/11/147.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google App Engine Java runtime的file.encoding居然不是UTF-8</title>
		<link>http://618119.com/archives/2009/04/08/146.html</link>
		<comments>http://618119.com/archives/2009/04/08/146.html#comments</comments>
		<pubDate>Wed, 08 Apr 2009 15:45:56 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[Google App Engine]]></category>

		<guid isPermaLink="false">http://618119.com/?p=146</guid>
		<description><![CDATA[Google App Engine Java runtime的file.encoding居然不是UTF-8
Google App Engine支持Java了,下午在Windows下测试Google App Engine Java Servlet的中文是正常的，但是测试的jsp页面显示却是乱码，
参考：http://618119.com/archives/2009/04/08/145.html
于是晚上写了下面的代码来取出系统属性和环境变量来看：
[code]
		out.println("系统属性有：《br/》");
		Enumeration e1 = System.getProperties().propertyNames();
		String s1 = "";
		while (e1.hasMoreElements()) {
			String key = (String) e1.nextElement();
			String value = System.getProperty(key);
			out.println(key + "=" + value + "《br/》");
		}
		out.println("系统环境变量有：《br/》");
		for (Map.Entry《String, String》 et : System.getenv().entrySet()) {
			out.println(et.getKey() + "=" + et.getValue() + "《br/》");
		}
		out.println("你的请求属性有以下内容：《br/》");
		Enumeration e2 = req.getAttributeNames();
		while (e2.hasMoreElements()) {
			String key = (String) e2.nextElement();
			Object value = [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2009/04/08/146.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google App Engine支持Java了！</title>
		<link>http://618119.com/archives/2009/04/08/145.html</link>
		<comments>http://618119.com/archives/2009/04/08/145.html#comments</comments>
		<pubDate>Wed, 08 Apr 2009 10:25:44 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Google App Engine]]></category>

		<guid isPermaLink="false">http://618119.com/?p=145</guid>
		<description><![CDATA[Google App Engine支持Java了！
Google App Engine 开发团队在其官方博客正式宣布Google App Engine支持java，于是开通账户体验了一下。
体验流程如下：1.先创建账户，需要短信激活。再创建一个domain为  http://lizongbo.appspot.com/
2. Google App Engine Java SDK 1.2.0下载地址：
appengine-java-sdk-1.2.0.zip: http://googleappengine.googlecode.com/files/appengine-java-sdk-1.2.0.zip
中文页面没更新，所以要看英文下载页面：
http://code.google.com/intl/en/appengine/downloads.html
下载之后解压到D:\Java\appengine-java-sdk-1.2.0
3.Eclipse 插件下载：
下载安装步骤参考： http://code.google.com/intl/zh-CN/eclipse/docs/install-eclipse-3.4.html
http://dl.google.com/eclipse/plugin/3.4
我在插件更新里没选Google App Engine Java SDK 1.2.0和Google Web toolkit SDK 1.6.4
4.安装好插件之后，重启Eclipse，新建 Web Application Project，
在向导界面，将 Use Google Web Toolkit的钩取消掉，在Use Google App Engine 的右边，配置SDK目录,选择D:\Java\appengine-java-sdk-1.2.0。
工程名写testweb,包名写com.lizongbo.gapp
5.在创建好工程后，工程默认创建了一个testwebServlet。
6.修改testwebServlet的doGet方法，代码如下：
[code]
public void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws IOException {
		resp.setContentType("text/html; charset=UTF-8");
		PrintWriter out = resp.getWriter();
		out.println("《!DOCTYPE HTML PUBLIC \"-"
				+ "//W3C//DTD HTML [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2009/04/08/145.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
