com.vaadin.server.communication.
Class UidlRequestHandler
- java.lang.Object
-
- com.vaadin.server.SynchronizedRequestHandler
-
- com.vaadin.server.communication.UidlRequestHandler
-
All Implemented Interfaces:
public class UidlRequestHandler extends SynchronizedRequestHandler implements SessionExpiredHandler
Processes a UIDL request from the client. Uses
ServerRpcHandler
to execute client-to-server RPC invocations andUidlWriter
to write state changes and client RPC calls back to the client.Since:
7.1
Author:
Vaadin Ltd
See Also:
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.vaadin.server.SynchronizedRequestHandler
SynchronizedRequestHandler.ResponseWriter
-
-
Field Summary
Fields Modifier and Type Field Description static String
UIDL_PATH
-
Fields inherited from class com.vaadin.server.SynchronizedRequestHandler
MAX_BUFFER_SIZE
-
-
Constructor Summary
Constructors Constructor Description UidlRequestHandler()
-
Method Summary
All Methods Modifier and Type Method Description protected boolean
canHandleRequest(VaadinRequest request)
Check whether a request may be handled by this handler.
protected void
closeJsonMessage(Writer outWriter)
protected ServerRpcHandler
createRpcHandler()
Creates the ServerRpcHandler to use.
boolean
handleSessionExpired(VaadinRequest request, VaadinResponse response)
Called when the a session expiration has occurred and a notification needs to be sent to the user.
boolean
isReadAndWriteOutsideSessionLock()
Returns whether request body should be read and the response written without holding
VaadinSession
lock.protected void
openJsonMessage(Writer outWriter, VaadinResponse response)
Writes the opening of JSON message to be sent to client.
boolean
synchronizedHandleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response)
Identical to
SynchronizedRequestHandler.handleRequest(VaadinSession, VaadinRequest, VaadinResponse)
except theVaadinSession
is locked before this is called and unlocked after this has completed.Optional<SynchronizedRequestHandler.ResponseWriter>
synchronizedHandleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response, String requestBody)
Identical to
SynchronizedRequestHandler.synchronizedHandleRequest(VaadinSession, VaadinRequest, VaadinResponse)
except theVaadinSession
is locked before this is called and the response requestBody has been read before locking the session and is provided as a separate parameter.-
Methods inherited from class com.vaadin.server.SynchronizedRequestHandler
getRequestBody, handleRequest
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.vaadin.server.RequestHandler
handleRequest
-
-
-
-
Field Detail
-
UIDL_PATH
public static final String UIDL_PATH
See Also:
-
-
Method Detail
-
createRpcHandler
protected ServerRpcHandler createRpcHandler()
Creates the ServerRpcHandler to use.
Returns:
the ServerRpcHandler to use
Since:
7.7
-
canHandleRequest
protected boolean canHandleRequest(VaadinRequest request)
Description copied from class:
SynchronizedRequestHandler
Check whether a request may be handled by this handler. This can be used as an optimization to avoid locking the session just to investigate some method property. The default implementation just returns
true
which means that all requests will be handled by callingSynchronizedRequestHandler.synchronizedHandleRequest(VaadinSession, VaadinRequest, VaadinResponse)
with the session locked.Overrides:
canHandleRequest
in classSynchronizedRequestHandler
Parameters:
request
- the request to handleReturns:
true
if the request handling should continue once the session has been locked;false
if there's no need to lock the session since the request would still not be handled.
-
synchronizedHandleRequest
public boolean synchronizedHandleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response) throws IOException
Description copied from class:
SynchronizedRequestHandler
Identical to
SynchronizedRequestHandler.handleRequest(VaadinSession, VaadinRequest, VaadinResponse)
except theVaadinSession
is locked before this is called and unlocked after this has completed.Specified by:
synchronizedHandleRequest
in classSynchronizedRequestHandler
Parameters:
session
- The session for the requestrequest
- The request to handleresponse
- The response object to which a response can be written.Returns:
true if a response has been written and no further request handlers should be called, otherwise false
Throws:
IOException
- If an IO error occurredSee Also:
SynchronizedRequestHandler.handleRequest(VaadinSession, VaadinRequest, VaadinResponse)
-
isReadAndWriteOutsideSessionLock
public boolean isReadAndWriteOutsideSessionLock()
Description copied from class:
SynchronizedRequestHandler
Returns whether request body should be read and the response written without holding
VaadinSession
lock.Overrides:
isReadAndWriteOutsideSessionLock
in classSynchronizedRequestHandler
Returns:
true if
SynchronizedRequestHandler.synchronizedHandleRequest(VaadinSession, VaadinRequest, VaadinResponse, String)
should be called. Returns false ifSynchronizedRequestHandler.synchronizedHandleRequest(VaadinSession, VaadinRequest, VaadinResponse)
should be called.
-
synchronizedHandleRequest
public Optional<SynchronizedRequestHandler.ResponseWriter> synchronizedHandleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response, String requestBody) throws IOException, UnsupportedOperationException
Description copied from class:
SynchronizedRequestHandler
Identical to
SynchronizedRequestHandler.synchronizedHandleRequest(VaadinSession, VaadinRequest, VaadinResponse)
except theVaadinSession
is locked before this is called and the response requestBody has been read before locking the session and is provided as a separate parameter.Overrides:
synchronizedHandleRequest
in classSynchronizedRequestHandler
Parameters:
session
- The session for the requestrequest
- The request to handleresponse
- The response object to which a response can be written.requestBody
- Request body pre-read from the request objectReturns:
a ResponseWriter wrapped into an Optional, if this handler will write the response and no further request handlers should be called, otherwise an empty Optional. The ResponseWriter will be executed after the VaadinSession is unlocked.
Throws:
IOException
- If an IO error occurred.See Also:
SynchronizedRequestHandler.handleRequest(VaadinSession, VaadinRequest, VaadinResponse)
-
closeJsonMessage
protected void closeJsonMessage(Writer outWriter) throws IOException
Throws:
-
openJsonMessage
protected void openJsonMessage(Writer outWriter, VaadinResponse response) throws IOException
Writes the opening of JSON message to be sent to client.
Parameters:
outWriter
-response
-Throws:
-
handleSessionExpired
public boolean handleSessionExpired(VaadinRequest request, VaadinResponse response) throws IOException
Description copied from interface:
SessionExpiredHandler
Called when the a session expiration has occurred and a notification needs to be sent to the user. If a response is written, this method should return
true
to indicate that no moreSessionExpiredHandler
handlers should be invoked for the request.Specified by:
handleSessionExpired
in interfaceSessionExpiredHandler
Parameters:
request
- The request to handleresponse
- The response object to which a response can be written.Returns:
true if a response has been written and no further request handlers should be called, otherwise false
Throws:
IOException
- If an IO error occurred
-
-