Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值_jquery
ajax
java
jquery
servlet
下拉菜单
首先来看工程结构图:
项目所需要的包,如下所示:
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("当前测试页面完成加载。<br/>"); }); function getFirstFloorValue(element) { $("#record").append("<br/>获取到信息:您将要取得第一级选项信息……"); $("#record").append("<br/>正在使用ajax为您获取数据,您可以继续停留在页面并进行其他操作。"); $.ajax({ url : 'ValueGetController', type : 'post', data : 'action=GetFirstFloorValue', datatype : 'json', success : function(data) { $("#record").append("<br/>操作成功,正在为您准备数据……"); $(element).empty(); $("#record").append("<br/>清除原始数据成功!"); var ops = $.parseJSON(data); $("#record").append("<br/>即时数据准备成功!"); 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">点击取值</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; } }
登录后复制
关于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>
登录后复制
以上就是本文的全部内容,希望对大家的学习有所帮助。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保护它?
3 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Java 8引入了Stream API,提供了一种强大且表达力丰富的处理数据集合的方式。然而,使用Stream时,一个常见问题是:如何从forEach操作中中断或返回? 传统循环允许提前中断或返回,但Stream的forEach方法并不直接支持这种方式。本文将解释原因,并探讨在Stream处理系统中实现提前终止的替代方法。 延伸阅读: Java Stream API改进 理解Stream forEach forEach方法是一个终端操作,它对Stream中的每个元素执行一个操作。它的设计意图是处
