Jquery+ajax+JAVA(servlet)實(shí)現(xiàn)下拉菜單異步取值
首先來(lái)看工程結(jié)構(gòu)圖:

項(xiàng)目所需要的包,如下所示:

JSP代碼:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
System.out.println("basePath="+basePath);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>JsonCase</title>
<script type="text/javascript" src="<%=basePath %>js/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(function($) {
$("#record").append("當(dāng)前測(cè)試頁(yè)面完成加載。<br/>");
});
function getFirstFloorValue(element) {
$("#record").append("<br/>獲取到信息:您將要取得第一級(jí)選項(xiàng)信息……");
$("#record").append("<br/>正在使用ajax為您獲取數(shù)據(jù),您可以繼續(xù)停留在頁(yè)面并進(jìn)行其他操作。");
$.ajax({
url : 'ValueGetController',
type : 'post',
data : 'action=GetFirstFloorValue',
datatype : 'json',
success : function(data) {
$("#record").append("<br/>操作成功,正在為您準(zhǔn)備數(shù)據(jù)……");
$(element).empty();
$("#record").append("<br/>清除原始數(shù)據(jù)成功!");
var ops = $.parseJSON(data);
$("#record").append("<br/>即時(shí)數(shù)據(jù)準(zhǔn)備成功!");
for ( var i = 0; i < ops.length; i++)
$(element).append(
"<option value=\"" + ops[i] + "\">" + ops[i]
+ "</option>");
$("#record").append("<br/>更新列表成功!<br/>");
}
});
}
</script>
</head>
<body>
<div>
<select id="select1" onfocus=getFirstFloorValue(this)>
<option value="1">點(diǎn)擊取值</option>
</select>
</div>
<dir>
<h3>記錄信息:</h3>
<span id="record"></span>
</dir>
</body>
</html>
JAVA servlet代碼:
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
public class ValueGetController extends HttpServlet {
private static final long serialVersionUID = -1293610555518403602L;
/**
* Constructor of the object.
*/
public ValueGetController() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* 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 {
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 {
request.setCharacterEncoding("GBK");
response.setContentType("text/html;charset=gbk");
PrintWriter out = response.getWriter();
String action = request.getParameter("action");
System.out.println("action"+action);
if (action.equals("GetFirstFloorValue")) {
String[] str = GetFirstFloorValue();
JSONArray ja = JSONArray.fromObject(str);
String json = ja.toString();
out.print(json);
System.out.println(json);
out.flush();
out.close();
return;
}
out.flush();
out.close();
}
private String[] GetFirstFloorValue() {
String[] str = new String[4];
str[0] = "test1";
str[1] = "test2";
str[2] = "test3";
str[3] = "test4";
return str;
}
}
關(guān)于servlet的web.xml配置:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>ValueGetController</servlet-name> <servlet-class>servlet.ValueGetController</servlet-class> </servlet> <servlet-mapping> <servlet-name>ValueGetController</servlet-name> <url-pattern>/ValueGetController</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
- java 實(shí)現(xiàn)讀取txt文本數(shù)據(jù)并以數(shù)組形式一行一行取值
- java的JsonObject對(duì)象提取值方法
- Java遍歷json字符串取值的實(shí)例
- java 中遍歷取值異常(Hashtable Enumerator)解決辦法
- java json字符串轉(zhuǎn)JSONObject和JSONArray以及取值的實(shí)例
- java反射遍歷實(shí)體類屬性和類型,并賦值和獲取值的簡(jiǎn)單方法
- java 數(shù)據(jù)類型有哪些取值范圍多少
- Java中常見(jiàn)的日期操作(取值、轉(zhuǎn)換、加減、比較)
- 實(shí)現(xiàn)Java線程的取值并返回的方法
相關(guān)文章
ligerUI的ligerDialog關(guān)閉刷新的方法
今天小編就為大家分享一篇ligerUI的ligerDialog關(guān)閉刷新的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
jquery簡(jiǎn)單實(shí)現(xiàn)外部鏈接用新窗口打開(kāi)的方法
這篇文章主要介紹了jquery簡(jiǎn)單實(shí)現(xiàn)外部鏈接用新窗口打開(kāi)的方法,涉及jQuery正則匹配http://開(kāi)頭外部鏈接網(wǎng)址的相關(guān)技巧,需要的朋友可以參考下2015-05-05
PHP+MySQL+jQuery隨意拖動(dòng)層并即時(shí)保存拖動(dòng)位置實(shí)例講解
這篇文章主要介紹了PHP+MySQL+jQuery隨意拖動(dòng)層并即時(shí)保存拖動(dòng)位置的實(shí)現(xiàn)方法,感興趣的小伙伴們可以參考一下2015-10-10
jQuery插件FusionCharts繪制的2D雙面積圖效果示例【附demo源碼】
這篇文章主要介紹了jQuery插件FusionCharts繪制的2D雙面積圖效果,結(jié)合實(shí)例形式分析了jQuery使用插件FusionCharts結(jié)合xml格式數(shù)據(jù)繪制2D雙面積圖的具體步驟與相關(guān)操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-04-04
JQuery擴(kuò)展插件Validate 2通過(guò)參數(shù)設(shè)置驗(yàn)證規(guī)則
在前面示例中使用的的方法簡(jiǎn)單方便,但沒(méi)有完全將js與頁(yè)面結(jié)構(gòu)完全分離,也就是說(shuō)js依賴了class,下面通過(guò)validate()方法的參數(shù)設(shè)置驗(yàn)證規(guī)則將js與頁(yè)面結(jié)構(gòu)完全分離2011-09-09
jQuery實(shí)現(xiàn)判斷滾動(dòng)條到底部
這篇文章主要介紹了jQuery實(shí)現(xiàn)判斷滾動(dòng)條到底部的相關(guān)資料,需要的朋友可以參考下2015-06-06

