撰寫Servlet測試案例,您可以繼承ServletTestCase,這些在之前的主題上都有說明過了,如果您需要Container所管理的一些資源物件,可以直接使用ServletTestCase所提供的隱含物件(實際上就是field成員)。
相當於HttpServletRequest物件,實際上是繼承它的子類
org.apache.cactus.server.HttpServletRequestWrapper,這個類包裝了
HttpServletRequest,除了HttpServletRequest本身的方法之外,還提供了setRemoteIPAddress()、
setRemoteHostName()、setRemoteUser()等方法。
為HttpServletResponse物件,Cactus對於HttpServletResponse不作任何的包裝。
相當於ServletConfig,實際上是繼承它的子類
org.apache.cactus.server.ServletConfigWrapper,提供了setInitParameter()、
setServletName()等簡便的方法,讓您不用透過設定web.xml就可以作一些Servlet的設定動作。
即HttpSession物件,Cactus不為HttpSession作任何的包
裝, Cactus預設上會自動生成HttpSession物件,您可以在beginXXX()中使用
WebRequest.setAutomaticSession(false)來取消,這樣您就可以自己透過request的getSession()方
法來控制session。
您可以透過config.getServletContext()來取得ServletContext物件,而實際上返回的是它的子類 org.apache.cactus.server.ServletContextWrapper,它提供了getLogs()方法可以讓您取得 ServletContext.log()所記錄的文字,還有setInitParameter()可以讓您設定context參數,即實際佈署 Servlet時要於web.xml的<context-param>中設定的參數。 |
|