本節(jié)我們分析一下常見的 JSP 錯誤信息,并給出解決方案。這些錯誤大家在實(shí)際開發(fā)中會經(jīng)常遇到,所以有必要在此提及一下。
1.頁面顯示 500 錯誤,錯誤信息如下:
An error occurred at line: 6 in the generated java file
Syntax error on token ";", import expected after this token
錯誤原因見如下代碼:
<%@ page langue="java" import="java.utli.*; java.text,*"
pageEncoding="GBK">
import 中的分隔符應(yīng)該是逗號,不能用分號。
2. 頁面顯示 500 錯誤,錯誤信息如下:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 6 in the generated Java file
Syntax error on tokens, delete these tokens
此類信息都表示頁面的編寫出現(xiàn)了語法錯誤。
例如,指令中出現(xiàn)了錯誤字符,或者使用了錯誤的屬性名,或者有錯誤的屬性值。
3.頁面顯示 500 錯誤,錯誤信息如下:
org.apache.jasper.JasperException: /index.jsp(1,1) Unterminated <
%@ page tag
該信息告訴用戶:指令標(biāo)簽有錯誤。
4.頁面顯示中文為亂碼。例如:
???????JSP??---?????
原因見如下代碼:
<%@ page language="java" contentType="text/html,charset=GBK" import="java.util.*,java.text.*" pageEncoding="GBK"%>
這里contentType="text/html,charset=GBK"分隔符用的是逗號,而此處只能用分號。
5.錯誤:ClassNotFoundException。代表類沒有被找到的異常。
原因:通常出現(xiàn)在 JDBC 連接代碼中,對應(yīng)的驅(qū)動 JAR 包沒有導(dǎo)入,或 sqljdbc.jar 對應(yīng)的 Class.forName(類名) 中的類名寫錯了。
6.錯誤信息:主機(jī) TCP/IP 連接失敗。
原因:SQL Server 配置管理器中,未啟用對應(yīng)的 SQL Server 服務(wù)的 TCP/IP 協(xié)議;或 SQL Server 服務(wù)器沒有開啟服務(wù);或連接字符串中的 localhost 寫錯了;或啟用的服務(wù)是開發(fā)版的 SQL Server,即啟用了 SQL Express 服務(wù);或端口號寫成了 localhost:8080。
7.出錯信息:數(shù)據(jù)庫連接失敗。
檢查 JAR 包導(dǎo)入。
檢查連接字符串和驅(qū)動類字符串(要避免使用 SQL Server 2000 的連接字符串),例如“databasename=數(shù)據(jù)庫名”寫成了“datebasename=數(shù)據(jù)庫名”或“localhost: 1433”寫成了“localliost:8080”。