簡體   English   中英

如何使用javascript從servlet到jsp檢索數據

[英]how to retrieve data from servlet to jsp using javascript

我是servlet的新手,我寫了一個servlet,它從數據庫中獲取數據並打印表,我有一個jsp頁面,其中包含一個用於搜索員工ID的按鈕。 我的要求是表格應顯示在我搜索的同一頁面上,即jsp page。我整天都在搜索,但找不到使用javascript的解決方案。 我希望僅使用javascript而不是jquery .thanks來完成此操作。 這是我的jsp頁面

search.jsp的

<html>
<head>

    <script>
        var request;
        var date;
        function data()
        {

            var v = document.getElementById("ele1").value;

            var url = "Retrieve?ele1=" + v;
            alert("v" + v);
            if (window.XMLHttpRequest)
            {
                request = new XMLHttpRequest();
            } else if (window.ActiveXObject)
            {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            try
            {
                request.onreadystatechange = getInfo;
                request.open("GET", url, true);
                request.send();

            } catch (e)
            {
                alert("unable to connect to server");
            }
        }
        function getInfo()
        {
            request = new XMLHttpRequest();

            if (request.readyState == 4)
            {

                alert(val);
                var response = request.responseXML;
                var val = request.responseText;
                document.getElementById("sun").innerHTML = val;
            }
        }

        }

    </script>
</head>
<body>
    <div>
        <form id="search" name="search" action="Retrieve" method="post"> 
            <label id="search">Search By Empid</label>
            <input type="text" name="ele1" id="ele1">
            <input type="button" value="Get Details" onclick="data();">

        </form>

    </div>
    <div id="sun">

    </div>
</body>

這是我的servlet頁面

Retrieve.java

公共類Retrieve擴展了HttpServlet {

Connection con = null;
Statement st = null;

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    //response.setContentType("text/html;charset=UTF-8");

    try (PrintWriter out = response.getWriter()) {

        Class.forName("org.postgresql.Driver");
        con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/name", "postgres", "admin");
        st = con.createStatement();

        String num = request.getParameter("ele1");
        int id = Integer.valueOf(num);
        PreparedStatement ps = con.prepareStatement("select * from empretrieve where Empid=?");
        ps.setInt(1, id);

        out.print("<table width=50% border=1>");
        out.print("<caption>Result:</caption>");

        ResultSet rs = ps.executeQuery();

        ResultSetMetaData rsmd = rs.getMetaData();
        int tot = rsmd.getColumnCount();
        out.print("<tr>");
        for (int i = 1; i <= tot; i++) {
            out.print("<th>" + rsmd.getColumnName(i) + "</th>");

        }
        out.print("</tr>");

        while (rs.next()) {
            out.print("<tr><td>" + rs.getInt(1) + "</td><td>" + rs.getString(2) + "</td><td>" + rs.getString(3) + "</td><td>" + rs.getString(4) + "</td><td>" + rs.getString(5) + "</td><td>" + rs.getString(6) + "</td><td>" + rs.getString(7) + "</td><td>" + rs.getString(8) + "</td><td>");
        }
        out.print("</table>");
        System.out.println("processRequest : : ");

    } catch (Exception e) {
        PrintWriter out = response.getWriter();
        out.println(" e : " + e);
    } finally {
        try {
            if (st != null) {
                st.close();
            }
            if (con != null) {
                con.close();
            }
        } catch (Exception ex) {
        }
    }

}

這對我有用:Servlet:

@WebServlet("/XTMLRequestServlet")
public class XTMLRequestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public XTMLRequestServlet() {
        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 {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

JSP:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XTMLREQUEST</title>
</head>
<body>

<h1>XTMLREQUEST</h1>
Response:<div id="response"></div>
<script>
var xhr = new XMLHttpRequest();
xhr.open('GET', 'XTMLRequestServlet', true);

// If specified, responseType must be empty string or "text"
xhr.responseType = 'text';

xhr.onload = function () {
    if (xhr.readyState === xhr.DONE) {
        if (xhr.status === 200) {
           var el  = document.querySelector("#response");
           el.insertAdjacentHTML("beforeend", xhr.responseText);
            console.log(xhr.responseText);
        }
    }
};

xhr.send(null);
</script>
</body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM