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 相关文章推荐
JavaScript 学习笔记(四)
Dec 31 Javascript
基于jquery的bankInput银行卡账号格式化
Aug 22 Javascript
JS实现程序暂停与继续功能代码解读
Oct 10 Javascript
jquery制作弹窗提示窗口代码分享
Mar 02 Javascript
js实现点击添加一个input节点
Dec 05 Javascript
自己动手写的javascript前端等待控件
Oct 30 Javascript
javascript中字体浮动效果的简单实例演示
Nov 18 Javascript
Node.js程序中的本地文件操作用法小结
Mar 06 Javascript
AngularJS入门教程之多视图切换用法示例
Nov 02 Javascript
Vue.JS入门教程之列表渲染
Dec 01 Javascript
详解数组Array.sort()排序的方法
May 09 Javascript
Angular中实现树形结构视图实例代码
May 05 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 ajax 分页类代码
2008/11/13 PHP
php实现购物车功能(上)
2020/07/23 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
php快速导入大量数据的实例方法
2019/09/23 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
jQuery插件制作之参数用法实例分析
2015/06/01 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
Python hashlib模块用法实例分析
2018/06/12 Python
解决python中使用PYQT时中文乱码问题
2019/06/17 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
Python简易版停车管理系统
2019/08/12 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
数据库的约束含义
2012/09/09 面试题
销售主管的自我评价分享
2014/01/03 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
2014年党建工作总结
2014/11/11 职场文书
浅谈如何提高PHP代码质量之端到端集成测试
2021/05/28 PHP
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏