public class ServletContainer extends jakarta.servlet.http.HttpServlet implements jakarta.servlet.Filter, Container
Servlet
or Filter
for deploying root resource classes.
The following sections make reference to initialization parameters. Unless
otherwise specified the initialization parameters apply to both server
and filter initialization parameters.
The servlet or filter may be configured to have an initialization
parameter
(see ServletProperties.JAXRS_APPLICATION_CLASS
) and whose value is a
fully qualified name of a class that implements Application
.
The class is instantiated as a singleton component
managed by the runtime, and injection may be performed (the artifacts that
may be injected are limited to injectable providers registered when
the servlet or filter is configured).
If the initialization parameter
is not present and a initialization parameter "jersey.config.server.provider.packages"
is present (see ServerProperties.PROVIDER_PACKAGES
) a new instance of
ResourceConfig
with this configuration is created. The initialization parameter
"jersey.config.server.provider.packages" MUST be set to provide one or
more package names. Each package name MUST be separated by ';'.
If none of the above resource configuration related initialization parameters
are present a new instance of ResourceConfig
with WebAppResourcesScanner
is created. The initialization parameter "jersey.config.server.provider.classpath"
is present (see ServerProperties.PROVIDER_CLASSPATH
) MAY be
set to provide one or more resource paths. Each path MUST be separated by ';'.
If the initialization parameter is not present then the following resource
paths are utilized: "/WEB-INF/lib"
and "/WEB-INF/classes"
.
All initialization parameters are added as properties of the created
ResourceConfig
.
A new ApplicationHandler
instance will be created and configured such
that the following classes may be injected onto a root resource, provider
and Application
classes using @Context
annotation:
HttpServletRequest
, HttpServletResponse
,
ServletContext
, ServletConfig
and WebConfig
.
If this class is used as a Servlet then the ServletConfig
class may
be injected. If this class is used as a servlet filter then the FilterConfig
class may be injected. WebConfig
may be injected to abstract
servlet or filter deployment.
Persistence units that may be injected must be configured in web.xml
in the normal way plus an additional servlet parameter to enable the
Jersey servlet to locate them in JNDI. E.g. with the following
persistence unit configuration:
<persistence-unit-ref>
<persistence-unit-ref-name>persistence/widget</persistence-unit-ref-name>
<persistence-unit-name>WidgetPU</persistence-unit-name>
</persistence-unit-ref>
the Jersey servlet requires an additional servlet parameter as
follows:
<init-param>
<param-name>unit:WidgetPU</param-name>
<param-value>persistence/widget</param-value>
</init-param>
Given the above, Jersey will inject the EntityManagerFactory
found
at java:comp/env/persistence/widget
in JNDI when encountering a
field or parameter annotated with @PersistenceUnit(unitName="WidgetPU")
.DEFAULT_HTTP_PORT, DEFAULT_HTTPS_PORT
Constructor and Description |
---|
ServletContainer()
Create Jersey Servlet container.
|
ServletContainer(ResourceConfig resourceConfig)
Create Jersey Servlet container.
|
Modifier and Type | Method and Description |
---|---|
void |
destroy() |
void |
doFilter(jakarta.servlet.http.HttpServletRequest request,
jakarta.servlet.http.HttpServletResponse response,
jakarta.servlet.FilterChain chain)
Dispatches client requests to the
service(URI, URI, HttpServletRequest, HttpServletResponse) method. |
void |
doFilter(jakarta.servlet.ServletRequest servletRequest,
jakarta.servlet.ServletResponse servletResponse,
jakarta.servlet.FilterChain filterChain) |
ApplicationHandler |
getApplicationHandler()
Get the Jersey server-side application handler associated with the container.
|
ResourceConfig |
getConfiguration()
Return an immutable representation of the current
configuration . |
jakarta.servlet.ServletContext |
getServletContext()
Get the servlet context for the servlet or filter, depending on
how this class is registered.
|
protected Pattern |
getStaticContentPattern()
Get the static content path pattern.
|
WebComponent |
getWebComponent()
Get
WebComponent used by this servlet container. |
void |
init() |
void |
init(jakarta.servlet.FilterConfig filterConfig) |
protected void |
init(WebConfig webConfig)
Initiate the Web component.
|
void |
reload()
Reload the hosted Jersey application using the current
configuration . |
void |
reload(ResourceConfig configuration)
Reload the hosted Jersey application using a new
configuration . |
protected void |
service(jakarta.servlet.http.HttpServletRequest request,
jakarta.servlet.http.HttpServletResponse response)
Receives standard HTTP requests from the public
service method and dispatches
them to the do XXX methods defined in
this class. |
void |
service(jakarta.servlet.ServletRequest req,
jakarta.servlet.ServletResponse res)
Dispatches client requests to the protected
service method. |
org.glassfish.jersey.internal.util.collection.Value<Integer> |
service(URI baseUri,
URI requestUri,
jakarta.servlet.http.HttpServletRequest request,
jakarta.servlet.http.HttpServletResponse response)
Dispatch client requests to a resource class.
|
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified
public ServletContainer()
public ServletContainer(ResourceConfig resourceConfig)
resourceConfig
- container configuration.protected void init(WebConfig webConfig) throws jakarta.servlet.ServletException
webConfig
- the Web configuration.jakarta.servlet.ServletException
- in case of an initialization failurepublic void service(jakarta.servlet.ServletRequest req, jakarta.servlet.ServletResponse res) throws jakarta.servlet.ServletException, IOException
service
method. There's no need to
override this method.service
in interface jakarta.servlet.Servlet
service
in class jakarta.servlet.http.HttpServlet
req
- the HttpServletRequest
object that
contains the request the client made of
the servletres
- the HttpServletResponse
object that
contains the response the servlet returns
to the clientIOException
- if an input or output error occurs
while the servlet is handling the
HTTP requestjakarta.servlet.ServletException
- if the HTTP request cannot
be handledServlet.service(jakarta.servlet.ServletRequest, jakarta.servlet.ServletResponse)
protected void service(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws jakarta.servlet.ServletException, IOException
service
method and dispatches
them to the do
XXX methods defined in
this class. This method is an HTTP-specific version of the
Servlet.service(jakarta.servlet.ServletRequest, jakarta.servlet.ServletResponse)
method. There's no
need to override this method.service
in class jakarta.servlet.http.HttpServlet
request
- the HttpServletRequest
object that
contains the request the client made of
the servletresponse
- the HttpServletResponse
object that
contains the response the servlet returns
to the clientIOException
- if an input or output error occurs
while the servlet is handling the
HTTP requestjakarta.servlet.ServletException
- if the HTTP request
cannot be handledServlet.service(jakarta.servlet.ServletRequest, jakarta.servlet.ServletResponse)
public void destroy()
destroy
in interface jakarta.servlet.Filter
destroy
in interface jakarta.servlet.Servlet
destroy
in class jakarta.servlet.GenericServlet
public void init() throws jakarta.servlet.ServletException
init
in class jakarta.servlet.GenericServlet
jakarta.servlet.ServletException
public org.glassfish.jersey.internal.util.collection.Value<Integer> service(URI baseUri, URI requestUri, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws jakarta.servlet.ServletException, IOException
baseUri
- the base URI of the request.requestUri
- the URI of the request.request
- the HttpServletRequest
object that contains the request the client made to
the Web component.response
- the HttpServletResponse
object that contains the response the Web component
returns to the client.value provider
. If not resolved in the moment of call to
Value.get()
, -1
is returned.IOException
- if an input or output error occurs while the Web component is handling the HTTP request.jakarta.servlet.ServletException
- if the HTTP request cannot be handled.public void init(jakarta.servlet.FilterConfig filterConfig) throws jakarta.servlet.ServletException
init
in interface jakarta.servlet.Filter
jakarta.servlet.ServletException
public void doFilter(jakarta.servlet.ServletRequest servletRequest, jakarta.servlet.ServletResponse servletResponse, jakarta.servlet.FilterChain filterChain) throws IOException, jakarta.servlet.ServletException
doFilter
in interface jakarta.servlet.Filter
IOException
jakarta.servlet.ServletException
public jakarta.servlet.ServletContext getServletContext()
getServletContext
in interface jakarta.servlet.ServletConfig
getServletContext
in class jakarta.servlet.GenericServlet
public void doFilter(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain chain) throws IOException, jakarta.servlet.ServletException
service(URI, URI, HttpServletRequest, HttpServletResponse)
method.
If the servlet path matches the regular expression declared by the
property ServletProperties.FILTER_STATIC_CONTENT_REGEX
then the
request is forwarded to the next filter in the filter chain so that the
underlying servlet engine can process the request otherwise Jersey
will process the request.request
- the HttpServletRequest
object that
contains the request the client made to
the servlet.response
- the HttpServletResponse
object that
contains the response the servlet returns
to the client.chain
- the chain of filters from which the next filter can be invoked.IOException
- in case of an I/O error.jakarta.servlet.ServletException
- in case of an error while executing the
filter chain.protected Pattern getStaticContentPattern()
Pattern
compiled from a regular expression that is
the property value of ServletProperties.FILTER_STATIC_CONTENT_REGEX
.
A null
value will be returned if the property is not set or is
an empty String.public ResourceConfig getConfiguration()
Container
configuration
.getConfiguration
in interface Container
public void reload()
Container
configuration
.public void reload(ResourceConfig configuration)
Container
configuration
.public ApplicationHandler getApplicationHandler()
Container
getApplicationHandler
in interface Container
public WebComponent getWebComponent()
WebComponent
used by this servlet container.Copyright © 2007-2021, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.