JSP中文乱码显示及javascript与JSP变量传递问题

    技术2022-05-11  72

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

    最新回复(0)