栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Json、Ajax以及EL表达式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Json、Ajax以及EL表达式

Json和Ajax Js中使用Json
  • JSON 对象和字符串对象的互转

JSON.stringify( json ); 此方法可以把一个 json 对象转换成为 json 字符串。

JSON.parse( jsonString ); 此方法可以把一个 json 字符串转换成为 json 对象。


Java中使用Json Java对象和Json的转换
// json 操作,一定要先 new 一个 gson 对象。 
Gson gson = new Gson(); 
// java 对象--json 
Person person = new Person(12, "wzg168"); 
// 把对象转成为 json 字符串 
String personjson = gson.toJson(person);

// 把 json 字符串转换成为 java 对象 
Person p = gson.fromJson(personjson, Person.class);
Java对象 list 集合和Json的转换
// 2、java 对象 list 集合和 json 的转换 
List list = new ArrayList(); 
for (int i = 0; i < 3; i++) { 
list.add(new Person(10 * i, "name-" + i)); 
}
String jsonListString = gson.toJson(list);

// 把 json 数组转换成为 List 对象 
// List ps = gson.fromJson(jsonListString, new PersonType().getType()); 
// 我们也可以使用匿名内部类 
List ps = gson.fromJson(jsonListString, new TypeToken>() { 
}.getType());
Map对象和Json的转换
// 3、map 对象和 json 的转换 
Map mapPerson = new HashMap(); 
// 添加 person 到 map 中 
mapPerson.put("p1", new Person(1, "person-1")); 
mapPerson.put("p2", new Person(2, "person-2")); 
// 把 map 转换成为 json 对象 
String jsonMapString = gson.toJson(mapPerson); 

// 通过使用匿名内部类的方式 
Map map = gson.fromJson(jsonMapString, new TypeToken>() {}
.getType()); 

Ajax(基本异步)
  • javaScript 原生 Ajax 请求

原生的 Ajax 请求,

1、我们首先要创建 XMLHttpRequest 对象

2、调用 open 方法设置请求参数

3、调用 send 方法发送请求

4、在 send 方法前绑定 onreadystatechange 事件,处理请求完成后的操作。


JQuery 的 Ajax 请求

$("#ajaxBtn").click(function(){ 
    $.ajax({ 
        url : "ajaxServlet", // 请求地址 
        error : function(){ // 请求失败回调 
            alert("请求失败"); 
        },
        success : function(data){ // 请求成功回调 
            alert( data ); 
            var jsonObj = JSON.parse(data);  // 数据类型若是json则直接data
            $("#msg").html("编号: "+jsonObj.id+" 姓名: "+jsonObj.name);
        },
        type : "POST", // 请求的方式 
        dataType:"json", // 返回的数据类型为 json 对象 
        data : { // 请求的参数 
            action:"jqueryAjax", 
            a:12, 
            date: new Date()} 
    }); 
});

// ajax--get 请求 
$("#getBtn").click(function(){ 
    $.get( "ajaxServlet", { action:"jqueryGet", a:12, date:new Date()},
    function(data){alert(data);},"json" ); 
}); 
// ajax--post 请求 
$("#postBtn").click(function(){ 
    $.post( "ajaxServlet", // 请求路径 
        {action:"jqueryPost", a:12, date:new Date()},// 请求参数 
        function(data){ alert( data ) }, // 成功的回调函数 
        "text" // 返回的数据类型 
    ); 
}); 

// ajax--getJson 请求 
$("#getJsonBtn").click(function(){ // 调用 
    $.getJSON( "ajaxServlet", // 请求路径 
        {action:"jqueryGetJSON", a:12, date:new Date()}, // 请求参数 
        function(data){ alert( data ) } // 成功的回调函数 
    ); 
}); 

表单的序列化

serialize() 方法可以把一个 form 表单中所有的表单项。都以字符串 name

=value&name=value 的形式进行拼接,省去我们很多不必要的工作。

// ajax 请求 
$("#submit").click(function(){ 
    // 把参数序列化 
    var data = $("#form01").serialize(); 
    alert(data);
    });
});

EL表达式和JSTL标签库 EL表达式

作用: EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。

EL 表达式的格式是:${表达式}

当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出。pageContext==> request ==> session ==> application。

 
<% request.setAttribute("key","值"); %>
表达式脚本输出 key 的值是: <%=request.getAttribute("key1")==null?"":request.getAttribute("key1")%>
EL 表达式输出 key 的值是:${key1}

输出服务器返回的JavaBean

输出 Person:${ p }
输出 Person 的 name 属性:${p.name}
输出 Person 的 pnones 数组属性值:${p.phones[2]}
输出 Person 的 cities 集合中的元素值:${p.cities}
输出 Person 的 List 集合中个别元素值:${p.cities[2]}
输出 Person 的 Map 集合: ${p.map}
输出 Person 的 Map 集合中某个 key 的值: ${p.map.key3}
输出 Person 的 age 属性:${p.age}
EL 表达式——运算
  • empty 运算

empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。

以下几种情况为空:

1、值为 null 值的时候,为空

2、值为空串的时候,为空

3、值是 Object 类型数组,长度为零的时候

4、list 集合,元素个数为零

5、map 集合,元素个数为零

${ empty key的名称 } 
${ empty emptyStr }
${ empty emptyArr }
${ empty emptyList }
  • “.”点运算 和 [] 中括号运算符

. 点运算,可以输出 Bean 对象中某个属性的值。

[]中括号运算,可以输出有序集合中某个元素的值。

并且[]中括号运算,还可以输出 map 集合中 key 里含有特殊字符的 key 的值。

pageContext 对象的使用
<%-- 
request.getScheme() 它可以获取请求的协议 
request.getServerName() 获取请求的服务器 ip 或域名 
request.getServerPort() 获取请求的服务器端口号 
request.getContextPath() 获取当前工程路径 
request.getMethod() 获取请求的方式(GET 或 POST) 
request.getRemoteHost() 获取客户端的 ip 地址 
session.getId() 获取会话的唯一标识 
--%> 
<% pageContext.setAttribute("req", request); %>
1.协议: ${ req.scheme }  
2.服务器 ip:${ pageContext.request.serverName }
3.服务器端口:${ pageContext.request.serverPort }
4.获取工程路径:${ pageContext.request.contextPath }
5.获取请求方法:${ pageContext.request.method }
6.获取客户端 ip 地址:${ pageContext.request.remoteHost }
7.获取会话的 id 编号:${ pageContext.session.id }
EL 表达式其他隐含对象的使用

param Map 它可以获取请求参数的值

paramValues Map 它也可以获取请求参数的值,获取多个值的时候使用。

输出请求参数 username 的值:${ param.username } 
输出请求参数 password 的值:${ param. password }
输出请求参数 username 的值:${ paramValues.username[0] }
输出请求参数 hobby 的值:${ paramValues.hobby[0] }
输出请求参数 hobby 的值:${ paramValues.hobby[1] }

header Map 它可以获取请求头的信息

headerValues Map 它可以获取请求头的信息,它可以获取多个值的情况。

输出请求头【User-Agent】的值:${ header['User-Agent'] } 
输出请求头【Connection】的值:${ header.Connection }
输出请求头【User-Agent】的值:${ headerValues['User-Agent'][0] }

cookie Map 它可以获取当前请求的 Cookie 信息。

获取 Cookie 的名称:${ cookie.JSESSIONID.name } 
获取 Cookie 的值:${ cookie.JSESSIONID.value }

JSTL标签库

// 遍历对象
 
    ${ item } 
// 遍历 Map 集合

${entry.key} = ${entry.value}

// 前端常规用法 <%--items 表示遍历的集合 var 表示遍历到的数据 begin 表示遍历的开始索引值 end 表示结束的索引值 step 属性表示遍历的步长值 varStatus 属性表示当前遍历到的数据的状态 for(int i = 1; i < 10; i+=2) --%>
编号 用户名 密码 年龄 电话 操作
${stu.id} ${stu.username} ${stu.password} ${stu.age} ${stu.phone} ${status.step}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/966530.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号