本系统的测试过程是在
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
中的变量,不能混用,否则将会出错。