サーブレット API のバージョン 2.1 では、API のいくつかが改良され、機能が拡張されました。
サーブレット API バージョン 2.1 は、前のバージョンに次の改良を加えています。
ServletContext.log(Exception e, String msg)
が廃止され、代わりにServletContext.log(String message, Throwable t)
が使用されます。
このほかに、サーブレット API 2.1 には GenericServlet.log(String message,
メソッドが含まれます (前のバージョンの
Throwable t)GenericServlet.log(String message
も使用できます)。
ServletRequest.getRealPath(String path)
が廃止されました。このメソッドへの参照を ServletContext.getRealPath(String path)
に置換する必要があります。
サーブレット API 2.1 は、大文字の使用に一貫性を与えるために、次のメソッドについて Url
を URL
に変更しました。
HttpServletRequest.isRequestedSessionIDFromURL
HttpServletResponse.encodeURL
HttpServletResponse.encodeRedirectURL
init(ServletConfig config)
を書き換えるとき、super.init(config)
の呼び出しをコーディングすることによって、GenericServlet
が常に config
への参照を保存できるようにしておく必要があります。サーブレット API 2.1 には init()
メソッド (引数なし) が含まれています。これは super.init(config)
の呼び出しを必要としません。
サーブレット API 2.1 には HttpServletRequest.getSession()
メソッドが含まれています。このメソッドは HttpServletRequest.getSession(true)
の代わりに使用できます。
HttpServletResponse.setStatus(int sc, String sm)
が廃止されました。代わりに HttpServletResponse.setStatus(int sc)
とHttpServletResponse.sendError(int sc, String msg)
を使用します。
サーブレット API 2.1 では、複数の値を持つパラメータについて getParameter(String name)
を呼び出すと、常に最初の値が返されます。前のバージョンでは、この動作はサーバーによって異なっていました。
サーブレット API 2.1 では、ServletContext.getServlet(String name)
とServletContext.getServletNames()
が廃止されました。
サーブレット API 2.1 では、HttpSession.getSessionContext()
が廃止されました。
サーブレット API 2.1 には、次の機能拡張が含まれています。
RequestDispatcher
インターフェイスを使用して、処理をほかのサーブレットに転送するか、ほかのサーブレットの出力を呼び出し側のサーブレットの出力に含めることができます。
ServletContext.getResource(String uripath)
メソッドを使用して URL
オブジェクトを返し、このオブジェクトを使用して実際のリソースにアクセスできます。
ServletException
例外をルート例外のラッパーとして使用して、その下の例外を可視化できます。
ServletContext オブジェクトは次のメソッドを追加します。これらのメソッドを使用してサーブレット間で属性を共有できます。
setAttribute(String name, Object object)
getAttribute(String name)
getAttributeNames()
removeAttribute(String name)
HttpSession.setMaxInactiveInterval(int interval)
メソッドによってセッションの持続時間を制御できます。
ServletContext.getMajorVersion()
および ServletContext.getMinorVersion()
メソッドを使用してサーブレット API のバージョンにアクセスできます。