将 ArrayList 的值传递给 JavaScript

passing value of arraylist to javascript

本文关键字:JavaScript 值传 ArrayList      更新时间:2023-09-26

我在一个jsp中有arraylist.我希望在另一个jsp上的java脚本中使用arraylist值。你能告诉我怎么做吗?以下是我的代码,我有两个jsp。

获取用户.jsp


Class.forName(driver).newInstance();
      conn = DriverManager.getConnection(url+dbName,userName,password);
            String query = "select user_registeration_code from system_user_master where user_first_name ='"+firstname+"' and user_last_name='"+lastname+"' and user_phone_no='"+emp_id+"'";
       st = conn.createStatement();
       ArrayList<String> addressLists1 = new ArrayList<String>();
           ResultSet  rs = st.executeQuery(query);
           while(rs.next())
                {

               addressLists1.add(rs.getString("user_registeration_code"));

                }
                out.println(addressLists1.size());
                //out.println(data);
                request.setAttribute("top", addressLists1);

第二.jsp


< script type = "text/javascript" >

function showEmp(emp_value) {
    var fname = document.getElementById("txtfirstname").value;
    alert(fname);
    var lname = document.getElementById("txtlastname").value;
    alert(lname);
    if (document.getElementById("txtmobileno").value != "") {
        alert("1");
        xmlHttp = GetXmlHttpObject();
        if (xmlHttp == null) {
            alert("2");
            alert("Browser does not support HTTP Request");
            return;
        }
        var url = "getuser.jsp";
        url = url + "?emp_id=" + emp_value + "&firstname=" + fname + "&lastname=" + lname;
        xmlHttp.onreadystatechange = stateChanged;
        xmlHttp.open("GET", url, true);
        xmlHttp.send(null);
    } else {
        alert("Please Select Employee Id");
    }
}
function stateChanged() {
    alert("3");
    document.getElementById("txtfirstname").value = "";
    document.getElementById("txtmobileno").value = "";
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
        alert("4");
        var showdata = [];
        showdata = xmlHttp.responseText;
        alert("qqqqqqqqq" + showdata.length);
        var i;
        for (i = 0; i < showdata.length; i++) {
            alert("----------------" + showdata.get(i));
        }
    }
}
function GetXmlHttpObject() {
    var xmlHttp = null;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    } catch (e) {
        //Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}
< /script>

首先,在getuser中.jsp更改

 request.setAttribute("top", addressLists1);

 session.setAttribute("top", addressLists1);

然后在第二.jsp类似

 ArrayList<String> addressLists1 = (ArrayList<String>)session.getAttribute("top");

然后遍历它并将列表打印到您的 HTML/JavaScript 输出中。

顺便说一下,如果你要连接到JSP中的数据库,那么至少连接到数据库的两行代码应该移动到你在JSP中使用的类中,而不仅仅是在JSP本身中拥有这些行。 在JSP中拥有数据库连接部分是一个非常糟糕的主意。 如果您的数据库服务器名称和密码位于 JSP 中,并且 JSP 遇到运行时错误,导致它向用户显示有问题的代码行,那么数据库密码可能会向用户公开。