(六)登录功能代码实现

原创 2016年08月31日 16:15:44

登录功能我们要求从后台验证一个用户是否合法。

前面一篇博文中,我们将前台传来的数据交给login()方法去处理,因此我们从这里入手开始。

1.action层的填写

既然前台传来了数据,那么我们就需要获取他,因此getModel()方法要返回我们的employee对象。

    //模型驱动使用的对象
    private Employee employee = new Employee();
    @Override
    public Employee getModel()
    {
        return employee;
    }

然后我们要调用业务层的login(employee)方法处理,返回处理结果,根据结果的不同决定页面的跳转走向。

    public String login(){
        //调用业务层类

        Employee existEmployee = employeeService.login(employee);
        if(existEmployee==null){

            //登录失败

            this.addActionError("用户名或者密码错误");
            return INPUT;
        }else{

            //登录成功

            ActionContext.getContext().getSession().put("existEmployee",existEmployee);
            return SUCCESS;

        }

    }

上面的代码中,如果登录成功,我们将该用户放到session中去,便于我们在前端页面显示欢迎条目。

好了,现在我们开始业务层的编写。

2.业务层

既然我们需要业务层的login方法,那么肯定需要现在接口层添加该方法,然后我们去实现层实现该方法。

实现如下:

    @Override
    /**
     * 业务层登录方法
     */
    public Employee login(Employee employee)
    {
        // TODO Auto-generated method stub
        Employee existEmployee = employeeDao.findByUsernameAndPassword(employee);
        return existEmployee;
    }

下面轮到dao层了

3.DAO层

从业务层我们可以发现,我们需要一个findByUsernameAndPassword()方法,因此同业务层一样,我们在接口层创建相应的方法,然后在实现层中实现它。

    @Override
    /**
     * DAO中根据用户名和密码查询用户
     */
    public Employee findByUsernameAndPassword(Employee employee)
    {
        // TODO Auto-generated method stub
        String hql = "from Employee where username=? and password = ?";
        List<Employee> list = this.getHibernateTemplate().find(hql,employee.getUsername(),employee.getPassword());
        if(list.size()>0){

            return list.get(0);
        }

        return null;
    }

注意hql语句的书写。

4.struts.xml文件配置

因为我们在action层配置了页面的返回值,因此要在struts.xml配置文件中配置相应的跳转页面。

        <action name="employee_*" class="employeeAction" method="{1}">
            <result name="input">/index.jsp</result>
            <result name="success" type="redirect">/frame.jsp</result>
        </action>

5.前端页面的处理

我们前面在session中添加了我们登录成功的用户的信息,因此我们可以在跳转成功页面显示该用户的信息,具体做法就是在top.jsp中添加信息:

欢迎你,<s:property value="#session.existEmployee.ename"/>

这样我们就可以在登录成功跳转的页面中看到登录用户的名字了。

版权声明:本文为博主原创文章,转载请注明出处。

相关文章推荐

登录功能实现代码

简单的登录代码实现 第一步,页面提交登录请求 //form表单提交请求 管理登录 用户名 ...

表单实现登录注册功能

登录/注册的实现 在"我是大学生"子网页下设置两个超链接,完成用户的登录/注册 分步注册页: 分步表单这一部分是从网上搜索的一些模板网页源码中剥离出来的,同时做了一些修改。具体实现要用到一些C...
  • czl389
  • czl389
  • 2016-08-24 11:05
  • 1675

Ajax Jquery 提交验证页面数据

$(function(){ //需要检查为空的输入框的id数组 var nullCheckArray = new Array( "username", ...

一个人,如果你不逼自己一把,你根本不知道自己有多优秀

1、一个人,如果你不逼自己一把,你根本不知道自己有多优秀。      2、赚钱是一种能力,花钱是一种水平,能力可以练,水平是轻易练不出来的。  3、年轻人不可以太狂。  4、一个人的知识,通过学习可以...

前端:登录页面

前端:登录页面效果:代码:login.html 登录 <link rel="styleshe

(转)CakePHP你必须知道的21条技巧

转:http://tech.idv2.com/2007/10/19/21-tips-you-must-know-about-cakephp/这篇文章可以说是CakePHP教程中最经典的了。虽然不是完整...

VS2010安装OpenCV2.1方法

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://neocv.blogbus.com/logs/65020560.html原文忘记在哪看到的了,此处将原文稍作修改,使其更易...

Spring学习(十四)Spring中如何使用事务?

为什么要使用事务?如果我们一个业务逻辑只执行一次sql,是不需要使用事务的。但如果要执行多条sql语句才能完成一个业务逻辑的话,这个时候就要使用事务了。因为这几条sql可能有的执行成功,有的执行失败。...

Spring AOP 的实现方式(以日志管理为例)

在学习Spring框架的历程中,最重要的是要理解spring的IOC和AOP了,不但要学会怎么用,最好是知道它是怎么实现的,通过这个国庆假期,好好地过了一下spring的AOP的皮毛,故记录一下学习心...

提高程序并发量的几个建议(不看保证后悔死你)

有朋友和我说,他的程序遇到了瓶颈,程序中带有算法,但是没有事务,仅是查询情况下,应该如何提高并发数量呢?? 首先,我要说的是,先纠正绝大多数人的思维。并发与并行不是一回事!!!并行,指同一时间多个事件...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)