jsp 连接sql server的问题结果: type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: Unable to compile class for JSP org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:520) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) root cause java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence. org.apache.jasper.xmlparser.UTF8Reader.invalidByte(UTF8Reader.java:615) org.apache.jasper.xmlparser.UTF8Reader.read(UTF8Reader.java:487) org.apache.jasper.xmlparser.XercesEncodingDetector.load(XercesEncodingDetector.java:1000) org.apache.jasper.xmlparser.XercesEncodingDetector.skipString(XercesEncodingDetector.java:966) org.apache.jasper.xmlparser.XercesEncodingDetector.scanXMLDecl(XercesEncodingDetector.java:1209) org.apache.jasper.xmlparser.XercesEncodingDetector.getEncoding(XercesEncodingDetector.java:108) org.apache.jasper.xmlparser.XercesEncodingDetector.getEncodingMethod(XercesEncodingDetector.java:121) org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:57) org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:313) org.apache.jasper.compiler.ParserController.doParse(ParserController.java:170) org.apache.jasper.compiler.ParserController.parse(ParserController.java:101) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203) org.apache.jasper.compiler.Compiler.compile(Compiler.java:470) org.apache.jasper.compiler.Compiler.compile(Compiler.java:451) org.apache.jasper.compiler.Compiler.compile(Compiler.java:439) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 请问为什么啊?
|
创建日期:2007-1-10 12:00:25
提问者:弥塞亚_累
等级:Lv.1
头衔:试用期
|
最佳回答
1、java.lang.NullPointerException异常
一般是对一个NULL值的变量进行操作引起的。例如下面的操作就会抛出异常java.lang.NullPointerException。
<%
String a=null;
a.substring(0,1);
%>
为避免这种异常,最好在对变量操作之前检查看它是否是NULL值。例如:
<%
String name=Session.getAttribute("name");
if(name==null){
//执行某种操作
}
else{
//执行另种操作
}
%>
2、JSP是大小写敏感的
JSP程序是区分大小写的,在编写JSP程序时一定要注意不要将大小写混淆,例如:
String abook;与String Abook;它们代表两个不同的字符串变量。用过其他编程语言的人最容易犯这种错误。
3、未被初始化错误
先来看如下一段代码:
public String Compare(String user1,String user2){
boolean result;
if(user1.compareTo(user2)==0)
result=true;
return result;
}
乍一看这段程序并没有任何问题,但在编译的时候会出现如下错误提示:
variable result might not have been initialized
return result
^
这是因为,当if条件为false的时候,result可能会没有被赋予初值,而return的时候则会出错。java编译器很聪明的检查出了这一错误并
在编译的时候给予了提示。这需要程序员在声明result的时候或者在返回result之前给它赋值。所以在定义一个变量时最好赋予一个初值。
4、变量未定义错误
可能大家都知道变量在使用之前要定义,但是不经意间却常常犯这种错误,例如下面一段代码:
<html>
<body>
<table>
<%
for(int i=0;i<5;i++)
{
String s=""+i;
}
%>
<tr>
<td>i现在的值是:</td>
<td><%=s%></td>
</tr>
</table>
</body>
</html>
编译时会报错:
Undefined variable:s
out.print(s);
^
1 error
出现这种错误是由于逻辑错误,for循环的结束标记符号"}"放错了位置,正确的写法应该如下段代码所示:
<html>
<body>
<table>
<%
for(int i=0;i<5;i++)
{
String s=""+i;
%>
<tr>
<td>i现在的值是:</td>
<td><%=s%></td>
</tr>
<%}%>
</table>
</body>
</html>
5、SQL语句换行书写时未加适当的空格而导致的错误
我们先来看下面这段代码:
String name=tom;
String sql="select * from userTable"+
"where user_name="+name+""+
"and user_age=22";
上面的代码在执行的时候将转换成这样的SQL语句:
select * from userTablewhere user_name=nameand user_age=22
从输出的SQL语句可以看出userTable 和 where 之间以及name和and之间都缺空格,这样是不能从数据库中取出数据的。正确的写法应该
如下所示:
String name=tom;
String sql="select * from userTable"+
" where user_name="+name+""+
" and user_age=22";
|
创建日期:2007-1-10 12:00:25
回答者:弥塞亚_累
等级:Lv.1
头衔:试用期
|
提问者评价(为什么选择本回答作为最佳回答):