-1

我在一个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>
4

1 回答 1

0

一、在getuser.jsp中改变

 request.setAttribute("top", addressLists1);

 session.setAttribute("top", addressLists1);

然后在 second.jsp 中类似

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

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

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

于 2013-10-04T19:10:01.633 回答