基于JSP Servlet xml的select二级联动

来源:互联网 发布:淘宝多边纸盒图片 编辑:程序博客网 时间:2024/06/05 15:51

Servlet:queryJointDevice.java

package com;import java.io.*;  import javax.servlet.*;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.sql.*;  import java.util.*;public class queryJointDevice extends HttpServlet {    public queryJointDevice() {        super();    }    public void destroy() {        super.destroy();     }    private static final long serialVersionUID = 1L;    private String driver;    private String url;    private String user;    private String pass;    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        System.out.println("get方法进入...");        //response.setContentType("text/html");        //request.setCharacterEncoding("utf-8");        //response.setCharacterEncoding("utf-8");        String q=request.getParameter("q");         System.out.println(q);               if("TraAntExchage".equals(q)){        try{                    System.out.println(q);                Connection con=null;                Statement stat=null;                ResultSet rs = null;                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");                String url = "jdbc:sqlserver://localhost:1433;DatabaseName=DEVICEINFO";                String user = "sa";                String password = "123456";                 System.out.println("数据URL:"+url);                System.out.println("数据库登录名:"+user);                System.out.println("数据库密码:"+password);                con = DriverManager.getConnection(url,user,password);                stat = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);                String sql="select * from TB_TraAntExchage";                System.out.println("123");                rs=stat.executeQuery(sql);                System.out.println("456");                rs.last();//获取记录总数                int j=rs.getRow();                String[] TAExchage_NAME=new String[j];                System.out.println(rs.getRow());                int i=0;                //rs.first();                rs.absolute(0);                response.setContentType("text/xml");                 response.setCharacterEncoding("UTF-8");                 request.setCharacterEncoding("UTF-8");                 response.setHeader("Cache-Control", "no-cache");                PrintWriter out = response.getWriter();                 String xml_head="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";                String xml_start = "<selects>";                 String xml_end = "</selects>";                 String xml = "";                 while(rs.next()){                    System.out.println(rs.getString("TAExchage_NAME"));                    TAExchage_NAME[i]=rs.getString("TAExchage_NAME");                    i++;                    System.out.println("789");                    System.out.println(rs.getString("TAExchage_NAME"));                    System.out.println("11");                    xml += "<select><value>"+rs.getString("TAExchage_NAME")+"</value><text>"+rs.getString("TAExchage_NAME")+"</text></select>";                 }                String last_xml = xml_head+xml_start + xml + xml_end;                 System.out.println(last_xml);                response.getWriter().write(last_xml);                 out.flush();                 out.close();                con.close();        }         catch (Exception ex) {                      System.out.println("数据库加载失败");            System.out.println(ex);        }                }        if(q=="发信机"){        }    }    @Override    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doGet(request,response);    }    @Override    public void init(ServletConfig config)        throws ServletException    {        super.init(config);        //配置文件配置的数据库驱动、url、数据库登录名、登录密码        ServletConfig conf = getServletConfig();        driver = conf.getInitParameter("driver");        url = conf.getInitParameter("url");        user = conf.getInitParameter("user");        pass = conf.getInitParameter("pass");        System.out.println("数据库驱动:"+driver);        System.out.println("数据URL:"+url);        System.out.println("数据库登录名:"+user);        System.out.println("数据库密码:"+pass);    }}

JSP:getSub.jsp

<%@ page language="java" import="java.util.*" 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">      function selectJointDevice(str){            var xmlhttp;            if (str==""){                document.getElementById("TAExchage_NAME").innerHTML="";                return;            }            if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari                xmlhttp=new XMLHttpRequest();            }            else{// code for IE6, IE5                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");            }            xmlhttp.onreadystatechange=function() {                  if (xmlhttp.readyState==4 && xmlhttp.status==200){                        document.getElementById("test2").innerHTML="processResponse1";                        document.getElementById("test2").innerHTML="aaa";                        var xmlDoc = xmlhttp.responseXML.documentElement;//获得返回的XML文档                         var xSel = xmlDoc.getElementsByTagName("select");                         //获得XML文档中的所有<select>标记                         var select_root = document.getElementById("test");                         //获得网页中的第二个下拉框                         select_root.options.length=0;                         //每次获得新的数据的时候先把每二个下拉框架的长度清0                         var aaa = document.createTextNode(xSel.length);                        document.getElementById("test2").appendChild(aaa);                        var textNode = document.createTextNode(xSel[1].getElementsByTagName("value")[0].firstChild.data);                        document.getElementById("test2").appendChild(textNode);                        //document.write("1123456");                        //document.write(xSel.childNodes[0].firstChild.nodeValue);                        for(var i=0;i<xSel.length;i++){                               //var xValue = xSel.childNodes[0].firstChild.nodeValue;                              var xValue = xSel[i].getElementsByTagName("value")[0].firstChild.data;                              //获得每个<select>标记中的第一个标记的值,也就是<value>标记的值                              // var xText = xSel.childNodes[1].firstChild.nodeValue;                               var xText= xSel[i].getElementsByTagName("text")[0].firstChild.data;                              //获得每个<select>标记中的第二个标记的值,也就是<text>标记的值                               var option = new Option(xText, xValue);                               //根据每组value和text标记的值创建一个option对象                               try{                                 select_root.add(option);//将option对象添加到第二个下拉框中                               }                              catch(e){                                   document.write(e);                              }                         }                     }            }            xmlhttp.open("GET","queryJointDevice?q="+str,true);            xmlhttp.send();}        </script>  </head>  <body>    <select style="heigt:32px;font-size:16px;margin:0px;"  name="JOINT_DEVICETYPE" onchange="selectJointDevice(this.value)">        <option selected="selected">==请选择==</option>        <option value="TraAntExchage" >发信天线交换设备</option>        <option value="发信移相交换设备" >发信移相交换设备</option>    </select>    <select style="heigt:32px;font-size:16px;margin:0px;"  name="JOINT_DEVICENAME" id="test" >        <option selected="selected" >==请选择==</option>    </select>    <div id="test2" style="height:100px;width:100px;background:blue;'">     </div>  </body></html>
0 0
原创粉丝点击