在jsp中调用编写的.class时,出现以下错误:
....
The value for the useBean class attribute zbean.ljsjk is invalid
.....jsp文件中已编写了:
<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="ljsjk" class="zbean.ljsjk" scope="page"/>
......是不是.class 文件存放的位置不对?
....
The value for the useBean class attribute zbean.ljsjk is invalid
.....jsp文件中已编写了:
<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="ljsjk" class="zbean.ljsjk" scope="page"/>
......是不是.class 文件存放的位置不对?
package zbean;
一行吧
package zbean;
import java.sql.*; class ljsjk
{ public String sdbdriver="sun.jdbc.odbc.JdbcOdbcDriver";
public String sConnStr;
public long count;
String uid;
String pwd;
Connection conn=null;
ResultSet rs=null;
public ljsjk()
{
try
{
Class.forName(sdbdriver);
}
catch(java.lang.ClassNotFoundException e)
{ System.err.println("Jodb():"+e.getMessage()); }
}
.........
zbean.ljsjk is not public in zbean; cannot be accessed from outside package
import zbean.ljsjk;
^
可是,我把该类设成是public时,编译出错:conn.java:5:class ljsjk is public,should be declared in a file named ljsjk.java
public class ljsjk
The source file name is different from the name of the class defined in the file. Here the file name is Test and the class name is Hello. They must be the same.
你就用另外一种方法嘛
<%@ page import="zbean.ljsjk"%>然后在页面上new一个也无妨啊
看来是我看一篇的速度太慢
我看的过程中 都又有几贴啦
好像跟上面有的方法重复啦
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
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.lang.NullPointerException
org.apache.jsp.t4_jsp._jspService(t4_jsp.java:67)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.0.28
package zbean;
import java.sql.*;
//import zbean.*; public class conn
{ public String sdbdriver="sun.jdbc.odbc.JdbcOdbcDriver";
public String sConnStr;
public long count;
String uid;
String pwd;
Connection conn=null;
ResultSet rs=null;
public conn()
{
try
{
Class.forName(sdbdriver);
}
catch(java.lang.ClassNotFoundException e)
{ System.err.println("Jodb():"+e.getMessage()); }
}
public void setDbDriver(String y)
{
sdbdriver=y;
} public void setConnStr(String x)
{
sConnStr=x;
uid="sa";
pwd="770204";
} public ResultSet execute(String sql)
{
rs=null;
try
{
conn=DriverManager.getConnection(sConnStr,uid,pwd);
Statement stmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_SENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("Jodb.execute():"+ex.getMessage());
}
return rs;
} }.jsp文件:<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="conn" class="zbean.conn" scope="page"/>
<jsp:setProperty name="conn" property="*"/>
<html>
<head>
<title></title>
</head>
<%
//zbean.ljsjk ljsjk;
java.sql.ResultSet rs;
conn.setConnStr("jdbc:odbc:ywk");
conn.setDbDriver("sun.jdbc.odbc.JdbcOdbcDriver");
rs=conn.execute("select * from lc_czy");
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%rs.close();
%>
</body>
</html>
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection cn=DriverManager.getConnection("jdbc:odbc:ywk","sa","770204");Statement st=cn.createStatement(java.sql.ResultSet.TYPE_SCROLL_SENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); ResultSet rs=st.executeQuery("SELECT * FROM lc_czy");//
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%rs.close();
st.close();
cn.close();
%>
</body>
</html>
运行时出现错误:
[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序但用JAVA时是可以显示数据的啊?我该怎么做呢?
conn.setDbDriver("sun.jdbc.odbc.JdbcOdbcDriver"); 句才刚刚附值,导致你的 conn 对象并没有建立,所以导致空指针,sdbdriver 在未初始化前被使用
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%> <%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection cn=DriverManager.getConnection("jdbc:odbc:ywk","sa","770204");
%>
<%@ page import="java.sql.*"%> <%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection cn=DriverManager.getConnection("jdbc:odbc:ywk","sa","770204");
%>
如果你连这两句都执行不了就是说明连接不成功,具体因为什么我不太清楚,要不你把Connection cn=DriverManager.getConnection("jdbc:odbc:ywk","sa","770204");行改成
Connection cn=DriverManager.getConnection("jdbc:odbc:ywk","sa","770204").newInstance();
试试,
jsp和数据库不是有四种连接方式么? jdbc驱动的方式就是第四种的那个,要配置classpath的
<%@ page import="" %>