关于Struts2和ajax的登录验证问题
2017-03-16 10:13
363 查看
首先要搭建好SSH环境,这就不说了,需要注意的就是要导入json所需要的包。然后在相应的Action中写一个登录验证的方法:
然后在stuuct2的配置文件中配置一下:
红色的部分需要注意一定要设置为json的,不然前台无法获取json的数据
最后就是jsp页面的部分了:
首先要搭建好SSH环境,这就不说了,需要注意的就是要导入json所需要的包。然后在相应的Action中写一个登录验证的方法:
public class UserAction extends ActionSupport{ @Resource(name="userService") private UserService userService; private User user; private String username; private String password; private String result; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } public String jsonLogin(){ System.out.println(1111); System.out.println(username); try { List<User> userList = userService.getUserByLoginid(username); if (userList.isEmpty()) { super.addActionError(super.getText("login.message.failed")); result = "false"; } else { user = userList.get(0); if (password.equals(user.getPassword())) { HttpServletRequest request=ServletActionContext.getRequest(); HttpSession session=request.getSession(); session.setAttribute("username", username); result ="true"; } else { //super.addActionError(super.getText("login.message.failed")); result ="false"; } } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return SUCCESS; }
然后在stuuct2的配置文件中配置一下:
<package name="ajax" extends="json-default"> <action name="jsonLogin" class="cn.wei.farm.action.UserAction" method="jsonLogin"> <result type="json"></result> </action> </package>
红色的部分需要注意一定要设置为json的,不然前台无法获取json的数据
最后就是jsp页面的部分了:
<head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Login Form</title> <script type="text/javascript" src="js/jquery-2.1.4.min.js"></script> <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js"></script> <link rel="stylesheet" href="css/style.css"> </head> <body> <section class="container"> <div class="login"> <h1>用户登录</h1> <form method="post" role="form" id="login" action=""> <p><input type="text" id="username" name="username" value="" placeholder="帐号"></p> <p><input type="password" id="password" name="password" value="" placeholder="密码"></p> <p class="remember_me"> <label> <input type="checkbox" name="remember_me" id="remember_me"> 记住密码 </label> </p> <p class="submit"><input type="submit" name="commit" value="登录"></p> </form> </div> <div class="login-help"> <p>忘记密码? <a href="index.html">点击修改</a>.</p> </div> </section> <script type="text/javascript"> jQuery(document).ready(function($){ $("form#login").validate({ errorClass: "error", errorElement: "div", errorPlacement: function(error, element) { element.after(error); }, rules: { username: { required: true, minlength: 2}, password: { required: true, minlength: 2} }, messages: { username: { required: "用户名不能为空", minlength: $.validator.format("不得少于{0}字符.")}, password: { required: "密码不能为空", minlength: $.validator.format("不得少于{0}字符.")} }, submitHandler: function(form) { $.ajax({ url: "jsonLogin.action", method: 'POST', dataType: 'text', data: { do_login: true, username: $(form).find('#username').val(), password: $(form).find('#password').val() }, success: function (json) { var obj = $.parseJSON(json); //使用这个方法解析json var state_value = obj.result; //result是和action中定义的result变量的get方法对应的 if(state_value=="true"){ window.parent.location.href="index.html"; }else{ alert("用户名或密码错误,请重新输入!"); } }, error: function (json) { alert("json=" + json); return false; } }); } }); }); </script> </body> </html>大概这样就能实现ajax的异步刷新了,菜鸟所写,还望多多指教
相关文章推荐
- 关于CSDN登录提示手机号验证的问题
- 问问关于struts2 + ajax + json+hibrenate的问题...
- 学习struts2建bbs总结五:使用jquery+ajax验证用户名是否存在以及struts效验信息不断重复的问题
- 关于struts2 验证框架在联网的时候可以用,不联网不起作用的问题
- 关于struts2 验证框架在联网的时候可以用,不联网不起作用的问题
- Struts2拦截器 关于解决登录的问题
- 关于ThinkPhp 框架表单验证及ajax验证问题
- 关于struts2验证框架,在与spring整合后重复输出错误信息的问题
- ThinkPHP+JQuery实现ajax无刷新登录验证(详解+相关问题)
- 关于struts2 验证框架在联网的时候可以用,不联网不起作用的问题
- struts2实现下载+登录权限验证以及中文处理乱码问题
- struts2 + ajax 用户名登录验证(struts2+spring+ibatis)
- iOS中关于登录验证方面的问题的解决
- 登录时第一次输入验证码显示验证码错误。出现的问题:验证码ajax验证时 后台取不到session的值
- 关于struts2 验证框架在联网的时候可以用,不联网不起作用的问题
- 关于PHP session登录验证的一个安全问题
- 注意记录Struts2关于值栈的理解,解决重复用户登录的问题
- Extjs与struts2整合,ajax请求登录验证
- struts2 + ajax 用户名登录验证(struts2+spring+ibatis)
- 关于struts2 与Ajax整合的版本问题之模型驱动,属性驱动