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水木清华站∶精华区