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函数实现动态添加CSS样式表文件
Dec 15 Javascript
js将当前时间格式转换成时间搓(自写)
Sep 26 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
Dec 01 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
Feb 17 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
Feb 06 Javascript
详解在Javascript中进行面向切面编程
Apr 28 Javascript
Node.js 实现远程桌面监控的方法步骤
Jul 02 Javascript
layui表单验证select下拉框实现验证的方法
Sep 05 Javascript
JavaScript实现简单的弹窗效果
May 19 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
May 27 Javascript
JS实现小米轮播图
Sep 21 Javascript
keep-alive保持组件状态的方法
Dec 02 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调用三种数据库的方法(3)
2006/10/09 PHP
php5 and xml示例
2006/11/22 PHP
php木马webshell扫描器代码
2012/01/25 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
捕获关闭窗口的脚本
2009/01/10 Javascript
jquery实现的淡入淡出下拉菜单效果
2015/08/25 Javascript
JavaScript表单验证实例之验证表单项是否为空
2016/01/10 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
js实现车辆管理系统
2020/08/26 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
Python绑定方法与非绑定方法详解
2017/08/18 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
python中实现控制小数点位数的方法
2019/01/24 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
Pytorch之卷积层的使用详解
2019/12/31 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
公认8个效率最高的爬虫框架
2020/07/28 Python
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
什么是反射
2012/03/17 面试题
团支书的期末学习总结自我评价
2013/11/01 职场文书
大学总结自我鉴定
2014/01/18 职场文书
党员自我对照检查材料
2014/08/19 职场文书
党员四风剖析材料
2014/08/27 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL