Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值

 更新时间:2016年03月23日 13:52:21   投稿:lijiao  
这篇文章主要介绍了Jquery+ajax+JAVA(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>

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关文章

  • 快速实现jQuery多级菜单效果

    快速实现jQuery多级菜单效果

    这篇文章主要教大家如何快速实现jQuery多级菜单效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • jQuery动态添加元素无法触发绑定事件的解决方法分析

    jQuery动态添加元素无法触发绑定事件的解决方法分析

    这篇文章主要介绍了jQuery动态添加元素无法触发绑定事件的解决方法,结合实例形式分析了动态添加元素无法绑定事件的原因与相关解决方法,需要的朋友可以参考下
    2018-01-01
  • 编写高效jQuery代码的4个原则和5个技巧

    编写高效jQuery代码的4个原则和5个技巧

    有了JQuery对JS的整合和封装,它让页面操作更加的随心所欲,所以只有遵循良好的规范才会让代码更高效,更健壮。以下是我对如何高效操作JQuery的一些拙见,望指正!
    2014-04-04
  • 基于jquery自定义图片热区效果

    基于jquery自定义图片热区效果

    前阵子接到个需求,联通网上营业厅经常需要专题页面做宣传,但是由于专题页面会有按钮,以及各个图片的链接,省分的人没有html基础,没人维护,量又比较大,需要开发出一个可自定义图片热区链接的后台,于是就有了这个
    2012-07-07
  • jQuery AjaxUpload 上传图片代码

    jQuery AjaxUpload 上传图片代码

    这篇文章主要介绍了jQuery AjaxUpload 上传图片代码的相关资料,需要的朋友可以参考下
    2016-02-02
  • jQuery实现图片切换效果

    jQuery实现图片切换效果

    这篇文章主要为大家详细介绍了jQuery实现图片切换效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • jQuery实现简单的列表式导航菜单效果代码

    jQuery实现简单的列表式导航菜单效果代码

    这篇文章主要介绍了jQuery实现简单的列表式导航菜单效果代码,涉及jquery操作鼠标事件及页面元素样式动态变换的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • 浅析jQuery的链式调用之each函数

    浅析jQuery的链式调用之each函数

    如果对于jquery的$()包装器函数还不是很清楚,请先参阅我的上一篇日志:浅析jQuery的链式调用
    2010-12-12
  • jQuery 3 中的新增功能汇总介绍

    jQuery 3 中的新增功能汇总介绍

    本文带你了解了一遍 jQuery 3 将会带来的一些重大变化。或许你已经注意到了,这个版本是可能对你现有的项目产生太大的影响,因为没有引入太多许多重大更改。
    2016-06-06
  • jQuery Mobile框架中的表单组件基础使用教程

    jQuery Mobile框架中的表单组件基础使用教程

    jQuery Mobile框架主要针对移动端的Web UI设计,其中丰富的表单组件调用起来也是相当方便,接下来就为大家整理了一份jQuery Mobile框架中的表单组件基础使用教程,需要的朋友可以参考下
    2016-05-05

最新评论