注册 登录
编程论坛 J2EE论坛

[原创]jsf+hibernate做的登陆和注册的简单实现

无理取闹 发布于 2007-01-13 23:30, 2895 次点击

我只发了源码和配置文件 jsf用的1。1 hibernate用的3。1
数据库有个l_user表 有username和password两个字段

只有本站会员才能查看附件,请 登录

18 回复
#2
神vLinux飘飘2007-01-13 23:33
呵呵,鼓励一下,长江后浪推前浪~~
#3
hanshengchua2007-01-13 23:36
我一直想知道hibernate是什么思想呢,据说是一个表对应一个数据库。。。
呵呵,支持下楼主先
#4
千里冰封2007-01-14 09:08
支持一下,用到JSF了,不错
#5
无理取闹2007-01-14 10:24

package org.sunme.model.impl;

import java.util.Iterator;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.sunme.model.LUser;
import org.sunme.model.LUserDAO;
import org.sunme.model.hibernate.HibernateSessionFactory;

public class LUserDAOImpl implements LUserDAO {
private Session session=HibernateSessionFactory.getSession();
private Transaction tx=session.beginTransaction();
public List<LUser> getByName(String username) {
String sql="from LUser user where username=:name";
Query query=session.createQuery(sql);
query.setParameter("name", username);
return query.list();
}

public boolean save(LUser user) {
if(user==null)
return false;
else{
session.save(user);
tx.commit();
return true;
}
}
}

#6
无理取闹2007-01-14 10:25

package org.sunme.service.impl;

import java.util.Iterator;
import java.util.List;

import org.sunme.model.LUser;
import org.sunme.model.LUserDAO;
import org.sunme.model.impl.LUserDAOImpl;
import org.sunme.service.LUserService;

public class LUserServiceImpl implements LUserService {
private LUserDAO dao=new LUserDAOImpl();
private List<LUser> list;
public boolean login(String username,String password) {
boolean b=false;
list=(List<LUser>)dao.getByName(username);
if(list!=null){
Iterator it=list.iterator();
while(it.hasNext()){
LUser user=(LUser)it.next();
if(user.getPassword().equals(password))
b=true;
break;
}
}
else
b=false;

return b;
}

public boolean sign(String username,String password) {
list=(List<LUser>)dao.getByName(username);
boolean b=true;
Iterator it=list.iterator();
while(it.hasNext()){
LUser user=(LUser)it.next();
if(user.getUsername().equals(username)){
b=false;
}
}
if(b){
LUser userbean=new LUser();
userbean.setUsername(username);
userbean.setPassword(password);
b=dao.save(userbean);
}
return b;
}
}

#7
无理取闹2007-01-14 10:25

package org.sunme.view;

import org.sunme.service.LUserService;
import org.sunme.service.impl.LUserServiceImpl;

public class UserBean {
private String username;
private String password;
private LUserService service=new LUserServiceImpl();
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 String login(){
if(service.login(username, password))
return "success";
else
return "failure";
}
public String sign(){
if(service.sign(username, password))
return "success";
else
return "failure";
}

}

#8
想你的天空2007-01-15 23:14

我发现的问题:
1 目前没看到你JSF的影子。
2 hibernate的事务没提交。

#9
无理取闹2007-01-16 12:10
jsf 我定义了userBean
hibernate哪里没提交??
#10
无理取闹2007-01-16 12:37

哦对了 我的全部源码在一楼 有兴趣可以下载看看

#11
支离破碎2007-01-16 13:18
建议加入SPRING框架~~~~(最近也学了学JSF。。和原来我用过的Tapestry感觉差不多的。基于组件的。。)
#12
无理取闹2007-01-16 13:35

我刚刚才开始学习框架的东西
所以想把spring留到掌握hibernate后来学习
谢谢楼上建议

#13
想你的天空2007-01-16 15:08
private Transaction tx=session.beginTransaction();
public List<LUser> getByName(String username) {
String sql="from LUser user where username=:name";
Query query=session.createQuery(sql);
query.setParameter("name", username);
return query.list();


是不是缺少了个commit() ?
#14
无理取闹2007-01-16 16:11
这个方法不需要commit();
如果有空你可以仔细看看我的代码
谢谢
#15
想你的天空2007-01-17 09:27
private Transaction tx=session.beginTransaction();
public List<LUser> getByName(String username) {
String sql="from LUser user where username=:name";
try{
Query query=session.createQuery(sql);
query.setParameter("name", username);
return query.list();
tx.commit();
}catch(HibernateException e)
{
e.printStackTrace();
rollback();
}

#16
想你的天空2007-01-17 09:27
#17
无理取闹2007-01-17 09:30
谢谢了
#18
yudiao1232007-01-21 18:00
好!!
#19
shrimpy2007-02-17 03:02
严重: Class : org.shrimpy.view.UserBean not found.
java.lang.NoClassDefFoundError: org/hibernate/Session
at org.shrimpy.model.impl.LUserDAOImpl.<init>(LUserDAOImpl.java:14)
at org.shrimpy.service.impl.LUserServiceImpl.<init>(LUserServiceImpl.java:12)
at org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:311)
at org.apache.myfaces.config.LastVariableResolverInChain.resolveVariable(LastVariableResolverInChain.java:42)
at org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:574)
at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140)
at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:383)
at javax.faces.component.UIOutput.getValue(UIOutput.java:77)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:416)
at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
2007-2-17 2:57:54 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet jsp threw exception
javax.faces.el.EvaluationException: Cannot get value for expression '#{userBean.username}'
at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:402)
at javax.faces.component.UIOutput.getValue(UIOutput.java:77)
at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:217)
at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:135)
at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:53)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536)
at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:495)
at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:363)
at org.apache.jsp.index_jsp._jspx_meth_h_inputText_0(index_jsp.java:181)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:416)
at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.FacesException: java.lang.NoClassDefFoundError: org/hibernate/Session
at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:279)
... 44 more
Caused by: java.lang.NoClassDefFoundError: org/hibernate/Session
at org.shrimpy.model.impl.LUserDAOImpl.<init>(LUserDAOImpl.java:14)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:274)
... 52 more
2007-2-17 2:57:54 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getStringInitParameter
信息: No context init parameter 'org.apache.myfaces.ADD_RESOURCE_CLASS' found, using default value org.apache.myfaces.renderkit.html.util.DefaultAddResource
2007-2-17 2:57:54 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
信息: No context init parameter 'org.apache.myfaces.CHECK_EXTENSIONS_FILTER' found, using default value true
2007-2-17 2:57:54 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet Faces Servlet threw exception
javax.faces.FacesException: Cannot get value for expression '#{userBean.username}'
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:435)
at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.el.EvaluationException: Cannot get value for expression '#{userBean.username}'
at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:402)
at javax.faces.component.UIOutput.getValue(UIOutput.java:77)
at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:217)
at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:135)
at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:53)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:75)
(ServletExternalContextImpl.java:416)
... 20 more
Caused by: javax.faces.FacesException: java.lang.NoClassDefFoundError: org/hibernate/Session
at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:279)
at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:265)
at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:50)
at org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:311)
at org.apache.myfaces.config.LastVariableResolverInChain.resolveVariable(LastVariableResolverInChain.java:42)
at org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:574)
at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140)
at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:383)
... 44 more
Caused by: java.lang.NoClassDefFoundError: org/hibernate/Session
at org.shrimpy.model.impl.LUserDAOImpl.<init>(LUserDAOImpl.java:14)
at org.shrimpy.service.impl.LUserServiceImpl.<init>(LUserServiceImpl.java:12)

at org.apache.myfaces.shared_impl.util.ClassUtils.newInstance(ClassUtils.java:274)
... 52 more

为什么eclipse控制台会出现这样的错误的??
1