有兩種接口支持 JSP 技術。這些 API 提供了一種將內容生成(業務邏輯)從內容演示(HTML 格式)中分離出來的方法。這種分離使 Servlet 能生成內容并將它(如在 Bean 中)存儲在請求的上下文中。生成上下文的 Servlet 通過將請求的上下文傳遞至 JSP 文件來生成一個響應,該 JSP 文件包含 HTML 格式。<BEAN> 標記便提供了對業務邏輯的訪問。支持 JSP 的接口有:
= com.sun.server.http.HttpServiceRequest:該類實現了 javax.servlet.http.HttpServletRequest 接口和用于設置根據名稱定義的屬性的方法 setAttribute() 。
= com.sun.server.http.HttpServiceResponse:該類實現了 javax.servlet.http.HttpServletResponse 接口,并添加了一個使 Servlet 能調用 JSP 文件和可選地傳遞上下文的 callPage() 方法。
1.callPage() 方法
用 callPage() 方法在 Servlet 中對 JSP 進行服務。所服務的頁面(一個 JSP 文件)作為響應返回到瀏覽器中。調用 Servlet 還可以通過請求對象傳遞某些上下文。應該對所服務的頁面標題進行編碼,以將用于告訴瀏覽器不要對文件執行高速緩存的指令包含在內。callPage() 方法的語法如下:
public void callPage(String fileName, HttpServletRequest req) throws ServletException, IOException
其中:
= fileName:用于標識文件(該文件用于生成輸出并表示內容)的 URL 名。如果文件名以斜杠(/)開頭,則可以假設文件位置與文檔根目錄有關。如果文件名不是以斜杠開頭,則可假設文件位置與當前調用的請求有關。callPage() 方法不支持調用文件擴展名為 .html 的頁面。如果需要使用 callPage() 方法來調用 HTML 頁面,則必須首先將 HTML 文件重命名成擴展名為 .jsp 的文件。
= Req:調用該方法的是 Servlet 的 HttpServletRequest 對象。最通常的是,將上下文作為 Bean,在請求對象的上下文中進行傳遞。
要使用 callPage() 方法,必須將響應對象造型成com.sun.server.http.HttpServiceResponse類型。
2.使用 setAttribute() 方法
用 setAttribute() 方法來將一個特性存儲在請求的上下文中。語法是:public void setAttribute(String key, Object o),其中,key代表存儲的特性名,而o表示用 key 來存儲的上下文對象。要使用 setAttribute() 方法,必須將請求對象造型成com.sun.server.http.HttpServiceRequest類型。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/