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)文章
快速實(shí)現(xiàn)jQuery多級(jí)菜單效果
這篇文章主要教大家如何快速實(shí)現(xiàn)jQuery多級(jí)菜單效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02jQuery動(dòng)態(tài)添加元素?zé)o法觸發(fā)綁定事件的解決方法分析
這篇文章主要介紹了jQuery動(dòng)態(tài)添加元素?zé)o法觸發(fā)綁定事件的解決方法,結(jié)合實(shí)例形式分析了動(dòng)態(tài)添加元素?zé)o法綁定事件的原因與相關(guān)解決方法,需要的朋友可以參考下2018-01-01編寫(xiě)高效jQuery代碼的4個(gè)原則和5個(gè)技巧
有了JQuery對(duì)JS的整合和封裝,它讓頁(yè)面操作更加的隨心所欲,所以只有遵循良好的規(guī)范才會(huì)讓代碼更高效,更健壯。以下是我對(duì)如何高效操作JQuery的一些拙見(jiàn),望指正!2014-04-04jQuery實(shí)現(xiàn)簡(jiǎn)單的列表式導(dǎo)航菜單效果代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)簡(jiǎn)單的列表式導(dǎo)航菜單效果代碼,涉及jquery操作鼠標(biāo)事件及頁(yè)面元素樣式動(dòng)態(tài)變換的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08淺析jQuery的鏈?zhǔn)秸{(diào)用之each函數(shù)
如果對(duì)于jquery的$()包裝器函數(shù)還不是很清楚,請(qǐng)先參閱我的上一篇日志:淺析jQuery的鏈?zhǔn)秸{(diào)用2010-12-12jQuery Mobile框架中的表單組件基礎(chǔ)使用教程
jQuery Mobile框架主要針對(duì)移動(dòng)端的Web UI設(shè)計(jì),其中豐富的表單組件調(diào)用起來(lái)也是相當(dāng)方便,接下來(lái)就為大家整理了一份jQuery Mobile框架中的表單組件基礎(chǔ)使用教程,需要的朋友可以參考下2016-05-05