Appcan与后台数据库表交互,注册登录完整页面

<!DOCTYPE html> <html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px"> <head> <title></title> <meta charset="utf-8"> <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"> <link rel="stylesheet" href="css/fonts/font-awesome.min.css"> <link rel="stylesheet" href="css/ui-box.css"> <link rel="stylesheet" href="css/ui-base.css"> <link rel="stylesheet" href="css/ui-color.css"> <link rel="stylesheet" href="css/appcan.icon.css"> <link rel="stylesheet" href="css/appcan.control.css"> <link rel="stylesheet" href="first_content/css/main.css"> </head> <body class="um-vp bc-bg" ontouchstart> <div class="ub-f1 tx-l ub ub-ver c-wh"> <div class="umh1"></div> <form method="get" action="http://www.appcan.cn"> <div class="umar-a uba bc-border"> <div class="ub ub-ac ubb umh5 bc-border "> <div class=" uinput ub ub-f1"> <div class="uinn fa fa-user sc-text"></div> <input placeholder="手机/邮箱/用户名" type="text" class="ub-f1" id="loginName"> </div> </div> <div class="ub ub-ac umh5 bc-border "> <div class=" uinput ub ub-f1"> <div class="uinn fa fa-lock sc-text"></div> <input placeholder="密码" type="password" class="umw4 ub-f1" id="password"> </div> </div> </div> <div class="uinn"> <div class="btn ub ub-ac bc-text-head ub-pc bc-btn uc-a1" id="submit"> 登录 </div> </div> <button type="submit"class="uinvisible"></button> </form> <div class="umar-a ub t-blu"> <div class="ub-f1 ulev-1 uinn3" onclick="text_zhuce()"> 立即注册 </div> <div class="ulev-1 uinn3"> 忘记密码 </div> </div> <div class="uinn ub ub-ac ub-pc"> <div class="resqq ub-img umhw2 umar-a"></div> <div class="resxinlang ub-img umhw2 umar-a"></div> <div class="resren ub-img umhw2 umar-a"></div> </div> </div> <script src="js/appcan.js"></script> <script src="js/appcan.control.js"></script> <script src="js/main.js"></script> <script src="js/config.js"></script> </body> <script> appcan.ready(function() { appcan.initBounce(); }) appcan.button("#submit", "ani-act", function() { var loginName=$('#loginName').val(); var password = $('#password').val(); if(loginName=="") { $toast('用户名不能为空',2000); return; } if(password=="") { $toast('密码不正确',2000); return; } alert(loginName+"==="+password); //alert(serverURL); ajax({ url : "userAjax!login", data : { name : loginName, password : password }, dataType : "json", successx : function(data) { alert(data.result); if(data.result=="userNull"){ $toast('查无此用戶',2000) } if(data.result=="passwordError"){ $toast('密码错误',2000) } if(data.result=="loginSuccess"){ openNewWin("zhuxiao","zhuxiao.html"); } }, error : function(xhr, type) { $toast("网络连接超时", 3500); } }); }) function text_zhuce() { openNewWin("zhuce","zhuce.html") } </script> </html>

<!DOCTYPE html> <html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px"> <head> <title></title> <meta charset="utf-8"> <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"> <link rel="stylesheet" href="css/fonts/font-awesome.min.css"> <link rel="stylesheet" href="css/ui-box.css"> <link rel="stylesheet" href="css/ui-base.css"> <link rel="stylesheet" href="css/ui-color.css"> <link rel="stylesheet" href="css/appcan.icon.css"> <link rel="stylesheet" href="css/appcan.control.css"> <link rel="stylesheet" href="zhuce_content/css/main.css"> </head> <body class="um-vp bc-bg" ontouchstart> <div class="c-wh uinnh5"> <div class="uba uc-a1 bc-border"> <div class="ub uinn5 bc-border ubb"> <div class="ub ub-ac uw-reg ulev-app1"> 登录名称 </div> <div class="ub ub-ac ub-f1"> <div class="uinput ub ub-f1"> <input placeholder="请输入您的登录名" type="text" class="ub-f1" id="loginName"> </div> </div> </div> <div class="ub uinn5 b-d8 ubb"> <div class="ub ub-ac uw-reg ulev-app1" > 设置密码 </div> <div class="ub ub-ac ub-f1"> <div class="uinput ub ub-f1" > <input placeholder="输入6~20位字符" type="password" class="ub-f1" id="password"> </div> </div> </div> <div class="ub uinn5"> <div class="ub ub-ac uw-reg ulev-app1"> 确认密码 </div> <div class="ub ub-ac ub-f1"> <div class="uinput ub ub-f1"> <input placeholder="再次输入设置的密码" type="password" class="ub-f1" id="password_chack"> </div> </div> </div> </div> <div class="ub ub-pe uinn-a6 ulev-4"> <div class="sc-text"> 我同意 </div> <div class="sc-text-active"> 用户服务协议 </div> </div> <div class="uinn-at1"> <div class="btn ub ub-ac bc-text-head ub-pc bc-btn" id="btn2" > 注册 </div> </div> </div> </body> <script src="js/appcan.js"></script> <script src="js/appcan.control.js"></script> <script src="js/appcan.listview.js"></script> <script src="js/main.js"></script> <script src="js/config.js"></script> </body> <script> appcan.ready(function() { appcan.initBounce(); }) appcan.button("#btn2","ani-act",function(){ var loginName = $('#loginName').val(); var password = $('#password').val(); var password_chack=$('#password_chack').val(); if(loginName==""){ $toast("请输入登录名","3000") return; } if(password==""){ $toast("请输入登录密码","3000") return; } if(password!=""&password.length<6){ $toast("密码至少六位","3000") return; } if(password_chack==""){ $toast("请再次输入密码","3000") return; } if(password!=password_chack){ $toast("两次密码不一致","3000") return; } alert(serverURL); alert(loginName+"==="+password) ajax({ url : "userAjax!add_model", data : { loginName : loginName, password : password }, dataType : "json", successx : function(data) { alert(111); }, error : function(xhr, type) { $toast("网络连接超时", 3500); } }); } ); </script> </html>
测试地址:
http://localhost:8080/HelloWorld/userAjax!login?name=123&password=123456
JAVAEE

/** * 登录 */ @SuppressWarnings("unchecked") public String login(){ User loginUser = userService.getByName(name); if(loginUser == null){ result = "userNull"; }else if(!(loginUser.getPassword().equals(password))){ result = "passwordError"; }else{ //把用户存入session session.put("user", loginUser); List<Module> modules = new ArrayList<Module>(); //遍历session用户的所有角色 for(Iterator<Role> roles = loginUser.getRoles().iterator();roles.hasNext();){ Role role = roles.next(); List<Module> modules1 = moduleSerivce.getModulesByRoleId(role.getId()); modules.addAll(modules1); } modules =(List<Module>)new ListUtil().removeRepeat(modules); //把用户的模块存入session session.put("modules", modules); result = "loginSuccess"; } return SUCCESS; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现