BBS水木清华站∶精华区
发信人: maht (Trill-TimeKiller), 信区: Java
标 题: JSP FAQ
发信站: BBS 水木清华站 (Thu Mar 9 21:24:01 2000)
JSP FAQ(根据java版文章整理)
1 JSP 是什么?
2 JSP的运行环境和相应的软件?
3 如何写JSP?
4 How to use JSp in IIS?
5 JSP中文问题
还有JSP Cernet内部资料比较全的在
http://166.111.136.155
why(SMTH BBS)个人站点,也是JSP大牛,斑竹推荐!
相关的软件资源
ftp://166.111.136.159/software/java
djq提供支持。
1 Q: JSP 是什么?
A: JavaServer Pages
是JavaSoft定的一个标准,用于WebServer上动态页面的输出。
就象MS的ASP,当然他们在Server上的运行机制是不一样的。
2 Q: JSP的运行环境和相应的软件?
A: JSP需要Servlet的运行环境和相应的软件(如GNU的GNUJSP),
详细情况可参见:
http://java.sun.com/products/jsp/index.html
http://www.klomp.org/gnujsp/
http://166.111.136.155/ (这个是why(river)的个人站点)
3 Q: 如何写JSP?
A: 开发环境:可以用某个Java集成环境用来写java类,Ultraedit用来写JSP页面。
比如,IBM Visual Age for Java
Orcale, JDeveloper 3.0
JBuilder 3.0等
4 Q: How to use JSp in IIS?
A1: You need an application server. Jakarta is free, but I don't know
if it works fine with IIS. Some commercial application servers
such as IBM WebSphere and Intershop Enfinity are pretty good
IIS based applicaton servers
A2: needn't,download a Jrun at http://www.jrun.com/products/jrun/.
this engine is enough,but only evaluation version is free--30-day trial.
5 Q: JSP中文问题
jsp1.0的规范中好象说它采用的是8位字符,结果jsp在显示中文的时候总
是出现问题。无法正常显示。偶将中文String转换成8位的字符串,可是输出还是不
对。不知道如何是好,请各位搞过jsp中文的大牛援手,多谢!
A: (why@smth)
呵呵,恰好我做过jsp的中文化问题,那么我也来说说。
首先从编译器说起。javac在编译源文件的时候,使用的字符集是系统默认
字符集,比如在中文Windows平台下就是GBK,而在Linux下面就是ISO-8859-1,所以
大家会发现在Linux平台下面编译的类中源文件中的中文都出了问题,解决的办法
就是在编译的时候添加encoding的参数,用法是
javac -encoding GBK,
这样就平台无关了。这个问题对于jsp尤其重要,因为网页全部被写到了源文件
中,中文非常多。同样你也要设置一下,对于GNUJsp的用户,就在你的zone配置文件
中指定GNUJsp这个 Servlet的InitArgs就可以了。
其次,从向网页输出说。浏览器能够接受的仅仅是GB2312或者GBK这类字符,而
不能容忍的,所以在输出中文字符串的时候,不论你是用
out.println(string); //string是含中文的字符串
还是用<%=string%>输出的时候,都必须作uniCode到GBK的转换,或者手动,
或者自动。在jsp1.0中,有关于输出字符集的定义,可以做到这一点,用法是
<%@page ContentType="text/html;charset=gb2312" %>
如果你有jsp引擎的原码的话,可以看看它是怎么对这个定义提供支持的,我看过
GNUJsp1.0的代码,支持的比较好,是在生成out的时候使用了charset.
需要指出的是,GNUJsp1.0中有一个关于字符集的bug,就是在使用callpage的
时候,输出已经指定了字符集,而在被调用页面中又作了一次编码,结果就什么都
不是了,所以大家要仔细使用callpage,别被它害了。
但是在jsp0.92标准中,以及一些jsp版本中并没有提供输出字符集的支持,这就需要
手动编码输出了,方法也很多。我介绍一个不好看的方法,如下
String s = "中文";
byte [] temp = s.getBytes();
String result = new String(temp,"GB2312");
呵呵,我记得不是太清楚,也许程序写反了,反正大家试试吧,大体就是先转成
byte,再输出。
--
什么时候发了,要把微软给买了,不过没想好有什么用,
或许给解散了,为人类作点贡献。
※ 修改:·maht 於 Mar 9 21:31:09 修改本文·[FROM: 166.111.25.111]
※ 修改:·maht 於 Mar 9 21:31:52 修改本文·[FROM: 166.111.25.111]
※ 修改:·maht 於 Mar 9 22:46:56 修改本文·[FROM: 166.111.25.111]
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.25.111]
BBS水木清华站∶精华区