1、持久层
在持久层的接口中定义了插入和查询的方法,在实现文件中实现方法
2、业务层
业务层中定义“找不到用户”和“密码错误”异常,业务层接口中定义登录和注册方法,在实现类中重写方法。
3、控制层
定义一个控制层基类全局处理异常和定义全局控制方法。由具体控制类来进行登录和注册动作,返回状态信息。
4、前端页面
前端页面使用ajax()函数来控制
注册:
<script type="text/javascript">
//监听注册按钮是否被点击
$("#btn-reg").click(function (){
//动态获取表单控制点数据
//let username = $("#username").val();
//let pwd = $("#password").val();
//发送ajax()的异步请求来完成用户的注册功能
$.ajax({
url:"/users/reg",
type:"POST",
data:$("#form-reg").serialize(),
datatype:"JSON",
success:function (json){
if(json.state === 200){
alert("注册成功")
}
else{
alert("注册失败")
}
},
error:function (xhr){
alert("注册时产生未知的错误异常"+xhr.status);
}
});
});
</script>
登录:
<script type="text/javascript">
$("#btn-login").click(function (){
$.ajax({
url:"/users/login",
type:"POST",
data:$("#form-login").serialize(),
datatype:"JSON",
success:function (json){
if(json.state==200){
//alert("登陆成功");
//跳转到系统主页,相对路径
location.href = "index.html";
}else{
alert("登陆失败");
}
},
error:function (xhr){
alert("登录时产生未知异常"+xhr.message);
}
});
})
</script>
5、会话
使用会话以便于加快系统响应速度,将需要重复使用的信息加载到缓存中,系统不需要重复动作。在控制器基类中定义方法,在子控制器中使用。
①方法getAttribute(name)获取节点name属性的值 ,setAttribute(name,value)增加一个新属性和值或者把现有属性设置为指定值。
②valueOf()
函数用于返回指定对象的原始值。