在eclipse下不能用javabean
小弟初学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.
[解决办法]
<%@ page import= "java.sql.* " %>
<!-- 这里加一句 -->
<%@ page import= "wen.* " %>
<jsp:useBean id= "index " class= "wen.IndexBean " scope= "page "/>
[解决办法]
没有显式声明构造函数
[解决办法]
LS正解
[解决办法]
javaBean中不带参数的构造方法不是必需的。
[解决办法]
看看有没有CLASS文件生成.
[解决办法]
估计楼主建的项目不是WEB项目,class应该放在WEB-INFO下
[解决办法]
org.apache.jasper.JasperException: /index1.jsp(3,0) The value for the useBean class attribute wen.IndexBean is invalid.
这个是页面报错啊 你看看你的页面 引用javabean 的时候是不是又问题啊
[解决办法]
同意楼上的
[解决办法]
不需要显示的写一个构造方法。
javabean 的写法只要没问题,引用没问题的话,是可以的。
public class名(){
一些内部属性
方法一
方法二
}
eclipse对jsp文件的管理是比较方便的,除了楼上各位的部署方法以外,还可以用 eclipse 的 file ---》 中的 Export 中,对jsp工程进行打包,生成 war文件,这个文件放在tomcat下,用浏览器就可以解压缩的。
最后回答你的问题:jababean是 jsp中一个部分,和 eclipse 这个IDE 没有任何关系! IDE只是工具而已!
[解决办法]
显示的构造方法是多此一举,所有属性都有相对应的get和set对,大小写也很严格区分,同意楼上的说法,与IDE环境没有关系
[解决办法]
HAHA,你是用的MyEclipse查件吗?如果你没用这个查件,那你可麻烦了,和楼上的几位说的一样,你要弄xml classes文件下保存bean的calss文件,等等,以后你用过滤器,舰艇器等等,你最好先用个MyEclipse查件,这样就方便多了, 记得把项目传到TOMCAT服务器上
[解决办法]
不是代码的问题.
其实就是对javabean的部署和使用过程不了解.
把javabean.class文件放到WEB-INF/CLASSES/wen 下边 再重新调用一次就因该可以了.
我的异常网推荐解决方案:The server encountered an internal error () that prevented it from fulfilling this request.,http://www.myexception.cn/java-web/317.html