type Exception report
message
deion The server encountered an internal error () that prevented it from fulfilling this request.
exception
root cause
java.sql.SQLException: [Microsoft][ODBC ???????] ???????
sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3908)
sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5702)
sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:356)
sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:413)
org.apache.jsp.courseplaceaction_jsp._jspService(courseplaceaction_jsp.java:68)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
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:810) 解决办法: while(rs.next()){
……
}
也就是错误原因是没有将rs游标定位到第一条记录。
--------------------------------------------------------------------------------
2.Result set type is TYPE_FORWARD_ONLY
java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY
sun.jdbc.odbc.JdbcOdbcResultSet.last(JdbcOdbcResultSet.java:2293)
org.apache.jsp.queryresult_jsp._jspService(queryresult_jsp.java:133)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
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:810)
解决办法:
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
通过这样设置,rs游标可以自由的移动,不一定就是只向前移动
3.package javax.servlet does not exist
问题在于没有将
Tomcat中的servelet.jar(在tomcat3.3.1libcommonservlet.jar 下 ),或者servlet-api.jar(在tomcat-5.0.24commonlib、servlet-api.jar )添加到了classpath中去。最好添加到用户环境变量里去。
4.找不到request.setCharacterEncoding("GB2312");
找不到request.setCharacterEncoding("GB2312");
对于出现该问题的原因是:我用的Tomcat版本太低,里面的servlet.jar还没有包括这个方法,好像在Tomcat4.x以后就出现了,Tomcat3.x里面没有,所以本人决定痛改前非,用Tomcat5取代Tomcat3.永别了,Tomcat3.x
5.解决中文显示中的乱码问题
需要在首行加入如下代码,有时要重新启动Tomcat
<%@ page contentType="text/html;chartset=gb2312" %>
6.result.next()注意的问题
假如你的表结构中各字段的顺序为:title,name,mail,content, add_time
那么你取数据的顺序也应该是:title,name,mail,content, add_time,任何颠倒就会出问题。
例如:下面语句执行会正确。
while(result.next())
{
String title=result.getString("title");
String name=result.getString("name");
String mail=result.getString("mail");
String content=result.getString("content");
Timestamp time=result.getTimestamp("add_time");
Date date_time=new Date(time.getTime());
Time time_time=new Time(time.getTime());
%>
但是下面语句执行就会出错:
while(result.next())
{
String content=result.getString("content");
String title=result.getString("title");
String name=result.getString("name");
String mail=result.getString("mail");
Timestamp time=result.getTimestamp("add_time");
Date date_time=new Date(time.getTime());
Time time_time=new Time(time.getTime());
%>
7.tomcat开机自启动
tomcat开机自启动设置方法:控制面板->任务计划->添加任务计划->选择你的tomcat目录下的binstartup.bat,在选择''开机自启动", 即可。
但是此方法有一缺点:这样tomcat只能开机自启动,不能手动启动。
8.Jsp调试
用于输出信息的
System.out.println("Hello!");
out.println("Hello!");
断点:
在servlet下return语句
jsp脚本下,用forward语句