public class ServletHttpHandlerAdapter extends java.lang.Object implements Servlet
HttpHandler
to an HttpServlet
using Servlet Async support
and Servlet 3.1 non-blocking I/O.AbstractReactiveWebInitializer
Constructor and Description |
---|
ServletHttpHandlerAdapter(HttpHandler httpHandler) |
Modifier and Type | Method and Description |
---|---|
protected org.springframework.http.server.reactive.ServletServerHttpRequest |
createRequest(HttpServletRequest request,
AsyncContext context) |
protected org.springframework.http.server.reactive.ServletServerHttpResponse |
createResponse(HttpServletResponse response,
AsyncContext context,
org.springframework.http.server.reactive.ServletServerHttpRequest request) |
void |
destroy()
Called by the servlet container to indicate to a servlet that the
servlet is being taken out of service.
|
int |
getBufferSize()
Return the configured input buffer size.
|
DataBufferFactory |
getDataBufferFactory() |
ServletConfig |
getServletConfig()
Returns a
ServletConfig object, which contains
initialization and startup parameters for this servlet. |
java.lang.String |
getServletInfo()
Returns information about the servlet, such
as author, version, and copyright.
|
java.lang.String |
getServletPath()
Return the Servlet path under which the Servlet is deployed by checking
the Servlet registration from
init(ServletConfig) . |
void |
init(ServletConfig config)
Called by the servlet container to indicate to a servlet that the
servlet is being placed into service.
|
void |
service(ServletRequest request,
ServletResponse response)
Called by the servlet container to allow the servlet to respond to
a request.
|
void |
setBufferSize(int bufferSize)
Set the size of the input buffer used for reading in bytes.
|
void |
setDataBufferFactory(DataBufferFactory dataBufferFactory) |
public ServletHttpHandlerAdapter(HttpHandler httpHandler)
public void setBufferSize(int bufferSize)
By default this is set to 8192.
public int getBufferSize()
@Nullable public java.lang.String getServletPath()
init(ServletConfig)
.null
if this method is invoked
before the init(ServletConfig)
Servlet container callback.public void setDataBufferFactory(DataBufferFactory dataBufferFactory)
public DataBufferFactory getDataBufferFactory()
public void init(ServletConfig config)
javax.servlet.Servlet
The servlet container calls the init
method exactly once after instantiating the servlet.
The init
method must complete successfully
before the servlet can receive any requests.
The servlet container cannot place the servlet into service
if the init
method
ServletException
init
in interface Servlet
config
- a ServletConfig
object
containing the servlet's
configuration and initialization parametersUnavailableException
,
Servlet.getServletConfig()
public void service(ServletRequest request, ServletResponse response) throws ServletException, java.io.IOException
javax.servlet.Servlet
This method is only called after the servlet's init()
method has completed successfully.
The status code of the response always should be set for a servlet that throws or sends an error.
Servlets typically run inside multithreaded servlet containers that can handle multiple requests concurrently. Developers must be aware to synchronize access to any shared resources such as files, network connections, and as well as the servlet's class and instance variables. More information on multithreaded programming in Java is available in the Java tutorial on multi-threaded programming.
service
in interface Servlet
request
- the ServletRequest
object that contains
the client's requestresponse
- the ServletResponse
object that contains
the servlet's responseServletException
- if an exception occurs that interferes
with the servlet's normal operationjava.io.IOException
- if an input or output exception occursprotected org.springframework.http.server.reactive.ServletServerHttpRequest createRequest(HttpServletRequest request, AsyncContext context) throws java.io.IOException, java.net.URISyntaxException
java.io.IOException
java.net.URISyntaxException
protected org.springframework.http.server.reactive.ServletServerHttpResponse createResponse(HttpServletResponse response, AsyncContext context, org.springframework.http.server.reactive.ServletServerHttpRequest request) throws java.io.IOException
java.io.IOException
public java.lang.String getServletInfo()
javax.servlet.Servlet
The string that this method returns should be plain text and not markup of any kind (such as HTML, XML, etc.).
getServletInfo
in interface Servlet
String
containing servlet information@Nullable public ServletConfig getServletConfig()
javax.servlet.Servlet
ServletConfig
object, which contains
initialization and startup parameters for this servlet.
The ServletConfig
object returned is the one
passed to the init
method.
Implementations of this interface are responsible for storing the
ServletConfig
object so that this
method can return it. The GenericServlet
class, which implements this interface, already does this.
getServletConfig
in interface Servlet
ServletConfig
object
that initializes this servletServlet.init(javax.servlet.ServletConfig)
public void destroy()
javax.servlet.Servlet
service
method have exited or after a timeout
period has passed. After the servlet container calls this
method, it will not call the service
method again
on this servlet.
This method gives the servlet an opportunity to clean up any resources that are being held (for example, memory, file handles, threads) and make sure that any persistent state is synchronized with the servlet's current state in memory.