日期:2014-05-19  浏览次数:20692 次

struts2登陆
各位大虾们好:
  问个问题:我用struts做登陆,怎么把页面上的数据和DB里面的对比?是直接去查询还是需要用JDBC查询出来后,再对比?好纠结 希望指点。。

------解决方案--------------------
直接根据提交的name 和password 在数据库中查询,
------解决方案--------------------
直接根据表单提交的数据去DB查询,如果查询不到,则登录失败。 如果使用你说的先查出来再比对,完全没必要。 前面是一对一比对,后面则是多对一比对, 当用户量一大,登录就非常慢了,所以建议前者。
------解决方案--------------------
业务层写个查询方法,把页面传到action的值传过去查询,查询不到就登录失败,查询到了再判断密码是否正确
Java code

/**
     * 判断用户是否存在
     * @param username
     * @return
     */
public boolean exsit(String username){
        long count = (Long)em.createQuery("select count(o) from Buyer o where o.username=?1")
        .setParameter(1, username).getSingleResult();
        return count>0;
    }
/**
     * 判断用户名及密码是否正确
     * @param username
     * @param password
     * @return
     */
public boolean checkUser(String username, String password){
        long count = (Long)em.createQuery("select count(o) from Buyer o where o.username=?1 and o.password=?2")
        .setParameter(1, username).setParameter(2, MD5.MD5Encode(password)).getSingleResult();
        return count>0;
    }