我使用Eclipse JUNO IDE和tomcat 7.0。如何從servlet使用分派器時刷新jsp頁面?
我有一個web應用程序。在應用程序中,我有:
的Servlet
JSP頁面
HTML - 主頁。
在主網頁我有一個重定向到Servlet(因爲我需要從服務器獲取數據)被點擊提交按鈕和servlet的重定向到比賽jsp頁面時的一種形式。 現在,當我刷新jsp頁面時,servlet在請求中獲得NULL。所以我的問題 是如何重新提交?因爲我想顯示來自服務器的新數據。
注意:Servlet使用套接字與服務器通信,所以當用戶按下某個提交按鈕時,請求將重定向到servlet,並且該servlet將請求 重定向到服務器以獲取所需的數據。現在,當servlet收到的數據,它的傳輸數據到JSP頁面,JSP頁面顯示爲HTML
if (request.getParameter("submit").equals("Show Taxis at Driving"))
{
requests.add("driving");
to_server.writeObject(requests);
to_server.flush();
requests.removeAllElements();
try{
driving = (Vector)from_server.readObject();
request.setAttribute("driving", driving);
//request.getRequestDispatcher("/WEB-INF/driving_page.jsp").forward(request, response);
RequestDispatcher disp = getServletContext().getRequestDispatcher("/WEB-INF/driving_page.jsp");
disp.forward(request, response);
}catch(ClassNotFoundException e)
{
e.printStackTrace();
}
}
else if (request.getParameter("submit").equals("Add Passenger to Taxi"))
{
requests.add("taxis");
requests.add("passengers");
to_server.writeObject(requests);
to_server.flush();
requests.removeAllElements();
try {
taxis_waiting = (Vector)from_server.readObject();
passengers = (Vector)from_server.readObject();
request.setAttribute("taxis", taxis_waiting);
request.setAttribute("passengers", passengers);
request.getRequestDispatcher("/WEB-INF/add_passenger_to_taxi.jsp").forward(request, response);
} catch (ClassNotFoundException e) {
e.printStackTrace();
request.getRequestDispatcher("error_page.jsp").forward(request, response);
}
}
感謝您的回覆,但這與我所做的完全相同。在'MainPage.html'中,使用GET方法的表單和動作重定向到servlet。現在servlet處理請求並將其轉發到所需的jsp頁面。但是當用戶刷新jsp頁面時,servlet會變爲空。 – eliorsh
@eliorsh:顯示您的servlet代碼。如果使用request參數和簡單的'request.getParameter(...)',它應該檢索參數,無論它是來自表單還是手動粘貼到URL中。 –
我編輯了我的問題並添加了servlet代碼,這個代碼是'doPost'方法中的 – eliorsh