JavaWeb-JSON、AJAX和i18n
迪丽瓦拉
2025-05-31 03:38:53
0

JSON

JSON是一种轻量级(与xml相比)的数据交换格式(客户端和服务器之间业务数据的传递格式),易于人阅读和编写,同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,而且很多语言都提供了对JSON的支持,使得JSON成为理想的数据交换格式。

JSON在JavaScript中的使用

JSON是由键值对组成,并且有花括号{}包围,每一个键由引号引起来,键和值之间使用冒号进行分隔,多组键值对之间使用逗号进行分隔。



Insert title here


JSON在Java中的使用

①JavaBean和JSON的互相转换

②List和JSON的互相转换

③Map和JSON的互相转换

package com.pero.pojo;public class Person {private Integer id;private String name;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Person(Integer id, String name) {this.id = id;this.name = name;}public Person() {}@Overridepublic String toString() {return "Person{" +"id=" + id +", name='" + name + '\'' +'}';}
}
package com.pero.json;import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.pero.pojo.Person;
import org.junit.Test;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class JsonTest {/*** JavaBean和Json的互相转换*/@Testpublic void test1(){Person person = new Person(2115886, "pero");//创建Gson对象实例Gson gson = new Gson();//toJson方法可以把java对象转换成为Json字符串String personJsonString = gson.toJson(person);System.out.println(personJsonString);/*fromJson把json字符串转换为java对象第一个参数是json字符串第二个参数是转换回去的Java对象类型*/Person person1 = gson.fromJson(personJsonString, Person.class);System.out.println(person1);}/*** List和Json的互相转换*/@Testpublic void test2(){List personList = new ArrayList<>();personList.add(new Person(6688668,"pero"));personList.add(new Person(8866886,"root"));Gson gson = new Gson();String personJsonString = gson.toJson(personList);System.out.println(personJsonString);//List list = gson.fromJson(personJsonString,new PersonListType().getType());List list = gson.fromJson(personJsonString,new TypeToken>(){}.getType());Person person = list.get(0);System.out.println(person);}/*** Map和Json的互相转换*/@Testpublic void test3(){Map personMap = new HashMap<>();personMap.put(1,new Person(6688886,"root"));personMap.put(2,new Person(8866688,"pero"));Gson gson = new Gson();String personMapJsonString = gson.toJson(personMap);System.out.println(personMapJsonString);//        Map personMap1= gson.fromJson(personMapJsonString, new PersonMapType().getType());Map personMap1= gson.fromJson(personMapJsonString,new TypeToken>(){}.getType());Person person = personMap1.get(1);System.out.println(person);}
}
package com.pero.json;import com.google.gson.reflect.TypeToken;
import com.pero.pojo.Person;import java.util.ArrayList;public class PersonListType extends TypeToken> {
}
package com.pero.json;import com.google.gson.reflect.TypeToken;
import com.pero.pojo.Person;import java.util.HashMap;public class PersonMapType extends TypeToken> {
}

AJAX

AJAX全称为“Asynchronous Javascript And XML”即异步JavaScript和XML,是指一种创建交互式网页应用的网页开发技术。AJAX是一种浏览器通过JavaScript异步发起请求,局部更新页面的技术。

原生JavaScript的AJAX请求示例

AJAX请求的局部更新浏览器中地址栏不会发生变化,局部更新不会舍弃原来界面的内容,异步发起请求提高浏览器界面的用户体验,在用户使用浏览器界面中的内容时,交互请求不会等到收到服务器响应后才做反应,每个交互都是不同步的。

package com.pero.servlet;import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.lang.reflect.Method;public abstract class BaseServlet extends HttpServlet {protected void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");String action = request.getParameter("action");try {Method method = this.getClass().getDeclaredMethod(action, HttpServletRequest.class, HttpServletResponse.class);method.invoke(this,request,response);} catch (Exception e) {throw new RuntimeException(e);}}
}
package com.pero.servlet;import com.google.gson.Gson;
import com.pero.pojo.Person;
import jakarta.servlet.*;
import jakarta.servlet.http.*;import java.io.IOException;public class AjaxServlet extends BaseServlet {protected void javaScriptAjax(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("ajax请求");Person person = new Person(5666868,"pero");Gson gson = new Gson();String personJsonString = gson.toJson(person);response.getWriter().write(personJsonString);}}


Insert title here




AjaxServletcom.pero.servlet.AjaxServletAjaxServlet/ajaxServlet

jQuery的AJAX方法

$.ajax方法

url:表示请求的地址;

type:表示请求的类型GET或POST;

data:表示发送给服务器的数据,格式有两种:①key=value&key=value②{key:value}

success:请求成功,响应的回调函数;

dataType:响应的数据类型。常用的数据类型有text(表示纯文本)、xml(xml数据)、json(json对象)

jQuery的GET和POST方法

$.get方法和$.post方法

url:请求的url地址

data:发送的数据

callback:成功的回调函数

type:返回的数据类型

jQuery的getJSON方法

$.getJSON方法

url:请求的url地址

data:发送的数据

callback:成功的回调函数

package com.pero.servlet;import com.google.gson.Gson;
import com.pero.pojo.Person;
import jakarta.servlet.*;
import jakarta.servlet.http.*;import java.io.IOException;public class AjaxServlet extends BaseServlet {protected void javaScriptAjax(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("ajax请求");Person person = new Person(5666868,"pero");Gson gson = new Gson();String personJsonString = gson.toJson(person);response.getWriter().write(personJsonString);}protected void jQueryAjax(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("jQueryAjax请求");Person person = new Person(5666868,"pero");Gson gson = new Gson();String personJsonString = gson.toJson(person);response.getWriter().write(personJsonString);}protected void jQueryGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("jQueryGet请求");Person person = new Person(5666868,"pero");Gson gson = new Gson();String personJsonString = gson.toJson(person);response.getWriter().write(personJsonString);}protected void jQueryPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("jQueryPost请求");Person person = new Person(5666868,"pero");Gson gson = new Gson();String personJsonString = gson.toJson(person);response.getWriter().write(personJsonString);}protected void jQueryGetJSON(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("jQueryGetJSON请求");Person person = new Person(5666868,"pero");Gson gson = new Gson();String personJsonString = gson.toJson(person);response.getWriter().write(personJsonString);}
}


Insert title here


jQuery的serialize方法

package com.pero.servlet;import com.google.gson.Gson;
import com.pero.pojo.Person;
import jakarta.servlet.*;
import jakarta.servlet.http.*;import java.io.IOException;public class AjaxServlet extends BaseServlet {...protected void jQuerySerialize(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("jQuerySerialize请求");String username = request.getParameter("username");String password = request.getParameter("password");System.out.println("用户名:" + username);System.out.println("密码:" + password);Person person = new Person(6688666, username);Gson gson = new Gson();String personJsonString = gson.toJson(person);response.getWriter().write(personJsonString);}
}


Insert title here



用户名:
密码:
下拉单选:
下拉多选:
复选:check1check2
单选:radio1radio2

相关内容