<?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; jsp</title>
	<atom:link href="http://618119.com/tag/jsp/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>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>jsp拦截JspWriter实现类似php的ob_get_contents</title>
		<link>http://618119.com/archives/2009/04/06/144.html</link>
		<comments>http://618119.com/archives/2009/04/06/144.html#comments</comments>
		<pubDate>Mon, 06 Apr 2009 14:29:55 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[JspWriter]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://618119.com/?p=144</guid>
		<description><![CDATA[jsp拦截JspWriter实现类似php的ob_get_contents
php可以通过ob_start和ob_get_contents可以拦截并得到echo等方式输出的内容，并可以方便的进行二次处理。java的jsp也是可以非常方便就实现这样的功能，那就是实现一个自定义的JspWriter.
oscache的功能强大的jsp缓存标签就是这样干的。
前段时间作了个简单的rss输出，由于避免访问量过大影响到数据库和接口调用。
于是需要对生成的rss文本进行缓存。原有的jsp代码都已经写好，大概动就太麻烦了，于是用TextJspWriter继承javax.servlet.jsp.JspWriter，然后在jsp作小改造就搞定了。
php的用法参考： http://cn2.php.net/ob_get_contents
TextJspWriter.java的代码为：
[code]
package com.lizongbo.util;
import java.io.IOException;
import java.io.StringWriter;
import javax.servlet.jsp.JspWriter;
public class TextJspWriter extends JspWriter {
 public String getString() {
  return sb.toString();
 }
 private StringBuilder sb = null;
 public TextJspWriter() {
  this(8192, true);
 }
 public TextJspWriter(int bufferSize, boolean autoFlush) {
  super(bufferSize, autoFlush);
  sb=new StringBuilder(bufferSize);
 }
 @Override
 public void clear() throws IOException {
  sb = new [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2009/04/06/144.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
