`
zengshaotao
  • 浏览: 787552 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts 2+Jquery+JSON 登陆验证

 
阅读更多

要Struts2支持JSON,需要加进一个叫jsonplugin的插件,配置文件里让Struts2的package继承一个叫“json-default”的package。配置完毕之后,服务端与客户端之间的数据传递就可以使用同一的json格式,显得比较人性化。

 

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<!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=UTF-8">

<title>登录页</title>

<script type="text/javascript" src="js/jquery.js"></script>

<script type="text/javascript">

    $(function(){

        $("#submit").click(function(){

            var loginName1 = $("input[name='loginName']").val();    //获取账号

            var password1 = $("input[name='password']").val();        //获取密码

 

            var jsonUser = {loginName:loginName1, password:password1};    //JSON对象

            //jsonUser.toString()这种方法错误,javaScript中的toString是用于布尔型变的,

            var strUser = JSON.stringify(jsonUser);    //JSON对象转变成JSON格式的字符串,

           

            $.post("user/login.action", {json: strUser}, callback, "json");

        });

 

        function callback(json){

            alert(json.msg);    //显示反馈信息

            if(json.success == 1){    //如果返回"登录成功"

                window.location.href = "admin/index.action";    //跳转到后台主页

            }

        }

       

    });

</script>

</head>

<body>

 

<form action="user/login.action" method="post">

    账号<input type="text" name="loginName"/><br/>

    密码<input type="password" name="password"><br/>

    <input type="button" id="submit" value="登录"/>

</form>

 

</body>

</html>

var jsonUser = {loginName:loginName1, password:password1};    (1)
var strUser = JSON.stringify(jsonUser);                                         (2)

第(1)句是组装JSON对象,关于JSON对象的格式,建议大家到http://www.json.org/网站上学习一下,要验证你写的JSON对象是否正确,可在http://json.bloople.net/网站上验证。上面写的JSON对象其实是非常简单的一种,jsonUser对象里有两个属性,分别是loginName和password,而表示这两个属性,用key-value的形式,loginName1和password1分别是接收表单中的账号、密码的值。

第(2)句,相当重要,通过JavaScript内置对象JSON的stringify方法,将JSON对象转换成字符串。因为,我们传送给服务器端的要是JSON格式的字符串。

$.post("login!valid.action", {json: strUser}, callback, "json");

这一句,Jquery用POST方法向服务器端发送数据,login!valid.action是我们要发送到的目的URI,也即直达loginAction的valid方法。而{…}是我们要发送的数据(data),{json:strUser},其实也是一个JSON对象,Key:value的形式。在Action那里接收时,要接收“json”这个变量,这个变量的值就是我们发送的strUser字符串。

回调函数(callback)是指服务器端成功发回时,在JS端执行的函数。最后一个参数“json”是返回数据类型的一种,另外,还有”text”、“xml”等。

 

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import org.json.JSONObject;

import cn.simple.pojo.User;

import com.opensymphony.xwork2.ActionSupport;

 

//@Results({ 注解的配制方式

//    @Result(name="success", location="admin/index.action", type="redirect"),

//    @Result(name="input", location="loginform.jsp", type="dispatcher")

//})

public class LoginAction extends ActionSupport {

 

    private String json;    //JSON字符串,JSAction传递数据的载体

    public String getJson() {

        return json;

    }

    public void setJson(String json) {

        this.json = json;

    }

 

    /** 

     * 登录验证

       * 这里是void类型,不会发生调整,直接像servlet那样输出html代码,最终由客户端解析

      * 调用原生Servlet的response来向浏览器端发送数据

     * @throws Exception

     */

    public void valid() throws Exception {

        JSONObject jsonObj = new JSONObject(json);    //JSON格式的字符串构造成JSON对象

        String loginName = jsonObj.getString("loginName"); //获取JSON对象中的loginName属性的值

        String password = jsonObj.getString("password");    //获取JSON对象中的password属性的值

       

        if(loginName=="admin"){

            //此时的JSON对象,有两个属性successmsg,其中suc表示是否登录成功的状态

            json = "{success:0, msg:'用户名不存在'}";    //构造JSON格式的字符串

        } else if( ! password.equals("123")){

            json = "{success:0, msg:'密码不正确!'}";

        } else {

            json = "{success:1, msg:'登录成功!'}";

        }

        sendMsg(json);    //发送JSON格式的字符串回JS

    }

   

    /** *//**

     * 向客户端的JS发送字符串

     * @param content 发送的内容

     * @throws IOException

     */

    public void sendMsg(String content) throws IOException{

        HttpServletResponse response = ServletActionContext.getResponse();

        response.setCharacterEncoding("UTF-8");

        response.getWriter().write(content);

    }

   

}

 

分享到:
评论

相关推荐

    struts2+spring+hibernate+jquery+json

    Struts2、Spring、Hibernate、jQuery 和 JSON 是五个在IT行业中极为重要的技术组件,它们各自在Web应用开发中扮演着不同的角色。这篇文章将详细介绍这些技术的整合使用以及它们的功能。 首先,Struts2 是一个基于 ...

    struts2+jquery+json+ajax例子

    Struts2、jQuery、JSON和Ajax是Web开发中常见的技术栈,它们共同为构建动态、...通过Struts2处理业务逻辑和数据验证,jQuery和Ajax负责前后端的通信,JSON作为数据交换的载体,共同构建了一个高效、响应式的Web应用。

    Struts2+JSON+JQuery实现简单的验证

    通过Struts2处理业务逻辑和验证,JSON作为数据交换格式,JQuery在客户端进行交互和验证,可以构建出响应快速、用户体验良好的Web应用。理解并熟练掌握这三个技术,对于提升Web开发能力非常有帮助。

    struts2+ajax+jquery

    Struts2提供了强大的拦截器(Interceptor)机制,可以实现如权限验证、日志记录等功能。同时,它支持多种结果类型,包括JSP、FreeMarker、Velocity等模板语言,以及JSON和XML等数据格式。 Ajax,即Asynchronous ...

    struts2+jquery+json 小例子

    在这个"struts2+jquery+json"的小例子中,我们可能会看到以下几个关键知识点: 1. **Struts2框架**: - **Action和Result**:Struts2的核心组件,Action负责业务逻辑处理,Result负责控制页面跳转。 - **...

    Struts2+Jquery+Ajax

    8. 实例演示:使用Struts2+Jquery+Ajax实现动态加载数据或表单验证 "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必...

    struts2+json+jquery局部刷新实现注册验证

    struts2+json+jquery局部刷新实现注册验证,包括前台的用户名、密码、手机、身份证、邮箱(包含发邮件技术)、邮箱验证码、验证码的验证,用到的是json+jquery,后台则是用struts2+java类

    ssh2+ajax+jquery+json 登陆验证

    根据提供的文件信息,本文将详细解析“ssh2+ajax+jquery+json 登陆验证”的实现原理及技术要点。本文将围绕SSH2框架、Ajax、jQuery和JSON这些技术展开讨论,并结合给定的部分内容来深入分析如何利用这些技术进行...

    SSH+jQuery+json 实现的Ajax操作,绝对精华,代码简练清晰,绝对能看明白

    2. **解析与渲染**:jQuery的`$.parseJSON()`(现在已弃用,推荐使用`$.getJSON()`或`$.ajax()`的dataType设置为'json')方法用于解析JSON字符串为JavaScript对象,然后可以在前端动态更新DOM。 **Ajax级联操作** ...

    flexigrid+struts2+json+jquery实例

    在这个实例中,Flexigrid与Struts2、JSON和jQuery进行了集成,构建了一个功能丰富的Web应用。 Struts2是Apache软件基金会的一个开源MVC框架,用于构建Java Web应用程序。它提供了强大的动作调度、拦截器机制以及...

    struts2+ibatis+Spring+Json+jquery

    在tests2si目录下,可能包含的是测试相关的文件,这些文件可能包括单元测试、集成测试,用于验证Struts2、Spring、iBatis以及jQuery的整合是否正常工作。测试文件通常会模拟用户操作,调用后端接口,检查返回的数据...

    struts2+easyUI+ajax+json用户登验证

    总结来说,"struts2+easyUI+ajax+json用户登录验证"项目是Web开发中的典型应用场景,展示了如何利用这些技术实现前后端交互和动态页面更新,为初学者理解Web开发的基本流程和原理提供了很好的实例。

    struts2.1.8+json+jquery1.3实现ajax

    总结起来,这个项目结合了Struts2的Action和JSON支持,利用jQuery的Ajax功能,实现了客户端与服务器之间的数据交互,达到了动态更新页面的目的。对于Web开发者来说,了解这种技术组合有助于提高开发效率和用户体验。

    Struts2+Jquery实现ajax并返回json类型数据

    在本教程中,我们将探讨如何结合使用Struts2和jQuery来实现一个使用Ajax发送请求并接收JSON类型数据的功能。 首先,我们需要在JSP页面中使用jQuery发起Ajax请求。jQuery的`$.ajax()`函数是实现这一功能的核心。例如...

    struts2.1+json+jquery用户名校验

    Struts2.1、JSON和jQuery是Web开发中常见的技术栈,它们在构建动态、交互式的用户界面方面发挥着重要作用。在这个"struts2.1+json+jquery用户名校验"项目中,我们重点关注的是如何利用这些技术进行前端与后端的数据...

    struts+jquery+json+ajax.pdf

    综上所述,这个例子展示了如何使用 Struts2 处理后端逻辑,通过 JSON 将数据传递给前端,然后利用 jQuery 和 AJAX 实现无刷新的交互体验。这种组合在现代 web 开发中非常常见,能够有效提升应用的性能和用户体验。

    struts2+jquery+ajax+servlet

    Struts2、jQuery、Ajax和Servlet是Web开发中常见的技术栈,它们共同构建了动态、交互式的用户界面。本文将详细解析这些技术及其在给定示例中的应用。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式...

    json + struts2 + 80个JQuery 效果 个例子

    总的来说,这个压缩包提供了一个全面的学习资源,帮助开发者深入理解并熟练运用JSON数据格式、Struts2框架和jQuery库。通过这些实例,你可以提高Web开发技能,尤其是处理动态交互和数据交换的能力。在实践中不断探索...

    ssh2+ajax+jquery+json验证用户名是否存在

    - 在Struts2框架中,配置一个名为`check`的Action,如`struts.xml`所示,这个Action负责处理前端的请求。 - Action类(如`checkBean`)应有一个`check`方法,该方法接收用户名参数,并查询数据库验证用户名是否已...

Global site tag (gtag.js) - Google Analytics