jsp:useBean找不到类,为什么呢?

ssh78 2009-08-14 04:23:45
The value for the useBean class attribute login.loginbean is invalid.
在网上搜了好多帖子也不能解决,苦恼
eclipse里的tomcat项目,目录如下:
项目名
|--web
|--login
|--logincheck.jsp
|--index.jsp
|--WEB-INF
|--classes
|--login
|--loginbean.class
|--lib
|--src
|--login
|--loginbean.java
|--work

下面贴代码:
logincheck.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="login.*" %>
<jsp:useBean id="userbean" class="login.loginbean" scope="page">
<jsp:setProperty name="userbean" property="*"/>
</jsp:useBean>
<%
if (user.checklogin())
{
String username = request.getParameter("username");
session.setAttribute("username", username);
%>
<jsp:forward page="success.jsp"/>
<%
}
else
{
%>
<jsp:forward page="failure.jsp"/>
<%
}
%>




loginbean.java
package login;
import java.sql.*;
public class loginbean
{
private String username;
private String password;
public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}
public loginbean(){

username="";

password="";

}


public boolean checklogin()
{
boolean loginflag = false;
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://10.54.0.134:1433;DatabaseName=sshtest","sa","oa");
stmt = con.createStatement();
String sql ="select * from tbluser where loginid='"+username+"' and passwd='"+password+"'";
rs = stmt.executeQuery(sql);
while (rs.next())
{
if(password.equals(rs.getString("passwd")))
{
loginflag=true;
}
}
}
catch (Exception sqlex1)
{
sqlex1.printStackTrace();
}
finally
{
if (con != null)
{
try
{
con.close();
}
catch (SQLException sqlex2)
{
sqlex2.printStackTrace();
}
}
}
return loginflag;
}


}
...全文
728 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
benladeng1991 2012-07-01
  • 打赏
  • 举报
回复
你的loginbean怎么写的呀
ssh78 2009-08-17
  • 打赏
  • 举报
回复
谢谢大家,本来我是习惯src放外面的,但是刚装了eclipse3.2,建项目时默认的src在web-inf下,谢谢你们的建议。我去改了,结贴了,再次谢谢大家
电灯泡 2009-08-14
  • 打赏
  • 举报
回复
|--WEB-INF
|--classes
|--login
|--loginbean.class
|--lib
|--src
|--login
|--loginbean.java
楼主请看,src文件夹是没有问题的,即使放在wen-inf下都是可以的,而你在<jsp:useBean/>中写的路径class="login.loginbean"按理说都是没有问题的,因为,你进入web-info/src/下,是看得见login文件夹和login文件夹下的loginbean.java类的,按理说都是可以的。但有时系统或者eclipse就是怪,给楼主几点解决的建议:
1、命名规范化,把loginbean.java改为LoginBean.java,即使问题不是由这个原因造成的,也要养成良好的命名习惯。
2、重启eclipse和服务器
3、按照常规出牌,你把src文件夹拿出来,放在与webRoot同级的路径上,当然不是手动剪切拷贝src,而是通过设置eclipse,在项目名上右击鼠标选择"Build Path"->"Config build path"->"source",可看到下面的“default output folder"就可任意配置你src文件夹了,src文件夹下也叫类路径。我不知道你是怎样把src放到web-inf下的,最好就是遵循eclipse默认的目录结构,即src和webRoot并列。这样应该就可以了
qin09872006 2009-08-14
  • 打赏
  • 举报
回复
那样写javabean是没有问题的,我觉得19楼说的是正解。为避免jsp文件都放到根目录下,可以在WEB-INF下建立个目录,全部放那里面啊~~只是在转页面的时候要注意点添加目录而已
sangshusen_1988 2009-08-14
  • 打赏
  • 举报
回复
<jsp:useBean id="userbean" class="login.loginbean" scope="page">
<jsp:setProperty name="userbean" property="*"/>
</jsp:useBean>

--->这个地方也有问题的吧
修改成这样看看
<jsp:useBean id="userbean" class="login.loginbean" scope="page"></jsp:useBean>
<jsp:setProperty name="userbean" property="*"/>
ssh78 2009-08-14
  • 打赏
  • 举报
回复
19楼是正解,谢谢。请问我的目录,难道jsp文件都放到根目录下么,这样可就太乱了吧,如果还是原来的目录,该修改那些东西让他认这个类呢?愿闻其详
magiccreeer 2009-08-14
  • 打赏
  • 举报
回复
你把logincheck.jsp放在和WEB-INF同级目录下试一下.
ssh78 2009-08-14
  • 打赏
  • 举报
回复
17楼的,这个帖子我已经看过了,所以我才加了构造函数,还不行,上面说的方法不适合我的情况呀
zhang_yu_QIN 2009-08-14
  • 打赏
  • 举报
回复
Lz看看这个贴。跟你的问题一样。

http://blog.163.com/1985wanggang/blog/static/7763833200951944332584/
ssh78 2009-08-14
  • 打赏
  • 举报
回复
12楼,请问我怎么才能把值传过去呀?
xinyung 2009-08-14
  • 打赏
  • 举报
回复
确认你的JSP和Bean都正确部署了,路径都正确吗?如果是,清除work下的内容再重启服务器试试
ssh78 2009-08-14
  • 打赏
  • 举报
回复
请13楼的看我7楼的补充呀
啊彪123 2009-08-14
  • 打赏
  • 举报
回复
<jsp:useBean id="userbean" class="login.loginbean" scope="page">
if (user.checklogin())
你用的bean的ID是userbean,调用的时候也要用userbean,而不是用user。
bea_java 2009-08-14
  • 打赏
  • 举报
回复
你实例化以后你的userbean里边是没有值的。。 你jsp里边的代码写的有问题。
你想把登陆用户输入的值送到数据库判断对吧,但是你没有送过去成功。

逻辑问题。
ssh78 2009-08-14
  • 打赏
  • 举报
回复
回8楼:
目录结构从来就没有一成不变的呀,每个人做项目习惯或者项目需要都不同,目录也会不同的,这个需要配置的
回10楼:
这个构造函数,我是查了很多帖子加上的,不加也是一样的错。
believefym 2009-08-14
  • 打赏
  • 举报
回复
http://forums.sun.com/thread.jspa?threadID=567258

[Quote=]
had the same problem... finally found out, that following Java Bean Spec your class needs a default constructor...

if you want to implement your own constructor make sure to supply an empty default constructor as well!

your web server will test to initiate an object of your class in case non is supplied and will stumble over non existing default constructor ;-)
[/Quote]

试试把你的loginbean的constructor去掉,或者把方法体清空
ssh78 2009-08-14
  • 打赏
  • 举报
回复
类文件放错了?应该放在哪里呢?
nangonghaopeng 2009-08-14
  • 打赏
  • 举报
回复
说两句
你的目录结构这么乱啊
类文件和页面文件都放错地方了
那肯定就找不到了
ssh78 2009-08-14
  • 打赏
  • 举报
回复
更正:
if (user.checklogin())
应该是
if (userbean.checklogin())

回1楼2楼,src包放在那里其实无所谓,只要项目编译时,设置好了,将src里的java文件编译到WEB-INF/classes下就可以。所以不是这个原因啦,我已经试过了
believefym 2009-08-14
  • 打赏
  • 举报
回复
src放web-inf下面没什么问题,源代码这时候没啥用了,真正app跑起来还是那些jsp,.class,只要他们放好了就没问题
加载更多回复(5)

81,091

社区成员

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

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