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 相关文章推荐
php上传图片并给图片打上透明水印的代码
Jun 07 Javascript
JS字符串处理实例代码
Aug 05 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
Aug 06 Javascript
jquery使整个div区域可以点击的方法
Jun 24 Javascript
JS实现文档加载完成后执行代码
Jul 09 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
Nov 25 Javascript
javascript中call apply 与 bind方法详解
Mar 10 Javascript
微信小程序  checkbox组件详解及简单实例
Jan 10 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
Feb 06 Javascript
vue 弹框产生的滚动穿透问题的解决
Sep 21 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
Dec 17 Javascript
mapboxgl实现带箭头轨迹线的代码
Jan 04 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
微信支付开发订单查询实例
2016/07/12 PHP
highchart数据源纵轴json内的值必须是int(详解)
2017/02/20 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
浅谈javascript六种数据类型以及特殊注意点
2013/12/20 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
Python模块学习 re 正则表达式
2011/05/19 Python
Python3.5局部变量与全局变量作用域实例分析
2019/04/30 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
Python根据服务获取端口号的方法
2019/09/25 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
Python截图并保存的具体实例
2021/01/14 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
canvas绘制太极图的实现示例
2020/04/29 HTML / CSS
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
高级3D打印市场:Gambody
2019/12/26 全球购物
后备干部考察材料
2014/02/12 职场文书
2014年三万活动总结
2014/04/26 职场文书
合作协议书范文
2014/08/20 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
2019年教师入党申请书
2019/06/27 职场文书