时间:2014-12-01 来源:

struts2+ajax+json实现用户登录 【移动开发】

实现的是异步刷新登录功能div+css+js切图,返回出错信息时不刷新页面.

前端代码:

<action name="login" class="com.cn.useraction.LoginAction" method="login"> <!-- 返回json类型数据 --> <result name="success" type="json"> <param name="root">result<!-- result是action中设置的变量名,div+css+js切图也是页面需要返回的数据页面div重构,该变量必须有setter和getter方法 --></param> </result> <result name="UserNotExist" type="json"> <param name="root">result<!-- result是action中设置的变量名,页面div重构也是页面需要返回的数据psd切图html,该变量必须有setter和getter方法 --></param> </result> <result name="error" type="json"> <param name="root">result<!-- result是action中设置的变量名,手机div+css也是页面需要返回的数据web外包,该变量必须有setter和getter方法 --></param> </result> </action> 另外,web外包需要在package标签中加入json信息:

action代码如下:

<package name="useraction" extends="struts-default,json-default"> 另外,div页面导入用到的包:

注意div+css+js切图,而利用action中返回的不同值来判断在前端究竟要做什么工作.

<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>struts2+ajax返回json类型数据</title> <script type="text/javascript" src="js/jquery.js"></script> </head> <body> <h5>登录</h5> <br /> <form action="#" method="post"> <label for="username">用户名:</label><input type="text" name="username" /> <label for="password">密码:</label><input type="password" name="password" /> <input type="button" class="btn" value="登录"/> </form> <br /> <h5>错误信息</h5> <br /> <ul> <li><span id="error"></span></li> </ul> <script type="text/javascript"> /* 提交结果承接网站前端,function(){ $.ajax({ type:"post",//需要用来处理ajax请求的action name data:{//设置数据源 username:$("input[name=username]").val()," 不然会报错网页切图制作, dataType:"json",//设置需要返回的数据类型 success:function(data){ var d = eval("("+data+")");//将数据转换成json类型,网页重构报价可以把data用alert()输出出来看看到底是什么样的结构 //得到的d是一个形如{"key":"value","key1":"value1"}的数据类型,承接网站前端然后取值出来 if (d.success=="登录成功!") { window.location.href = "index.jsp"; } else { $("#error").text(""+d.error+""); } }, error:function(){ alert("系统异常,手机div+css请稍后重试!"); }//这里不要加"," }); }); } /* 页面加载完成,div切图排版绑定事件 */ $(document).ready(function(){ btn();//点击提交网页切图制作, rs.getString("flag")); } rs.close(); pstmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } if (name == null)// 验证用户名是否存在 return "UserNotExist"; else if (name.equals(username) && pass.equals(password))// 验证登录用户名与密码是否匹配 return "success"; else return "error"; } /** * 处理ajax请求 * @return SUCCESS */ public String login() throws Exception { if (userCheck().equals("success")) { ActionContext.getContext().getSession().put("username", username); //将数据存储在map里,div+css+js切图再转换成json类型数据承接网站前端,Object> map = new HashMap<String, "登录成功!"); JSONObject json = JSONObject.fromObject(map);//将map对象转换成json类型数据 result = json.toString();//给result赋值web外包,传递给页面 return "success"; } else if (userCheck().equals("UserNotExist")) { //将数据存储在map里,web外包再转换成json类型数据网页切图制作,Object> map = new HashMap<String, "登录失败:用户名不存在或用户名为空!"); JSONObject json = JSONObject.fromObject(map);//将map对象转换成json类型数据 result = json.toString();//给result赋值承接网站前端,传递给页面 return "UserNotExist"; } else { //将数据存储在map里,承接网站前端再转换成json类型数据psd切图html,Object> map = new HashMap<String, "登录失败:密码错误或未知的异常!"); JSONObject json = JSONObject.fromObject(map);//将map对象转换成json类型数据 result = json.toString();//给result赋值网页切图制作,传递给页面 return "error"; } } } 完成收工!

点击次数:7380
作者:
web前端行业资讯
Web new NewsList
微软发布WindowsServerBuild17074更新 ,,2018年01月18日凭借一个AI小功能,这款Google应用冲上苹果AppStore榜首 ,,2018年01月18日百度数据可视化实验室正式成立,发布深度学习可视化平台VisualDL ,,2018年01月18日OpenAI开源最新工具包,模型增大10倍只需额外增加20%计算时间 ,,2018年01月18日百度手机输入法8.0正式发布:支持多人语音速记 ,,2018年01月18日CSDN宣布收购TinyMind团队并升级为AI社区 ,,2018年01月18日甲骨文发布补丁修复英特尔芯片漏洞造成的问题 ,,2018年01月18日权威!官方发布CPU熔断和幽灵漏洞防范指引:附补丁下载 ,,2018年01月18日Oracle宣布新的JavaChampions ,,2018年01月18日腾讯加码区块链项目已悄然注册“以太锁”商标 ,,2018年01月18日Fedora28壁纸征集活动现已开幕:将持续至2月13日 ,,2018年01月18日苹果WebKit团队发布Speedometer2.0网页响应测试工具 ,,2018年01月18日百度输入法8.0后天发布:全感官AI输入 ,,2018年01月18日腾讯和乐高合作:共同研发智能玩具、游戏 ,,2018年01月18日HomePod上市日益临近智能音箱市场吸引力越来越大 ,,2018年01月18日3D打印脑组织?科学家正在向这一目标正在前进 ,,2018年01月18日英特尔公布修补漏洞后PC性能数据:8代CPU影响最小 ,,2018年01月18日云存储公司Dropbox秘密提交IPO申请估值超百亿美元 ,,2018年01月18日iPod之父:防手机上瘾无技术难度苹果谷歌应承担责任 ,,2018年01月18日芯片不安全英特尔云客户考虑转用AMD等对手处理器 ,,2018年01月18日2018年Java展望 ,,2018年01月18日区块链有多火?快播流量矿石遭20多万人疯抢 ,,2018年01月18日Intel搞定神经拟态芯片:模拟人类大脑、自主学习 ,,2018年01月18日阿里巴巴发布IoTConnect开放连接协议,盼推动语音互动入口普及 ,,2018年01月18日区块链火了,全球大佬们怎么看? ,,2018年01月18日Facebook正测试新功能主推本地新闻资讯 ,,2018年01月18日在GooglePlay中发现使用Kotlin开发的安卓恶意软件 ,,2018年01月18日VisualStudio201715.6预览版本2,增加新功能 ,,2018年01月18日百度陆奇:AI是5G最好的加速器 ,,2018年01月18日PinterestCEO:不同于谷歌和Facebook,我们走了第三条路 ,,2018年01月18日随机生成验证码和算术逻辑运算的实现以及详细解释 【研发管理】2015年04月24日IE滤镜 【编程语言】2015年04月17日LintCode-最长回文子串 【编程语言】2015年08月14日【Java基础之】Hibernate之360度环视【移动开发】2015年04月24日android高手之路之AndroidWidget【综合】2015年01月30日从Eclipse到AndroidStudio:Android项目如何进行迁移 【移动开发】2015年07月24日加州理工学院公开课:机器学习与数据挖掘_Epilogue(第十八课-终结篇) 【编程语言】2015年01月26日UVa153-Permalex【编程语言】2015年04月03日Java将每半年发布一个版本 ,,2017年09月14日UITextView实现Placeholder功能【移动开发】2015年02月28日【LeetCode】HouseRobberI&II解题报告 【综合】2015年07月21日【LeetCode】FirstMissingPositive 【综合】2015年05月06日磁盘满导致mysql死锁【综合】2015年05月25日MongoDB(一)——简单介绍 【互联网】2014年11月20日输出Bag中的所有记录为一个只有值的json数组---精通android、IOSApp应用服务程序开发 【移动开发】2015年06月05日PHP遍历数组的几种方法2014年01月29日Objective-C之成魔之路【14-基本的C语言特性】 【系统运维】2014年11月17日Hill密码加密解密java代码 【移动开发】2015年07月22日Linux文件监控 【综合】2015年08月15日如何在互联网上搭建自己的家园 【编程语言】2015年03月27日【科普文章】我的MP3拆解分析 【编程语言】2015年01月20日Flash简单制作光晕动画效果2014年01月28日android面试题汇总 【移动开发】2015年03月09日rac_生产库日志组损坏处理 【综合】2015年07月14日【经典面试题】最近公共祖先(LCA) 【编程语言】2015年02月03日在linux下制作libxxx.so动态库【编程语言】2015年05月25日1002—列变位法解密 【数据库】2015年05月27日极客班GeekBand-C++第一次课程辅导-李建忠【编程语言】2015年07月27日SSH之spring【编程语言】2015年02月28日RHE5服务器管理搭建DNS服务器步骤说明【图文】2014年01月29日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)