zoukankan      html  css  js  c++  java
  • j2ee之AJAX的二级联动

    Ajax.js

    var createAjax = function(){
        var ajax = null;
        try{
            ajax = new ActiveXObject("microsoft.xmlhttp");
        }catch(e1){
            try{
                ajax = new XMLHttpRequest();
            }catch(e2){
                alert("请换掉你的浏览器");
            }
        }
        return ajax;
    }

    test3.xml

    <%@ page language="Java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <script type="text/javascript" src="js/ajax.js"></script>
        <base href="<%=basePath%>">    
        <title>??</title>        
      <meta http-equiv="pragma" content="no-cache">
      <meta http-equiv="cache-control" content="no-cache">
      <meta http-equiv="expires" content="0">    
      <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
      <meta http-equiv="description" content="This is my page">
     </head>
     <body>
             <select id="province">
                 <option>请选择省份</option>
                 <option>江苏</option>
                 <option>江西</option>
             </select>
             <select id="city">
                 <option>请选择城市</option>
             </select>
             <script type="text/javascript">
            document.getElementById("province").onchange = function(){
                var cityElement = document.getElementById("city");
                cityElement.options.length = 1;
                /* 拿到第一个下拉框中选中的值 */
                var index = this.selectedIndex;
                var optionElement = this[index];
                var optionValue = optionElement.innerHTML;
                /* 把这个值发送给服务器 */
                var ajax = createAjax();
                var url = "${pageContext.request.contextPath }/SelectServlet?time="+new Date().getTime();
                var method = "POST";
                ajax.open(method , url);
                ajax.setRequestHeader("content-type" , "application/x-www-form-urlencoded");
                var content = "province=" + optionValue;
                ajax.send(content);
                /* -----接收相应的数据----- */
                ajax.onreadystatechange = function(){
                    if(ajax.readyState == 4 && ajax.status == 200){
                        /* 拿到xml */
                        var xmlDocument = ajax.responseXML;
                        /* 用xml的解析方式拿到城市根据标签名称 */
                        var cityArray = xmlDocument.getElementsByTagName("cityOption");
                        for (var i = 0; i < cityArray.length; i++){
                            /* 用xml的解析方式拿到城市的值 */
                            var city = cityArray[i].firstChild.nodeValue;
                            var option = document.createElement("option");
                            option.innerHTML = city;
                            cityElement.appendChild(option);
                        }
                    }
                }
            }
            
             </script>
     </body>
    </html>

    SelectServlet.java

    package com.newtouch.servlet;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class SelectServlet
     */
    @WebServlet("/SelectServlet")
    public class SelectServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        /**
         * @see HttpServlet#HttpServlet()
         */
        public SelectServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // TODO Auto-generated method stub
            response.getWriter().append("Served at: ").append(request.getContextPath());
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            request.setCharacterEncoding("utf-8");
            // 这里是text/xml是把数据放到了xml中
            response.setContentType("text/xml;charset=utf-8");
            String province = request.getParameter("province");
            response.getWriter().write("<?xml version='1.0' encoding='utf-8' ?>");
            response.getWriter().write("<root>");
            if ("江苏".equals(province)) {
                response.getWriter().write("<cityOption>1</cityOption>");
                response.getWriter().write("<cityOption>2</cityOption>");
                response.getWriter().write("<cityOption>3</cityOption>");
                response.getWriter().write("<cityOption>4</cityOption>");
            } else if ("江西".equals(province)) {
                response.getWriter().write("<cityOption>一</cityOption>");
                response.getWriter().write("<cityOption>二</cityOption>");
                response.getWriter().write("<cityOption>三</cityOption>");
                response.getWriter().write("<cityOption>四</cityOption>");
            }
            response.getWriter().write("</root>");
        }
    
    }

     ajax想后台传递多个对象数据:

                              $.ajax({
                                                type:"POST",
                                                url:"${pageContext.request.contextPath}/suspicious/suspiciousAddNewCase",
                                                dataType: 'json',
                                                contentType : 'application/json',
                                                data : JSON.stringify(data),
                                                success:function(data){
                                                    console.info(data);
                                                    if(data.rst){
                                                        alert("新增失败");
                                                    }else{
                                                        alert("新增成功");
                                                    }
                                                },
                                                error:function(){
                                                    console.info("AJAXq请求错误");
                                                }
                                            });
  • 相关阅读:
    scala之伴生对象的继承
    scala之伴生对象说明
    “Failed to install the following Android SDK packages as some licences have not been accepted” 错误
    PATH 环境变量重复问题解决
    Ubuntu 18.04 配置java环境
    JDBC的基本使用2
    DCL的基本语法(授权)
    ZJNU 1374
    ZJNU 2184
    ZJNU 1334
  • 原文地址:https://www.cnblogs.com/ShaoXin/p/7412467.html
Copyright © 2011-2022 走看看