编码练习中的几个常见问题

更新时间:2024-01-14 00:56:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、从html改名为jsp后变成乱码?

解决方法:

这个要了解开发环境如何处理文件编码的

1、首先,编辑器会尽量根据内容来推断文件的编码,比如: (1) html文件,它会根据这个来推断编码为gbk

<%@ page language=\或者

<%@ page language=\ pageEncoding=\2、如果没有可以推断的依据,就采用文件类型(后缀名)的缺省编码配置,比如: JSP的缺省编码:window->preferences->General->Content Types------Text->JSP 窗口最下面显示缺省编码default encoding)。

3、如果文件类型的缺省编码也没有配置,则采用开发环境的缺省文件编码配置。 window->preferences->General->Workspace--------- Text file encoding

所以,假如我们新拷贝一个html到项目中,假如文件中有

它会准确的判断为gbk,如果没有,它就会根据2或者3来决定文件的编码,如果2或者3碰巧是GBK,那文件显示正确,如果2或者3是ISO-8859-1,那么乱码来了,这是我们要帮助开发环境给它强制指定一个编码。

右键 ->属性->Text file encoding,选other,给它强制指定为正确的编码。

假如html本身显示正确,我们想改为JSP,为了帮助编辑器判断编码,我们需要先拷贝2中的指令到html中,然后再更改后缀为jsp,这时就不会出现乱码。如果不拷贝指令,那么碰巧2或者3中设置的编码与你改的文件编码匹配或者子集到超集(比如GBK->GB18030),那么应该也不会出现乱码。

需要注意的是,如果html原来的字符集和你要改成的jsp的字符集,不是子集和超集的关系,那么也会出现乱码,比如 html gbk编码,而jsp是utf-8编码。解决办法是,用ultraedit打开html,选择菜单 文件->转换->ASCII转UTF-8,并将其META改为utf-8

<%@ page language=\改后缀为jsp,就不会出现乱码了。

二、jsp中编写代码,输入点后,开发环境就卡在那(死掉了),过一会又恢复正常? 解决方法:

更改项目缺省使用的jdk

window->preferences->Java->Installed JREs--------- Add->Browse->选择JDK的home目录(bin的上一级目录,比如 C:\\Program Files\\Java\\jdk1.6.0_01),在name中勾选新添的jdk,

ok即可。

三、jsp中编写代码,输入点后,不出现代码提示窗口? 解决方法:

检查文件编码是否正确,看page指令的颜色,如果如下面,说明正常

<%@ page language=\pageEncoding=\

import=\

s2jsp.lg.entity.*, s2jsp.lg.dao.*, s2jsp.lg.dao.impl.*\%>

如果page指令全是灰色,说明存在编码问题,需要注意的是如果文件中,既定义了

要保持二者一致,编码是否恢复正常,就是看page指令的颜色是否正常。

还有一个方法是,新建一个新的模板JSP,看代码提示窗口是否出现,如果不出现,说明开发环境本身有问题,如果出现,那么就将有问题的页面的代码拷贝进来,注意page指令要手动改,不要直接覆盖,代码提示就应该正常了。

四、.文件编码我确信没有问题,明明接口类中定义了方法,但是jsp中的代码就是找不到或者说类型不匹配?

解决方法:

新建一个跟当前项目类型一样的空项目,然后在文件系统中将原项目的src和WebRoot目录拷贝覆盖到新建的空项目的对应目录,在新项目中点右键刷新,就应该可以了。

原因可能是编码的频繁改动,导致开发环境的配置信息产生了混乱,这种方式,我们实际是只保留原来的源文件,配置信息由于是新建项目,应该是好的。

五、访问数据库报错

ClassNotFound 是数据库驱动包没有放入Web项目的lib目录 No Suitable Driver 是数据库连接的url写的不正确,比如 SQL Server 2000的连接url,访问SQL Server2005

六、通过include指令包含其他jsp文件,开发环境中提示有错,**变量已定义 问题在于:变量重复定义

七、如何通过调试定位错误位置 1、在触发当前错误前,先清空控制台。

2、java代码相对容易,在控制台中找到异常,双击会跳到对应的错误地点,如果弹出窗口,说明异常发生在你调用的代码库内,可以顺着控制台的错误提示,找到自己写的代码部分,然后双击,就可以跳到对应的错误地点。

3、如果jsp中有错误,先在控制台中看是哪个页面中有错(注意,浏览器地址栏中显示的页面,不一定是出错的页面,因为有可能通过forward跳转到其他页面,可能是跳到的那个页面出错了),然后看错误出现的行数(注意这个行数多数情况下并不准确,仅供参考)。如果仍然无法定位,那么就在jsp中存在大块的代码部分,加入断点,逐段排除,错误往往发

生在表达式中,可以在前面的代码中设置断点,查看表达式中用到变量是否正确的赋值。 5、debug FastView 设置断点

清除所有断点

继续运行

F5 当遇到方法,进入方法,F6 当遇到方法时,作为一条语句执行 ,F7

看参数窗口,如果想查看客户端传过来的参数,tomcat要注意,其request内部很多变量,是在你第一次通过方法访问时才初始化的,变量request->request->parameterMap为空 可以通过

request->request->coyoteRequest->queryMB来看传过来的参数(get方法提交,post方法我也没有找到地方看),一旦执行过一个getParamter方法,可以通过下面看到解码后的参数,注意value是字符数组

request->request->coyoteRequest->parameters->paramHashStringArray

如果jsp代码中加入System.out.println(request.getParameterMap());,那么一旦这个语句执行,会发现request->request->parameterMap,会出现所有输入参数

解决路径问题:

<%

String path = request.getContextPath(); String basePath =

request.getScheme()+\+request.getServerName()+\+request.getServerPort()+path+\; %>

\>

本文来源:https://www.bwwdw.com/article/mk1o.html

Top