【零开始jfinal_OA】 三:登录功能的实现

我想,应该是先从注册讲起,但是差不了多少,就先从登录讲起吧。

这只是一个demo,有很多细节没有处理,只是一个大概的框架。

数据库:

用户表:Users

字段 备注
id


username

账户名称(主键)

password

密码

mobile

手机号

emial

邮箱




定义完成数据库之后使用代码生成GeneratorDemo(官方Demo里有这个文件)生成即可,接下来就是开发了!

功能实现

定义一个 UserController  extends Controller

登录页面:

public void index(){
  render("/login.html");
}

我在config中定义了路由:

me.add("/user", UserController.class);

登录功能最简单的实现方式,其实在判断用户的时候还有更方便的方法,用户密码也不能以明文的方式存储,要进行MD5加密:

//登录
public void login(){
        User user = getModel(User.class);
        User login = User.dao.findFirst("select * from user where username = '"+user.getUsername()+"'");
        if(login == null){
            //用户不存在
            setAttr("errortext", "用户不存在");
            render("/login.html");
        }else{
            if(user.getPassword().equals(login.getPassword())){
                getSession().setAttribute("User", login);
                redirect("/admin");
            }else{
                //密码错误
                setAttr("errortext", "密码错误");
                render("/login.html");
            }
        }
    }

HTML

<form action="/user/login" method="post" class="am-form">
      <label for="email">账号:</label>
      <input type="text" name="user.username" id="username" value="">
      <br>
      <label for="password">密码:</label>
      <input type="password" name="user.password" id="password" value="">
      <br>
      <label for="remember-me">
        <input id="remember-me" type="checkbox">
        记住密码
      </label>
      <br />
      <div class="am-cf">
        <input type="submit" name="" value="登 录" class="am-btn am-btn-primary am-btn-sm am-fl">
        <span>${errortext}</span>
        <input type="submit" name="" value="找回密码 " class="am-btn am-btn-default am-btn-sm am-fr">
      </div>
    </form>

解释:如果以form方式传值,则以:name=对象.属性的方式命名,在action中填写对应controller中的方法即可。

补充:

      注销当前用户只需要清空session即可。

       本文章没有介绍Validator验证,大家可以自己参看官方文档或者Demo。

        关于登录的拦截器可以参考:http://my.oschina.net/w4ww/blog/608809

       参数传值:

比如我在后台的代码

public void login(){
		String username = getPara(0);
		String password = getPara(1);
		System.out.println(username);
		System.out.println(password);
	}

那我以链接形式传值的话就是:localhost/user/login/username-password 以“-”区分参数,当然还有其他的方法不妨参考一下官方文档,就不一一介绍了。

访问的话路径就是:/user 是首页

                               /user/login 是登录功能


你可能感兴趣的:(【零开始jfinal_OA】 三:登录功能的实现)