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


Posted in Javascript onMarch 23, 2016

首先来看工程结构图:

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

项目所需要的包,如下所示:

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>

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

Javascript 相关文章推荐
JS 巧妙获取剪贴板数据 Excel数据的粘贴
Jul 09 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
Apr 07 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
Nov 21 Javascript
javascript弹出窗口中增加确定取消按钮
Jun 24 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
Jul 11 Javascript
用js实现简单算法的实例代码
Sep 24 Javascript
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
jquery ajaxfileupload异步上传插件
Nov 21 jQuery
JavaScript学习笔记之图片库案例分析
Jan 08 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
Nov 06 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
Mar 05 Javascript
JS如何监听div的resize事件详解
Dec 03 Javascript
JavaScript弹出对话框的三种方式
Mar 23 #Javascript
JS随机洗牌算法之数组随机排序
Mar 23 #Javascript
JavaScript学习笔记之取数组中最大值和最小值
Mar 23 #Javascript
JavaScript学习笔记之数组去重
Mar 23 #Javascript
JavaScript学习笔记之数组随机排序
Mar 23 #Javascript
JavaScript学习笔记之数组求和方法
Mar 23 #Javascript
JavaScript学习笔记之数组的增、删、改、查
Mar 23 #Javascript
You might like
php 删除无限级目录与文件代码共享
2008/11/22 PHP
PHP转换IP地址到真实地址的方法详解
2013/06/09 PHP
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
javascript RadioButtonList获取选中值
2009/04/09 Javascript
EXT中xtype的含义分析
2010/01/07 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
2016/12/23 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
任意存:BOXFUL
2018/05/21 全球购物
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
中年人生感言
2014/02/04 职场文书
教师考核评语
2014/04/28 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
信用卡催款律师函
2015/05/27 职场文书
社区志愿服务活动感想
2015/08/07 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python