在myeclipse里,用struts+hibernate框架。用mysql数据库中的用户名与密码登录。
在userloginaction.java里execute里的关键代码是什么?这样写哪里不对?UserLoginFormuserLoginForm=(UserLoginF...
在userloginaction.java里execute里的关键代码是什么?这样写哪里不对?
UserLoginForm userLoginForm = (UserLoginForm) form;// TODO Auto-generated method stub
// Admin admin = new Admin();
String name=userLoginForm.getName();
String password=userLoginForm.getPassword();
if (userLoginForm.getName().equals(name)&&userLoginForm.getPassword().equals(password)){
//如果是,则认为通过,设置name属性,在userLogin.jsp中使用
request.setAttribute("name", userLoginForm.getName());
//forword到userloginsuccess.jsp界面
return mapping.findForward("userloginsuccess");
}
//forword到userloginerror.jsp界面
return mapping.findForward("userloginerror");
} 展开
UserLoginForm userLoginForm = (UserLoginForm) form;// TODO Auto-generated method stub
// Admin admin = new Admin();
String name=userLoginForm.getName();
String password=userLoginForm.getPassword();
if (userLoginForm.getName().equals(name)&&userLoginForm.getPassword().equals(password)){
//如果是,则认为通过,设置name属性,在userLogin.jsp中使用
request.setAttribute("name", userLoginForm.getName());
//forword到userloginsuccess.jsp界面
return mapping.findForward("userloginsuccess");
}
//forword到userloginerror.jsp界面
return mapping.findForward("userloginerror");
} 展开
展开全部
你从form 取到的值去跟自己比较?如果有值是绝对相等的,如果没有值,就是nullpointException 应该这样比较:
String name=userLoginForm.getName();
String password=userLoginForm.getPassword();
//如果没有连接数据库,可以这样:
if ("zhangsan".equals(name) && "123".equals(password)){
}
//如果连接了数据库,可以这样:
User user = new LoginService().getUser(name,password);//这个是你服务层的方法,服务层的方法去调用数据访问层的方法,数据访问层去查出帐号、密码,然后封装成User对象,返回给服务层的方法,在action里边去调用服务层的方法.
DAO的代码可以这样写:
public User getUser(String name,String password)
{
String sql = "select name,password from user where name=? and password=?";
User user = null;//这个是你的实体类,包含name跟password属性
if {
user = new User();
user.setName(rs.getString("name"));
user.setPasswrod(rs.getString("password"));
}
return user;
}
//user不为空,说明登录成功,否则就是帐号或者密码错误!
if(user!=null){
request.setAttribute("name", user.name);
//forword到userloginsuccess.jsp界面
return mapping.findForward("userloginsuccess");
}
String name=userLoginForm.getName();
String password=userLoginForm.getPassword();
//如果没有连接数据库,可以这样:
if ("zhangsan".equals(name) && "123".equals(password)){
}
//如果连接了数据库,可以这样:
User user = new LoginService().getUser(name,password);//这个是你服务层的方法,服务层的方法去调用数据访问层的方法,数据访问层去查出帐号、密码,然后封装成User对象,返回给服务层的方法,在action里边去调用服务层的方法.
DAO的代码可以这样写:
public User getUser(String name,String password)
{
String sql = "select name,password from user where name=? and password=?";
User user = null;//这个是你的实体类,包含name跟password属性
if {
user = new User();
user.setName(rs.getString("name"));
user.setPasswrod(rs.getString("password"));
}
return user;
}
//user不为空,说明登录成功,否则就是帐号或者密码错误!
if(user!=null){
request.setAttribute("name", user.name);
//forword到userloginsuccess.jsp界面
return mapping.findForward("userloginsuccess");
}
追问
没有用DAO层,只用了hibernate+struts,在loginAction.java里。想在execute方法里,写一些与数据库连接的代码。这要怎么写呢?
追答
public String execute(){
String name=userLoginForm.getName();
String password=userLoginForm.getPassword();
Session session = new Configuration().configure().buildSessionFactory().getCurrentSession();
session.beginTransaction();
Session sf = this.getSessionFactory().openSession();
Query q = sf.createQuery("from Users where useName =? and usePwd = ?");
q.setString(0, name);
q.setString(1, password);
Users use = (Users)q.uniqueResult();
if(user!=null){
request.setAttribute("name", user.name);
//forword到userloginsuccess.jsp界面
return mapping.findForward("userloginsuccess");
}
}
该代码没有测试过,不过相信你是这个意思的!
展开全部
String name=userLoginForm.getName();
String password=userLoginForm.getPassword(); 这是表单取出来的数据,该和数据库中取出的数据比较,你自己看看你的比较是什么。我都抓狂了,怎么犯这种错误,自己和自己比较,出来空指针错误,肯定是相等的。
String password=userLoginForm.getPassword(); 这是表单取出来的数据,该和数据库中取出的数据比较,你自己看看你的比较是什么。我都抓狂了,怎么犯这种错误,自己和自己比较,出来空指针错误,肯定是相等的。
追问
小妹初学myeclipse,你既然知道怎么写,就把代码贴上去呗。大家都学习学习。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
新建项目后 直接右键项目——选择“MyEclipse”——点击“Add Struts Capabilities...”...
不过还是建议不要用工具去配置,太麻烦了,搞完后你还需要修改很多东西,所以还是建议手动配置,刚开始可能有点困难,弄多了你会感觉很爽的~.~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么啊??都是从form里面得到的值,10000%的相等啊,没任何作用啊,应该是在action里面调用dao里面的方法判断输入的用户名和密码与数据库中的是否一致之后再进行跳转才行,看来你还没有理解MVC的本质,在修改一下吧
追问
必须用dao吗?我还没有学到这一部分,好吧。我再改改。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么乱七八糟的。去好好看看mvc思想
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |