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 相关文章推荐
改进:论坛UBB代码自动插入方式
Dec 22 Javascript
网页和浏览器兼容性问题汇总(draft1)
Jun 01 Javascript
理解javascript正则表达式
Mar 08 Javascript
Node.js包管理器Yarn的入门介绍与安装
Oct 17 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
Feb 05 Javascript
JavaScript简单实现合并两个Json对象的方法示例
Oct 16 Javascript
基于Require.js使用方法(总结)
Oct 26 Javascript
微信小程序自定义底部弹出框
Nov 16 Javascript
Vue传参一箩筐(页面、组件)
Apr 04 Javascript
js图片查看器插件用法示例
Jun 22 Javascript
浅谈小程序globalData的那些事儿
Nov 01 Javascript
vue-socket.io接收不到数据问题的解决方法
May 13 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
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
2015/10/15 PHP
XML的代替者----JSON
2007/07/21 Javascript
javascript import css实例代码
2008/07/18 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
基于html5和nodejs相结合实现websocket即使通讯
2015/11/19 NodeJs
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
2018/04/17 jQuery
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
用map函数来完成Python并行任务的简单示例
2015/04/02 Python
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
Python 实现域名解析为ip的方法
2019/02/14 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
本科生职业生涯规划书范文
2014/01/21 职场文书
合伙购房协议样本
2014/10/06 职场文书
协议书范文
2015/01/27 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
文员岗位职责范本
2015/04/16 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android