[Java][Web]Request 實現轉發和 MVC 設計模式
String data = "aaaaa";
request.setAttribute("data",data); // 將數據存在 request
request.getRequestDispatcher("/message.jsp").forward(request,response); // 實現轉發
MVC => M model/javabean V view/jsp C controller / servlet
在 message.jsp 頁面上 可以在 body 節點中以 $(data) 來得到數據
也可以寫成
<% String data = (String) request.getAttribute("data"); out.write(data);%>
效果是一樣的。 jsp 頁面修改後不需要重啟 Tomcat 服務。
forward 方法用於將請求轉發到 RequestDispatcher 對象封裝的資源。
如果在調用 forward 方法之前,在 Servlet 程序中寫入的部分內容已經被真正地傳送到了客戶端, forward 方法將會拋出
異常 java.lang.IllegalStateException。
如果在調用 forward 方法之前向 Servlet 引擎的緩沖區 response 中寫入了內容,只要寫入到緩沖區的內容還沒有被真正輸
出到客戶端, forward 方法就可以被正常執行,原來寫入到輸出緩沖區的內容將被清空,但是,已寫入到
HttpServletResponse 對象中的響應頭字段信息保持有效。
request.getRequestDispatcher("/public/head.jsp").include(request,response);
request.getWriter().write("<font>內容</fong>");
request.getRequestDispatcher("/public/head.jsp").include(request,response);
這段代碼表示:用 include 實現頁面包含
[Java][Web]Request 實現轉發和 MVC 設計模式