org.apache.jsp.testbean_jsp._jspService(testbean_jsp.java:58)
这一行的代码铁出来看看
这一行的代码铁出来看看
解决方案 »
- JSP显示图片问题
- Eclipse 启动tomcat时报错:Error occurred during initialization of VM
- 500 Servlet Exception 急啊
- logic:iterate双层循环问题
- JSP+SQLServer 运行中出现的一个问题 麻烦会的帮我解答下。
- 诸位仁兄帮帮忙,也许你能一语道破我的程序尴尬
- 我的网站刚推出两天,就被百度收录了100多个页面
- java.net.URLEncoder.encode出现乱码问题,急!!!
- 简单问题,如何运行.jsp程序?
- JSF启动tomcat报错!求助各位大佬!!!
- 谁遇到过这个问题,急问,马上给分!
- 学习jsp已经好几天了,感觉没什么进展,郁闷的要死
我一开始没装sp3时也会发生错误,装了之后就正常了,有时连接不上,重启一下SQL服务器就可以了
你有没有将Microsoft SQL Server 2000 Driver for JDBC那三个文件拷到tomcat\common\lib下
象这一段
public ResultSet executeQuery(String sql) throws Exception
{
rs = null;
try
{
sql= new String(sql.getBytes("GBK"),"ISO8859_1");
conn= DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
conn.close();
stmt.close();
}
在执行testbean.jsp中的ResultSet rt=Conn.executeQuery("select username from testuser where username='"+uname+"' and pass='"+pwd+"'" ); 后数据库连接就关闭了,那
if (!rt.next()) 还执行个屁呀~~~!所以你应该改一下你的连接数据库的JavaBeans,在方法public ResultSet executeQuery(String sql) throws Exception中不要关闭数据库连接而是在jsp页面中关闭!而在方法public void executeUpdate(String sql) throws Exception中可以加上
conn.close();
stmt.close();
以关闭连接!
在jsp页面上你定义ResultSet,不一定要和bean里面一样!
if ((uname != null) && (uname.length() != 0))
{
......
}
stmt.close();
这两行去掉。如果关闭连接的话,rs就会返回空。
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:346)
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)
root cause java.lang.NullPointerException
db.DBConnect.executeQuery(DBConnect.java:61)
org.apache.jsp.orabean_jsp._jspService(orabean_jsp.java:64)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.25 logs.这种错误,但是这种错误查起来比较困难,还要请教一下高手调试这种错误的经验。
报错中的:db.DBConnect.executeQuery(DBConnect.java:61)
org.apache.jsp.orabean_jsp._jspService(orabean_jsp.java:64)
我分别查过了,分别是bean中的rs=stmt.executeQuery(sql)和JSP页面中的ResultSet rs=myBean.executeQuery(strSql),同样的位置,但是还是看不出错在哪里?郁闷中!
源码如下:
import java.sql.*;
import java.lang.*;
import java.io.*;
import java.util.*;public class DBConnect
{
static Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
public DBConnect(){}
public static String getConnection()
{
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn= DriverManager.getConnection("jdbc:oracle:thin:@172.168.1.22:1521:hms","user01","user01");
return "数据库连接成功!";
}
catch(java.lang.ClassNotFoundException e){
return "驱动加载失败靠"+"ClassNotFoundException:"+e.getMessage();
}
catch(java.sql.SQLException e){
return "连接数据库错误了么"+"SQLExcception:"+e.getMessage();
}
}
public void closeConnection()
{
try{
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
}
catch(java.sql.SQLException e)
{
System.err.println("SQLBridge():"+e.getMessage());
}
rs=null;
stmt=null;
conn=null;
}
public ResultSet executeQuery(String sql)
{
try
{
if(conn==null)
getConnection();
if(conn!=null)
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("SQLBridge.executeQuery:"+ex.getMessage());
}
return rs;
}
public boolean executeUpdate(String sql)
{
boolean bupdate=false;
try
{
if(conn==null)
getConnection();
if(conn!=null)
{
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
int rowCount=stmt.executeUpdate(sql);
if(rowCount!=0)
bupdate=true;
}
}
catch(SQLException ex)
{
System.err.println("SQLBridge.executeUpdate:"+ex.getMessage());
}
return bupdate;
}
}
<%@ page language="java" import="java.lang.*,java.util.*" %>
<%@ page import="java.sql.*" %>
<html>
<head></head>
<body>
<jsp:useBean id="myBean" scope="page" class="db.DBConnect" />
<%
String strSql="select * from test";
ResultSet rs=myBean.executeQuery(strSql);
while(rs.next())
{
out.println(rs.getString(0));
}
rs.close();
myBean.closeConnection();
%>
</body>
</html>
description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:346)
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)
这种错误困扰,不知如何下手排错!查代码也查不出问题啊?
String sConnStr ="jdbc:microsoft:sqlserver://localhost:1433,ims;user=sa,123456";
试试
String sConnStr ="jdbc:microsoft:sqlserver://localhost:1433,sa,123456";