2011-04-01 146 views
4

我從servlet調用了一個JSP,displayItems.jspDataPortal.java。首先,我試圖做到這一點使用RequestDispatcher這樣,從servlet調用jsp

String url = "/displayItems.jsp"; 
ServletContext context = getServletContext(); 
RequestDispatcher dispatcher = context.getRequestDispatcher(toDo); 
dispatcher.forward(req, res); 

以及...的控制也去JSP頁面,但它打印的JSP文件的全部內容(包括標籤的所有內容),而不是顯示爲網頁。接下來我試圖通過使用response.sendRedirect(url);來實現這一點,這次它給了我一個空白頁面。我在這裏做錯了什麼?該JSP是這樣的,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<meta http-equiv="content-type" content="text/html;charset=utf-8"/> 
    <meta http-equiv="Pragma" content="no-cache" /> 
<meta http-equiv="expires" content="0" />   
<meta http-equiv="Content-Style-Type" content="text/css" /> 
<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.js" type="text/javascript"></script> 
</head> 
    <body> 
    <div>i am in display category</div> 
    </body> 
</html> 

任何幫助表示讚賞。

回答

1

的問題就解決了。這就是:我有一個DispatchServlet調用DataPortal,然後調用displayItems.jsp。 Dispatcher.forward在DataPortal中不起作用的原因是因爲我在DispatchServlet中執行dispatcher.include以調用DataPortal。當我改變這個向前,事情開始工作。所以,謝謝你們的迴應。

0

dispatcher.include(req, res)怎麼樣?這是如果你想從servlet調用一個jsp。

0

向前只會將請求轉發到下一個頁面,爲的sendRedirect會先回來到其生成的頁面,並重定向到下一個頁面

+0

噢好吧。這意味着我不應該嘗試使用sendRedirect。但我仍然不明白爲什麼前鋒不適合我。 – sherry 2011-04-04 15:48:41

3

試試這個

RequestDispatcher RequetsDispatcherObj =request.getRequestDispatcher("/displayItems.jsp"); 
RequetsDispatcherObj.forward(request, response); 
+1

我也試過了。它不起作用。它打印文件的內容而不是打開網頁。 – sherry 2011-04-04 15:46:37

+0

文件的內容是什麼意思?你是否獲得了servlet值? – Learner 2011-04-05 04:41:39

+0

是的,我正在獲取servlet值。那麼..問題解決了。這就是:我有一個DispatchServlet調用DataPortal,然後調用displayItems.jsp。 Dispatcher.forward在DataPortal中不起作用的原因是因爲我在DispatchServlet中執行dispatcher.include以調用DataPortal。當我改變這個向前,事情開始工作。所以謝謝你們的迴應。 – sherry 2011-04-08 17:10:14

0
RequestDispatcher dispatcher = getRequestDispatcher("URL to jsp"); 
dispatcher.forward(request, response);