在eclipse下不能用javabean

wenjie337 2007-08-28 11:19:45
小弟初学JSP,现在正在用eclipse
我按照书上和到网上找的资料配置好了开发环境后,JSP却一直不能正常运行,但又发现不了错误,只能来麻烦大家了,请帮帮忙

下面是我写的两个JAVABEAN和JSP文件

package wen;
import java.sql.*;
import java.io.*;
import java.util.Properties;
public class DBConnection
{

private static String driver;
private static String serverURL;
private static String username;
private static String password;
private static Connection conn = null;
private static Statement stmt = null;
private static String connectionFileName="connection.txt";
private String str;

private static Object initLock = new Object();

public Connection getConn() {
return conn;
}



public static Connection getConnection()
{


if(conn == null){
synchronized(initLock){
loadProperties();
try{
Class.forName(driver);
}
catch(ClassNotFoundException e){
System.out.println(e.toString());
}
try{
conn = DriverManager.getConnection(serverURL,username,password);
}
catch(SQLException e){
System.out.println(e.toString());
}
}

}
return conn;
}


public static void loadProperties(){
Properties connectionAdmin = new Properties();
System.out.println("连接配置文件:" + connectionFileName);
try{
connectionAdmin.load(new FileInputStream(connectionFileName));
}
catch(IOException e){
System.out.println("找不到文件" + connectionFileName);
System.out.println(e.toString());
}
driver = (String)connectionAdmin.get("driver");
serverURL = (String)connectionAdmin.get("serverURL");
username = (String)connectionAdmin.get("username");
password = (String)connectionAdmin.get("password");

}

public static ResultSet exec(String sql){
ResultSet rs = null;
try{
if(conn == null){
getConnection();
}
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}catch(SQLException ex){
ex.printStackTrace();
}
return rs;
}




package wen;
import java.sql.*;

public class IndexBean {



public ResultSet getMoban(){


return DBConnection.exec("select * from MoBan");

}


}


<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<jsp:useBean id="index" class="wen.IndexBean" scope="page"/>
<!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>Lomboz JSP</title>
</head>
<body bgcolor="#FFFFFF">
<%
ResultSet rs = index.getMoban();
while(rs.next()){
long mb_id = rs.getLong("MB_id");
String mb_name = rs.getString("MB_name");


%>
<table>
<tr>
<td><%=mb_name%></td>
</tr>
</table>
<%
}
%>
</body>
</html>

两天了,我一直找不出原因,麻烦大家帮忙看下问题在哪,这是报的错误

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception
org.apache.jasper.JasperException: /index1.jsp(3,0) The value for the useBean class attribute wen.IndexBean is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1175)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1117)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2164)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2214)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2220)
org.apache.jasper.compiler.Node$Root.accept(Node.java:457)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2164)
org.apache.jasper.compiler.Generator.generate(Generator.java:3322)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:296)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:299)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.




...全文
783 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
lemosa 2007-09-06
  • 打赏
  • 举报
回复
不是代码的问题.
其实就是对javabean的部署和使用过程不了解.

把javabean.class文件放到WEB-INF/CLASSES/wen 下边 再重新调用一次就因该可以了.

kn99715150 2007-08-29
  • 打赏
  • 举报
回复
同意楼上的
gongyali2005 2007-08-29
  • 打赏
  • 举报
回复
楼上的.构造方法不用显示去写,会有一个默认的构造方法的.

你装一个mYECLISPE.去建TOMCAT工程,或WEB工程吧.
Gerry-Zhang 2007-08-29
  • 打赏
  • 举报
回复
org.apache.jasper.JasperException: /index1.jsp(3,0) The value for the useBean class attribute wen.IndexBean is invalid.


这个是页面报错啊 你看看你的页面 引用javabean 的时候是不是又问题啊
什么都不能 2007-08-29
  • 打赏
  • 举报
回复
JavaBean

一定要

保证有个 默认构造函数。

实现 java.io.Serializable,

属性不能有 public ,外界必须通过 getter / setter 访问.



不符合这个要求不算是完整的 JavaBean.
--------------
话说三遍淡如水,不多说了
wenjie337 2007-08-29
  • 打赏
  • 举报
回复
创建的是lomboz j2ee project项目
不是这个吗?我只找到这个可以创建JSP的项目
洪泉 2007-08-29
  • 打赏
  • 举报
回复
估计楼主建的项目不是WEB项目,class应该放在WEB-INFO下
wenjie337 2007-08-29
  • 打赏
  • 举报
回复
我是在eclipse下面写的,新建一个项目之后直接就新建JSP文件和JAVABEAN,IndexBean.class这个文件生成在wen目录下,并没有web-inf这个目录
什么都不能 2007-08-29
  • 打赏
  • 举报
回复
useBean是个创建实例的过程,没有构造函数怎么去new 一个 instance?
gongyali2005 2007-08-29
  • 打赏
  • 举报
回复
看看有没有CLASS文件生成.
livan1038 2007-08-29
  • 打赏
  • 举报
回复
/index1.jsp(3,0) 這裡开始出错
不要在Jsp中写入Java代码,如果是标签库,检查标签库语法。
livan1038 2007-08-29
  • 打赏
  • 举报
回复
javaBean中不带参数的构造方法不是必需的。
tdy1234 2007-08-29
  • 打赏
  • 举报
回复
LS正解
什么都不能 2007-08-29
  • 打赏
  • 举报
回复
JavaBean需要显式声明一个构造函数
什么都不能 2007-08-29
  • 打赏
  • 举报
回复
没有显式声明构造函数
jdl2000 2007-08-29
  • 打赏
  • 举报
回复
HAHA,你是用的MyEclipse查件吗?如果你没用这个查件,那你可麻烦了,和楼上的几位说的一样,你要弄xml classes文件下保存bean的calss文件,等等,以后你用过滤器,舰艇器等等,你最好先用个MyEclipse查件,这样就方便多了, 记得把项目传到TOMCAT服务器上
guoweizhoulixin 2007-08-29
  • 打赏
  • 举报
回复
显示的构造方法是多此一举,所有属性都有相对应的get和set对,大小写也很严格区分,同意楼上的说法,与IDE环境没有关系
边城狂人 2007-08-29
  • 打赏
  • 举报
回复
我试了一下,没有问题。

你是否已经编译好了IndexBean,得到了IndexBean.class
这个IndexBean.class是不是已经放在WEB-INF/classes下面,带包路径,也就是
/WEB-INF/classes/wen/IndexBean.class
wenjie337 2007-08-29
  • 打赏
  • 举报
回复
麻烦各位大大帮忙看下啊,小弟不盛感激!
jeffysky1 2007-08-29
  • 打赏
  • 举报
回复
不需要显示的写一个构造方法。

javabean 的写法只要没问题,引用没问题的话,是可以的。

public class名(){
一些内部属性

方法一

方法二

}


eclipse对jsp文件的管理是比较方便的,除了楼上各位的部署方法以外,还可以用 eclipse 的 file ---》 中的 Export 中,对jsp工程进行打包,生成 war文件,这个文件放在tomcat下,用浏览器就可以解压缩的。

最后回答你的问题:jababean是 jsp中一个部分,和 eclipse 这个IDE 没有任何关系! IDE只是工具而已!
加载更多回复(3)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧