2017-02-21 14 views
0

我試圖從HTML表單傳遞一個變量通過腳本來servlet和servlet的中它將連接到數據庫,並得到兩個結果變量。如何獲得HTML形式的servlet的變量

我再次使用請求調度到響應轉發回HTML表單,但我卡在獲取變量HTML表單來填充。

<title>Insert title here</title> 
<script> 
function showCustomer() { 

    var kkk = document.getElementById("num").value; 
    alert("this is mango1 "+kkk); 

    var xmlhttp; 

    xmlhttp = new XMLHttpRequest(); 

    xmlhttp.onreadystatechange = function() { 
     if (this.readyState == 4 && this.status == 200) { 
      <!-- what should come here to get "set attributes value " --> 

     } 
    }; 

    xmlhttp.open("POST", "callserv1?num="+kkk, true); 
    xmlhttp.send(); 
} 
</script> 
</head> 
<body> 
<form action=""> 
Receipt no <input type="text" name="num" id="num"/> 
<input type="button" onclick="showCustomer(num)" value ="call"/> 
</form> 
<p id="demo">Customer info will be listed here...</p> 
</body> 
</html> 
import static java.lang.System.out; 

import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 

public class callserv1 extends HttpServlet 
{ 
public void doPost(HttpServletRequest request, HttpServletResponse response) 
throws IOException, ServletException 
    { 
     response.setContentType("text/html"); 
     PrintWriter out = response.getWriter(); 
     out.println("This Example demonstrates, using Ajax request to Access Servlet "); 
     String grnxx = request.getParameter("num"); 
     String pono = null; 
     String podt = null; 

     out.println("i am in" +grnxx); 

     try 
     {     
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     Connection con=DriverManager.getConnection("connection db"); 
     Statement st=con.createStatement(); 
     System.out.println("Connection estabilished"+con); 

     //Input query to get PO and Itemlist for given GRn 
     ResultSet rs=st.executeQuery("query"); 

     while(rs.next()) { 
      pono = rs.getString("doc"); 
      podt = rs.getString("dt"); 
      System.out.println("Pono:---- "+pono); 
      System.out.println("Podt:---- "+podt); 
     } 

     con.close(); 
     System.out.println("DB Connection closed successfully"); 

     } catch (Exception e) { 
      System.out.println("Connection error: "+e); 
     } 

     request.setAttribute("pono", pono); 
     request.setAttribute("podt", podt); 
     request.getRequestDispatcher("index.html").forward(request,response); 
    } 
} 
+0

難道你們就不能使用jQuery或其他一些JS的工具,簡化AJAX請求? – Phil

+0

我沒有嘗試過。我們不能以上述方式獲得? – selv

回答

0

您可以從servlet的數據傳遞到了採用請求JSP(而不是HTML),並通過設置數據作爲請求屬性,然後在JSP可以渲染這些數據生成HTML

在Jsp端,您可以通過以下選項獲取屬性值。

  • 小腳本
  • 表達式語言
+1

謝謝。將嘗試新的。 – selv