加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

二级菜单联动 ajax+json

发布时间:2020-12-16 19:23:21 所属栏目:百科 来源:网络整理
导读:Web 应用目录: 具体的代码如下: AjaxJSON.java package AjaxJson; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import net.sf.json.JSONArray; import javax.servlet.ServletException;

Web应用目录:

具体的代码如下:

AjaxJSON.java

package AjaxJson;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.ArrayList;

import java.util.List;

import net.sf.json.JSONArray;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class AjaxJSON extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = 1L;

/**

* The doGet method of the servlet. <br>

*

* This method is called when a form has its tag value method equals to get.

*

* @param request the request send by the client to the server

* @param response the response send by the server to the client

* @throws ServletException if an error occurred

* @throws IOException if an error occurred

*/

public void doGet(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException {

this.doPost(request,response);

}

/**

* The doPost method of the servlet. <br>

*

* This method is called when a form has its tag value method equals to post.

*

* @param request the request send by the client to the server

* @param response the response send by the server to the client

* @throws ServletException if an error occurred

* @throws IOException if an error occurred

*/

public void doPost(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException {

response.setContentType("text/html;charset=utf-8");

String province =new String(request.getParameter("province").getBytes("ISO-8859-1"),"UTF-8") ;

System.out.println("后台中的参数省份是:"+province);

List<City> cities = new ArrayList<City>();

JSONArray jsonArray = null; //需要带入Json-lib包;

if ("广东省".equals(province)) {

City city1 = new City(1,"广州");

City city2 = new City(1,"深圳");

City city3 = new City(1,"珠海");

City city4 = new City(1,"佛山");

cities.add(city1);

cities.add(city2);

cities.add(city3);

cities.add(city4);

// java对象转换为json字符串

jsonArray = JSONArray.fromObject(cities);

}

if("海南省".equals(province))

{

City city1 = new City(1,"海口");

City city2 = new City(1,"三亚");

cities.add(city1);

cities.add(city2);

jsonArray = JSONArray.fromObject(cities);

}

PrintWriter pw = response.getWriter();

pw.write(jsonArray.toString());

System.out.println(jsonArray.toString());

}

}

City.java

package AjaxJson;

publicclass City {

private Integer id;

private String name;

public City(Integer id,String name) {

super();

this.id = id;

this.name = name;

}

public Integer getId() {

returnid;

}

publicvoid setId(Integer id) {

this.id = id;

}

public String getName() {

returnname;

}

publicvoid setName(String name) {

this.name = name;

}

}

Ajax_json.jsp

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

pageEncoding="UTF-8"%>

<!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>Insert title here</title>

</head>

<body>

<select id="provinceID">

<option>选择省份</option>

<option>广东省</option>

<option>海南省</option>

</select>

<select id="cityID">

<option>选择城市</option>

</select>

<script type="text/javascript">

document.getElementById("provinceID").onchange=function()

{

var province = this[this.selectedIndex].innerHTML;

alert("*****************province="+province);

var cityElement = document.getElementById("cityID");

//删除多余的城市,从最后一个开始删除

var size = cityElement.options.length;

if(size>1)

{

for(var i = size-1;i>0;i--)

{

cityElement.removeChild(cityElement.options[i]);

}

}

//加载XMLHttpRequest对象

var xhr = createXHR();

xhr.onreadystatechange=function()

{

if(xhr.readyState==4)

{

if(xhr.status==200)

{

//AJAX引擎读取服务端的信息

var xmlDocument = xhr.responseText;

//Java语言的String类型转换JavaScriptstring类型

var json = eval(xmlDocument);

size = json.length;

for(var i = 0;i<size;i++)

{

//得到每个城市的名称

var city = json[i].name;

var optionElement = document.createElement("option");

optionElement.innerHTML= city;

cityElement.appendChild(optionElement);

}

}

}

}

var method = "POST";

var sendData="province="+province;

var url = "${pageContext.request.contextPath}/AjaxJSON?time="+new Date().getTime();

alert("url="+url);

xhr.open(method,url);

xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");

xhr.send(sendData);

}

//创建XMLHttpRequest

function createXHR()

{

var xhr=null;

try{

//ie6

xhr = new ActiveXObject(microsoft.xmlhttp);

}catch(e)

{

//其他浏览器

xhr = new XMLHttpRequest();

}

return xhr;

}

</script>

</body>

</html>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读