パッケージ jakarta.servlet
クラス ServletRequestWrapper
- java.lang.ObjectSE
-
- jakarta.servlet.ServletRequestWrapper
- 実装されたすべてのインターフェース:
ServletRequest
- 既知の直属サブクラス
HttpServletRequestWrapper
public class ServletRequestWrapper extends ObjectSE implements ServletRequest
リクエストをサーブレットに適合させたい開発者がサブクラス化できる ServletRequest インターフェースの便利な実装を提供します。このクラスは、Wrapper または Decorator パターンを実装します。メソッドは、デフォルトでラップされたリクエストオブジェクトへの呼び出しを実行します。- 導入:
- Servlet 2.3
- 関連事項:
ServletRequest
コンストラクターのサマリー
コンストラクター コンストラクター 説明 ServletRequestWrapper(ServletRequest request)
指定されたリクエストオブジェクトをラップする ServletRequest アダプターを作成します。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 AsyncContext
getAsyncContext()
ラップされたリクエストに対するstartAsync()
またはstartAsync(ServletRequest,ServletResponse)
の最新の呼び出しによって作成または再初期化された AsyncContext を取得します。ObjectSE
getAttribute(StringSE name)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトで getAttribute(String name) を呼び出すことです。EnumerationSE<StringSE>
getAttributeNames()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getAttributeNames() が返されます。StringSE
getCharacterEncoding()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getCharacterEncoding() が返されます。int
getContentLength()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getContentLength() が返されます。long
getContentLengthLong()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getContentLengthLong() が返されます。StringSE
getContentType()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getContentType() が返されます。DispatcherType
getDispatcherType()
ラップされたリクエストのディスパッチャー型を取得します。ServletInputStream
getInputStream()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getInputStream() が返されます。StringSE
getLocalAddr()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getLocalAddr() が返されます。LocaleSE
getLocale()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getLocale() が返されます。EnumerationSE<LocaleSE>
getLocales()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getLocales() が返されます。StringSE
getLocalName()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getLocalName() が返されます。int
getLocalPort()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getLocalPort() が返されます。StringSE
getParameter(StringSE name)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトに getParameter(String name) を返すことです。MapSE<StringSE,StringSE[]>
getParameterMap()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getParameterMap() が返されます。EnumerationSE<StringSE>
getParameterNames()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getParameterNames() が返されます。StringSE[]
getParameterValues(StringSE name)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトに getParameterValues(String name) を返すことです。StringSE
getProtocol()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getProtocol() が返されます。StringSE
getProtocolRequestId()
ラップされたリクエストのプロトコル定義のリクエスト ID があれば取得します。BufferedReaderSE
getReader()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getReader() が返されます。StringSE
getRemoteAddr()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getRemoteAddr() が返されます。StringSE
getRemoteHost()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getRemoteHost() が返されます。int
getRemotePort()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getRemotePort() が返されます。ServletRequest
getRequest()
ラップされたリクエストオブジェクトを返します。RequestDispatcher
getRequestDispatcher(StringSE path)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトに getRequestDispatcher(String path) を返すことです。StringSE
getRequestId()
ラップされたリクエストのリクエスト ID を取得します。StringSE
getScheme()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getScheme() が返されます。StringSE
getServerName()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getServerName() が返されます。int
getServerPort()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getServerPort() が返されます。ServletConnection
getServletConnection()
ラップされたリクエストの接続情報を取得します。ServletContext
getServletContext()
ラップされたサーブレットリクエストが最後にディスパッチされたサーブレットコンテキストを取得します。boolean
isAsyncStarted()
ラップされたリクエストが非同期モードになっているかどうかを確認します。boolean
isAsyncSupported()
ラップされたリクエストが非同期操作をサポートしているかどうかを確認します。boolean
isSecure()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの isSecure() が返されます。boolean
isWrapperFor(ServletRequest wrapped)
この ServletRequestWrapper が指定されたServletRequest
インスタンスをラップするかどうかを(再帰的に)チェックします。boolean
isWrapperFor(ClassSE<?> wrappedType)
この ServletRequestWrapper が指定されたクラス型のServletRequest
をラップするかどうかを(再帰的に)チェックします。void
removeAttribute(StringSE name)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトで removeAttribute(String name) を呼び出すことです。void
setAttribute(StringSE name, ObjectSE o)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトに対して setAttribute(String name, Object o) を返すことです。void
setCharacterEncoding(StringSE enc)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトに文字エンコードを設定することです。void
setRequest(ServletRequest request)
ラップされるリクエストオブジェクトを設定します。AsyncContext
startAsync()
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトでServletRequest.startAsync()
を呼び出すことです。AsyncContext
startAsync(ServletRequest servletRequest, ServletResponse servletResponse)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトでServletRequest.startAsync(ServletRequest, ServletResponse)
を呼び出すことです。
コンストラクターの詳細
ServletRequestWrapper
public ServletRequestWrapper(ServletRequest request)
指定されたリクエストオブジェクトをラップする ServletRequest アダプターを作成します。- パラメーター:
request
- ラップされるServletRequest
- 例外:
IllegalArgumentExceptionSE
- リクエストが null の場合
メソッドの詳細
getRequest
public ServletRequest getRequest()
ラップされたリクエストオブジェクトを返します。- 戻り値:
- ラップされた
ServletRequest
setRequest
public void setRequest(ServletRequest request)
ラップされるリクエストオブジェクトを設定します。- パラメーター:
request
- インストールするServletRequest
- 例外:
IllegalArgumentExceptionSE
- リクエストが null の場合。
getAttribute
public ObjectSE getAttribute(StringSE name)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトで getAttribute(String name) を呼び出すことです。- 次で指定:
- インターフェース
ServletRequest
のgetAttribute
- パラメーター:
name
- 属性の名前を指定するString
- 戻り値:
- 属性の値を含む
Object
、または属性が存在しない場合はnull
getAttributeNames
public EnumerationSE<StringSE> getAttributeNames()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getAttributeNames() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetAttributeNames
- 戻り値:
- リクエストの属性の名前を含む文字列の
Enumeration
getCharacterEncoding
public StringSE getCharacterEncoding()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getCharacterEncoding() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetCharacterEncoding
- 戻り値:
- 文字エンコードの名前を含む
String
、またはリクエストで文字エンコードが指定されていない場合はnull
setCharacterEncoding
public void setCharacterEncoding(StringSE enc) throws UnsupportedEncodingExceptionSE
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトに文字エンコードを設定することです。- 次で指定:
- インターフェース
ServletRequest
のsetCharacterEncoding
- パラメーター:
enc
- 文字エンコードの名前を含むString
。- 例外:
UnsupportedEncodingExceptionSE
- この ServletRequest がまだ文字エンコーディングを設定できる状態にあるが、指定されたエンコーディングが無効な場合
getContentLength
public int getContentLength()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getContentLength() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetContentLength
- 戻り値:
- リクエストボディの長さを含む整数。長さが不明の場合、または Integer.MAX_VALUE より大きい場合は -1。
getContentLengthLong
public long getContentLengthLong()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getContentLengthLong() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetContentLengthLong
- 戻り値:
- リクエスト本体の長さを含む long、または長さが不明な場合は -1L
- 導入:
- Servlet 3.1
getContentType
public StringSE getContentType()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getContentType() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetContentType
- 戻り値:
- リクエストの MIME 型の名前を含む
String
、または型が不明の場合は null
getInputStream
public ServletInputStream getInputStream() throws IOExceptionSE
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getInputStream() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetInputStream
- 戻り値:
- リクエストの本文を含む
ServletInputStream
オブジェクト - 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
getParameter
public StringSE getParameter(StringSE name)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトに getParameter(String name) を返すことです。- 次で指定:
- インターフェース
ServletRequest
のgetParameter
- パラメーター:
name
- パラメーターの名前を指定するString
- 戻り値:
- パラメーターの単一の値を表す
String
- 関連事項:
ServletRequest.getParameterValues(java.lang.String)
getParameterMap
public MapSE<StringSE,StringSE[]> getParameterMap()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getParameterMap() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetParameterMap
- 戻り値:
- パラメーター名をキーとして、パラメーター値をマップ値として含む不変の java.util.Map。パラメーターマップのキーは String 型です。パラメーターマップの値は String 型です。
getParameterNames
public EnumerationSE<StringSE> getParameterNames()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getParameterNames() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetParameterNames
- 戻り値:
String
オブジェクトのEnumeration
。各String
にはリクエストパラメーターの名前が含まれます。またはリクエストにパラメーターがない場合は空のEnumeration
getParameterValues
public StringSE[] getParameterValues(StringSE name)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトに getParameterValues(String name) を返すことです。- 次で指定:
- インターフェース
ServletRequest
のgetParameterValues
- パラメーター:
name
- 値がリクエストされるパラメーターの名前を含むString
- 戻り値:
- パラメーターの値を含む
String
オブジェクトの配列 - 関連事項:
ServletRequest.getParameter(java.lang.String)
getProtocol
public StringSE getProtocol()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getProtocol() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetProtocol
- 戻り値:
- プロトコル名とバージョン番号を含む
String
getScheme
public StringSE getScheme()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getScheme() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetScheme
- 戻り値:
- このリクエストを行うために使用されるスキームの名前を含む
String
getServerName
public StringSE getServerName()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getServerName() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetServerName
- 戻り値:
- サーバーの名前を含む
String
getServerPort
public int getServerPort()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getServerPort() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetServerPort
- 戻り値:
- ポート番号を指定する整数
getReader
public BufferedReaderSE getReader() throws IOExceptionSE
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getReader() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetReader
- 戻り値:
- リクエストの本文を含む
BufferedReader
- 例外:
UnsupportedEncodingExceptionSE
- 使用されている文字セットエンコーディングがサポートされておらず、テキストをデコードできない場合IOExceptionSE
- 入力または出力の例外が発生した場合- 関連事項:
ServletRequest.getInputStream()
getRemoteAddr
public StringSE getRemoteAddr()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getRemoteAddr() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetRemoteAddr
- 戻り値:
- IP アドレスを含む
String
getRemoteHost
public StringSE getRemoteHost()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getRemoteHost() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetRemoteHost
- 戻り値:
- 完全修飾名または IP アドレスを含む
String
。
setAttribute
public void setAttribute(StringSE name, ObjectSE o)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトに対して setAttribute(String name, Object o) を返すことです。- 次で指定:
- インターフェース
ServletRequest
のsetAttribute
- パラメーター:
name
- 属性の名前を指定するString
o
- 格納されるObject
removeAttribute
public void removeAttribute(StringSE name)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトで removeAttribute(String name) を呼び出すことです。- 次で指定:
- インターフェース
ServletRequest
のremoveAttribute
- パラメーター:
name
- 削除する属性の名前を指定するString
getLocale
public LocaleSE getLocale()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getLocale() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetLocale
- 戻り値:
- クライアントの優先
Locale
getLocales
public EnumerationSE<LocaleSE> getLocales()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getLocales() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetLocales
- 戻り値:
- クライアントの優先
Locale
オブジェクトのEnumeration
isSecure
public boolean isSecure()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの isSecure() が返されます。- 次で指定:
- インターフェース
ServletRequest
のisSecure
- 戻り値:
- 安全なチャネルを使用してリクエストが行われたかどうかを示すブール値
getRequestDispatcher
public RequestDispatcher getRequestDispatcher(StringSE path)
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトに getRequestDispatcher(String path) を返すことです。- 次で指定:
- インターフェース
ServletRequest
のgetRequestDispatcher
- パラメーター:
path
- リソースへのパス名を指定するString
。相対的な場合は、現在のサーブレットに対して相対的でなければなりません。- 戻り値:
- 指定されたパスのリソースのラッパーとして機能する
RequestDispatcher
オブジェクト、またはサーブレットコンテナーがRequestDispatcher
を返せない場合はnull
- 関連事項:
RequestDispatcher
,ServletContext.getRequestDispatcher(java.lang.String)
getRemotePort
public int getRemotePort()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getRemotePort() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetRemotePort
- 戻り値:
- ポート番号を指定する整数
- 導入:
- Servlet 2.4
getLocalName
public StringSE getLocalName()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getLocalName() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetLocalName
- 戻り値:
- リクエストが受信された IP のホスト名を含む
String
。 - 導入:
- Servlet 2.4
getLocalAddr
public StringSE getLocalAddr()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getLocalAddr() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetLocalAddr
- 戻り値:
- IP アドレスを含む
String
。 - 導入:
- Servlet 2.4
getLocalPort
public int getLocalPort()
このメソッドのデフォルトの動作では、ラップされたリクエストオブジェクトの getLocalPort() が返されます。- 次で指定:
- インターフェース
ServletRequest
のgetLocalPort
- 戻り値:
- ポート番号を指定する整数
- 導入:
- Servlet 2.4
getServletContext
public ServletContext getServletContext()
ラップされたサーブレットリクエストが最後にディスパッチされたサーブレットコンテキストを取得します。- 次で指定:
- インターフェース
ServletRequest
のgetServletContext
- 戻り値:
- ラップされたサーブレットリクエストが最後にディスパッチされたサーブレットコンテキスト
- 導入:
- Servlet 3.0
startAsync
public AsyncContext startAsync() throws IllegalStateExceptionSE
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトでServletRequest.startAsync()
を呼び出すことです。- 次で指定:
- インターフェース
ServletRequest
のstartAsync
- 戻り値:
- (再)初期化された AsyncContext
- 例外:
IllegalStateExceptionSE
- リクエストが非同期操作をサポートしないフィルターまたはサーブレットのスコープ内にある場合(つまり、isAsyncSupported()
が false を返す場合)、非同期ディスパッチなしでこのメソッドが再度呼び出される場合(AsyncContext.dispatch()
メソッドのいずれかによる)そのようなディスパッチのスコープ外、または同じディスパッチのスコープ内で再度呼び出されるか、レスポンスがすでに閉じられている場合- 導入:
- Servlet 3.0
- 関連事項:
ServletRequest.startAsync()
startAsync
public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateExceptionSE
このメソッドのデフォルトの動作は、ラップされたリクエストオブジェクトでServletRequest.startAsync(ServletRequest, ServletResponse)
を呼び出すことです。- 次で指定:
- インターフェース
ServletRequest
のstartAsync
- パラメーター:
servletRequest
- AsyncContext の初期化に使用される ServletRequestservletResponse
- AsyncContext の初期化に使用される ServletResponse- 戻り値:
- (再)初期化された AsyncContext
- 例外:
IllegalStateExceptionSE
- リクエストが非同期操作をサポートしないフィルターまたはサーブレットのスコープ内にある場合(つまり、isAsyncSupported()
が false を返す場合)、非同期ディスパッチなしでこのメソッドが再度呼び出される場合(AsyncContext.dispatch()
メソッドのいずれかによる)そのようなディスパッチのスコープ外、または同じディスパッチのスコープ内で再度呼び出されるか、レスポンスがすでに閉じられている場合- 導入:
- Servlet 3.0
- 関連事項:
ServletRequest.startAsync(ServletRequest, ServletResponse)
isAsyncStarted
public boolean isAsyncStarted()
ラップされたリクエストが非同期モードになっているかどうかを確認します。- 次で指定:
- インターフェース
ServletRequest
のisAsyncStarted
- 戻り値:
- このリクエストが非同期モードになっている場合は true、そうでない場合は false
- 導入:
- Servlet 3.0
- 関連事項:
ServletRequest.isAsyncStarted()
isAsyncSupported
public boolean isAsyncSupported()
ラップされたリクエストが非同期操作をサポートしているかどうかを確認します。- 次で指定:
- インターフェース
ServletRequest
のisAsyncSupported
- 戻り値:
- このリクエストが非同期操作をサポートする場合は true、そうでない場合は false
- 導入:
- Servlet 3.0
- 関連事項:
ServletRequest.isAsyncSupported()
getAsyncContext
public AsyncContext getAsyncContext()
ラップされたリクエストに対するstartAsync()
またはstartAsync(ServletRequest,ServletResponse)
の最新の呼び出しによって作成または再初期化された AsyncContext を取得します。- 次で指定:
- インターフェース
ServletRequest
のgetAsyncContext
- 戻り値:
- ラップされたリクエストに対する
startAsync()
またはstartAsync(ServletRequest,ServletResponse)
の最新の呼び出しによって作成または再初期化された AsyncContext - 例外:
IllegalStateExceptionSE
- このリクエストが非同期モードになっていない場合、つまりstartAsync()
もstartAsync(ServletRequest,ServletResponse)
も呼び出されていない場合- 導入:
- Servlet 3.0
- 関連事項:
ServletRequest.getAsyncContext()
isWrapperFor
public boolean isWrapperFor(ServletRequest wrapped)
この ServletRequestWrapper が指定されたServletRequest
インスタンスをラップするかどうかを(再帰的に)チェックします。- パラメーター:
wrapped
- 検索する ServletRequest インスタンス- 戻り値:
- この ServletRequestWrapper が指定された ServletRequest インスタンスをラップする場合は true、そうでない場合は false
- 導入:
- Servlet 3.0
isWrapperFor
public boolean isWrapperFor(ClassSE<?> wrappedType)
この ServletRequestWrapper が指定されたクラス型のServletRequest
をラップするかどうかを(再帰的に)チェックします。- パラメーター:
wrappedType
- 検索する ServletRequest クラス型- 戻り値:
- この ServletRequestWrapper が指定されたクラス型の ServletRequest をラップする場合は true、そうでない場合は false
- 例外:
IllegalArgumentExceptionSE
- 指定されたクラスがServletRequest
を実装していない場合- 導入:
- Servlet 3.0
getDispatcherType
public DispatcherType getDispatcherType()
ラップされたリクエストのディスパッチャー型を取得します。- 次で指定:
- インターフェース
ServletRequest
のgetDispatcherType
- 戻り値:
- ラップされたリクエストのディスパッチャー型
- 導入:
- Servlet 3.0
- 関連事項:
ServletRequest.getDispatcherType()
getRequestId
public StringSE getRequestId()
ラップされたリクエストのリクエスト ID を取得します。- 次で指定:
- インターフェース
ServletRequest
のgetRequestId
- 戻り値:
- ラップされたリクエストのリクエスト ID
- 導入:
- Servlet 6.0
getProtocolRequestId
public StringSE getProtocolRequestId()
ラップされたリクエストのプロトコル定義のリクエスト ID があれば取得します。- 次で指定:
- インターフェース
ServletRequest
のgetProtocolRequestId
- 戻り値:
- ラップされたリクエストのプロトコル定義リクエスト ID (存在する場合)
- 導入:
- Servlet 6.0
getServletConnection
public ServletConnection getServletConnection()
ラップされたリクエストの接続情報を取得します。- 次で指定:
- インターフェース
ServletRequest
のgetServletConnection
- 戻り値:
- ラップされたリクエストの接続情報
- 導入:
- Servlet 6.0