本系统的测试过程是在Windows 2000 Server平台上采用J2SDK1.4和TOMCAT5作为服务器进行的。由于初次接触JAVA、JSP和JAVASCRIPT,在这个过程中我遇到了很多了问题。现在分析一下我遇到的几个比较有代表性的问题。
1.JSP中文乱码问题
在刚开始的时候,我遇到了中文乱码显示的问题。其中一种情况是当用Request对象获取客户提交的汉字的时候,会出现乱码;另一种情况是向数据库中插入用汉字表示的科目名称,可通过查询数据库读出的科目名称在JSP页面显示的时候却出现乱码。于是阅读了一些介绍JSP中文乱码问题的书籍,知道了这是由于编码问题。默认的服务器编码是ISO-8859-1,而中文一般采用GB2312编码才能正确显示,所以必须进行编码转换。于是我将编码转换代码放在了一个函数public String convert(String s)中,转换代码如下:
public String convert(String s){
try {
byte[] bytes = s.getBytes("ISO8859-1");
return new String(bytes);
}catch(Exception ex) {
}
return null;
}
对要显示的中文先用 convert函数进行编码转换,然后就能正确显示中文。
2.JSP和javascript之间参数传递的问题
在本系统中,由于要使用javascript代码对用户提交的数据进行初步的验证(是否为空或字符长度是否符合要求)和对页面进行一些控制以响应用户对页面的一些操作。这样就不可避免存在JSP和javascript之间参数传递的问题。刚开始我直接在javascript的action函数中引用JSP变量:<A HREF='javascript:action(KMH)'>但出现错误,函数action把JSP中的变量KMH作为字符串处理。后来查阅了一些资料后了解到JAVASCIPT函数引用JSP变量的正确方式是:<A HREF='javascript:action(<%=KMH%>)'>,<%=KMH%>才是变量KMH经过JSP服务器处理以后得到正确的字符串。这使我意识到在变量的使用过程中,必须时刻明确区分JSP中的变量和JAVASCRIPT中的变量,不能混用,否则将会出错。