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 相关文章推荐
javscript对象原型的一些看法
Sep 19 Javascript
juqery 学习之三 选择器 简单 内容
Nov 25 Javascript
电子商务网站上的常用的js放大镜效果
Dec 08 Javascript
JS获取计算机mac地址以及IP的实现方法
Jan 08 Javascript
JS实现简单的键盘打字的效果
Apr 24 Javascript
简单谈谈javascript中的变量、作用域和内存问题
Aug 30 Javascript
JS产生随机数的几个用法详解
Jun 22 Javascript
JS数组去重的6种方法完整实例
Dec 08 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
Feb 19 Javascript
生产制造追溯系统之在线打印功能
Jun 03 Javascript
Ant Design Pro 之 ProTable使用操作
Oct 31 Javascript
js删除指定位置超链接中含有百度与360的标题
Jan 06 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
ADODB结合SMARTY使用~超级强
2006/11/25 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
zend api扩展的php对象的autoload工具
2011/04/18 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
php使用百度翻译api示例分享
2014/01/31 PHP
ThinkPHP中U方法的使用浅析
2014/06/13 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
js老生常谈之this,constructor ,prototype全面解析
2016/04/05 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
windows 下python+numpy安装实用教程
2017/12/23 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
pygame实现非图片按钮效果
2019/10/29 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
求职信范文怎么写
2014/01/29 职场文书
社区助残日活动总结
2014/08/29 职场文书
2015员工年度考核评语
2015/03/25 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
2016年党风廉政建设承诺书
2016/03/25 职场文书
php引用传递
2021/04/01 PHP
用Python爬取某乎手机APP数据
2021/06/15 Python
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技