2013-02-19 32 views
1

所以我有一個HTML形式「的file1.html」將數據傳遞到另一個Java servlet爲

<form action="MyServlet" method="post"> 
    MyData: <input type="text" name="data"><br> 
    <input type="submit" value="submit"> 
</form> 

然後在我的servlet我做到以下幾點:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     RequestDispatcher myDispatch = request.getRequestDispatcher("File2.html"); 
    myDispatch.forward(request, response); 
    } 

所以在用戶點擊File1中的「提交」按鈕後,servlet將用戶轉到File2。但是,如何訪問第二個文件中第一個文件中輸入的數據?

回答

2

在使用分派器之前設置要傳遞的屬性

request.setAttribute("AttributeName","This is the Attribute value."); 
你的情況

request.setAttribute("data",request.getParameter("data")); 

和dispached頁面上

,通過

String something = request.getAttribute("data"); 
+0

謝謝!還有一個問題,在HTML中調用String something =「...」是否合法?或者我需要使用Javascript?我問,因爲最終我想顯示

user1782677 2013-02-19 09:00:05

+0

都能跟得上這可以在servlet或JSP只能調用 – 2013-02-19 09:06:30

+0

然後,我不明白的地方,你寫的「被派遣頁面上,通過得到它......」裏面的數據。派發的頁面是我的html文件。我打算使用html文件中的數據並將其顯示在屏幕上。 – user1782677 2013-02-19 09:08:12

0

你可以這樣說: -

request.getParameter("param");

+0

很酷,所以我從HTML文件中調用這個函數?還是從servlet?如果我從servlet中調用它,我仍然需要以某種方式將它傳遞給html文件,對嗎? – user1782677 2013-02-19 08:48:07

0

你可以把參數要求:

String data = request.getParameter("data"); 
request.setAttribute("key",data); 
myDispatch.forward(request, response); 

,你可以得到由新的Servlet的數據或JSP喜歡:

Object data = request.getAttribute("key"); 
0

得到它,如果您重定向到一個靜態的html文件,你不能得到的參數或屬性通過servlet。

如果你沒有在servlet的任何業務,則可以只使用,然後通過JavaScript得到File2.html數據。


或者你可以重定向到File2.html在你的servlet和查詢字符串,如「File2.html?NAME = blablabla的」將數據和使用JavaScript在File2.html得到這些數據。

順便說一句,在JavaScript中,你可以用window.location.href獲取當前的URL,其中包括查詢字符串。

相關問題