|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.grizzly.tcp.StaticResourcesAdapter
com.sun.grizzly.tcp.http11.GrizzlyAdapter
com.sun.grizzly.http.servlet.ServletAdapter
public class ServletAdapter
Adapter class that can initiate a FilterChain
and execute its
Filter
and its Servlet
Configuring a GrizzlyWebServer
or
SelectorThread
to use this
GrizzlyAdapter
implementation add the ability of servicing Servlet
as well as static resources.
This class can be used to programatically configure a Servlet, Filters, listeners,
init parameters, context-param, etc. a application usually defined using the web.xml.
See addInitParameter(String, String)
addContextParameter(String, String)
setProperty(String, Object)
, addServletListener(String)
, etc.
As an example:
GrizzlyWebServer ws = new GrizzlyWebServer("/var/www");
try{
ServletAdapter sa = new ServletAdapter();
sa.setRootFolder("/Path/To/Exploded/War/File");
sa.setServlet(new MyServlet());
// Set the Servlet's Name
// Any ServletConfig.getXXX method can be configured using this call.
// The same apply for ServletContext.getXXX.
sa.setProperty("display-name","myServlet");
sa.addListener("foo.bar.myHttpSessionListener");
sa.addListener(MyOtherHttpSessionListener.class);
sa.addServletContextListener(new FooServletContextListener());
sa.addServletContextAttributeListener(new BarServletCtxAttListener());
sa.addContextParameter("databaseURI","jdbc://");
sa.addInitParameter("password","hello");
sa.setServletPath("/MyServletPath");
sa.setContextPath("/myApp");
ws.addGrizzlyAdapter(sa);
ws.start();
} catch (IOException ex){
// Something when wrong.
}
Field Summary | |
---|---|
protected ClassLoader |
classLoader
|
static int |
INCREMENT
|
protected boolean |
initialize
Initialize the ServletContext |
static String |
LOAD_ON_STARTUP
|
protected HashMap<String,Object> |
properties
Holder for our configured properties. |
static int |
REQUEST_RESPONSE_NOTES
|
static int |
SERVLETCONFIG_NOTES
|
protected Servlet |
servletInstance
|
Fields inherited from class com.sun.grizzly.tcp.http11.GrizzlyAdapter |
---|
ADAPTER_NOTES, ALLOW_BACKSLASH, chunkingDisabled |
Fields inherited from class com.sun.grizzly.tcp.StaticResourcesAdapter |
---|
cache, commitErrorResponse, fileFolders, logger, resourcesContextPath |
Constructor Summary | |
---|---|
|
ServletAdapter()
|
|
ServletAdapter(Servlet servlet)
Create a ServletAdapter which support the specific Servlet |
|
ServletAdapter(Servlet servlet,
ServletContextImpl servletContext)
|
|
ServletAdapter(String publicDirectory)
Create a new instance which will look for static pages located under publicDirectory folder. |
protected |
ServletAdapter(String publicDirectory,
ServletContextImpl servletCtx,
Map<String,String> contextParameters,
Map<String,String> servletInitParameters,
boolean initialize)
Convenience constructor. |
protected |
ServletAdapter(String publicDirectory,
ServletContextImpl servletCtx,
Map<String,String> contextParameters,
Map<String,String> servletInitParameters,
List<String> listeners)
Convenience constructor. |
protected |
ServletAdapter(String publicDirectory,
ServletContextImpl servletCtx,
Map<String,String> contextParameters,
Map<String,String> servletInitParameters,
List<String> listeners,
boolean initialize)
Convenience constructor. |
Method Summary | |
---|---|
void |
addContextParameter(String name,
String value)
Add a new servlet context parameter for this servlet. |
protected void |
addFilter(FilterConfigImpl filterConfig)
Add a filter to the set of filters that will be executed in this chain. |
void |
addFilter(Filter filter,
String filterName,
Map initParameters)
Add a Filter to the
ServletAdapter.FilterChainImpl |
void |
addInitParameter(String name,
String value)
Add a new servlet initialization parameter for this servlet. |
void |
addServletListener(String listenerName)
Add Servlet listeners that implement EventListener |
void |
afterService(GrizzlyRequest request,
GrizzlyResponse response)
Once the GrizzlyAdapter.service(com.sun.grizzly.tcp.Request, com.sun.grizzly.tcp.Response) method has been execyuted, the container will
call this method to allow any extension to clean up there associated
GrizzlyRequest and GrizzlyResponse . |
protected void |
configureClassLoader(String applicationPath)
Create a URLClassLoader which has the capability of
loading classes jar under an exploded war application. |
protected void |
configureServletEnv()
Configure the ServletContextImpl
and ServletConfigImpl |
boolean |
containsInitParameter(String name)
if the servlet initialization parameter in present for this servlet. |
void |
customizeErrorPage(GrizzlyResponse response,
String message,
int errorCode)
Customize the error page returned to the client. |
void |
destroy()
Destroy this Servlet and its associated ServletContextListener |
void |
doService(GrizzlyRequest request,
GrizzlyResponse response)
|
ClassLoader |
getClassLoader()
|
protected Map<String,String> |
getContextParameters()
|
String |
getContextPath()
Returns the portion of the request URI that indicates the context of the request. |
String |
getInitParameter(String name)
get a servlet initialization parameter for this servlet. |
protected List<String> |
getListeners()
|
Object |
getProperty(String name)
Return a configured property. |
protected ServletContextImpl |
getServletCtx()
|
Servlet |
getServletInstance()
Return the Servlet instance used by this ServletAdapter |
String |
getServletPath()
Returns the part of this request's URL that calls the servlet. |
boolean |
isLoadOnStartup()
|
protected void |
loadServlet()
Load a Servlet instance. |
ServletAdapter |
newServletAdapter(Servlet servlet)
Create a new ServletAdapter instance that will share the same
ServletContextImpl and Servlet's
listener but with an empty map of init-parameters. |
void |
removeInitParameter(String name)
Remove a servlet initialization parameter for this servlet. |
void |
removeProperty(String name)
Remove a configured property. |
boolean |
removeServletListener(String listenerName)
Remove Servlet listeners that implement EventListener |
void |
service(GrizzlyRequest request,
GrizzlyResponse response)
This method should contains the logic for any http extension to the Grizzly HTTP Webserver. |
void |
setClassLoader(ClassLoader classLoader)
|
void |
setContextPath(String contextPath)
Programmatically set the context path of the Servlet. |
void |
setProperty(String name,
Object value)
Set a configured property. |
void |
setServletInstance(Servlet servletInstance)
Set the Servlet instance used by this ServletAdapter |
void |
setServletPath(String servletPath)
Programmatically set the servlet path of the Servlet. |
void |
start()
Called when the GrizzlyAdapter 's container is started by invoking
GrizzlyWebServer#start or when . |
Methods inherited from class com.sun.grizzly.tcp.http11.GrizzlyAdapter |
---|
afterService, isAllowEncodedSlash, isDecodeURL, isHandleStaticResources, service, setAllowEncodedSlash, setDecodeUrl, setHandleStaticResources |
Methods inherited from class com.sun.grizzly.tcp.StaticResourcesAdapter |
---|
addRootFolder, customizedErrorPage, getDefaultContentType, getResourcesContextPath, getRootFolder, getRootFolders, initWebDir, isUseSendFile, service, setDefaultContentType, setLogger, setResourcesContextPath, setRootFolder, setUseSendFile |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int REQUEST_RESPONSE_NOTES
public static final int SERVLETCONFIG_NOTES
public static final String LOAD_ON_STARTUP
protected volatile Servlet servletInstance
protected HashMap<String,Object> properties
protected boolean initialize
ServletContext
protected ClassLoader classLoader
public static final int INCREMENT
Constructor Detail |
---|
public ServletAdapter()
public ServletAdapter(Servlet servlet)
servlet
- Instance to be used by this adapter.public ServletAdapter(String publicDirectory)
publicDirectory
- the folder where the static resource are located.protected ServletAdapter(String publicDirectory, ServletContextImpl servletCtx, Map<String,String> contextParameters, Map<String,String> servletInitParameters, List<String> listeners)
publicDirectory
- The folder where the static resource are located.servletCtx
- ServletContextImpl
to be used by new instance.contextParameters
- Context parameters.servletInitParameters
- servlet initialization parameres.listeners
- Listeners.protected ServletAdapter(String publicDirectory, ServletContextImpl servletCtx, Map<String,String> contextParameters, Map<String,String> servletInitParameters, List<String> listeners, boolean initialize)
publicDirectory
- The folder where the static resource are located.servletCtx
- ServletContextImpl
to be used by new instance.contextParameters
- Context parameters.servletInitParameters
- servlet initialization parameres.listeners
- Listeners.initialize
- false only when the #newServletAdapter()
is invoked.protected ServletAdapter(String publicDirectory, ServletContextImpl servletCtx, Map<String,String> contextParameters, Map<String,String> servletInitParameters, boolean initialize)
publicDirectory
- The folder where the static resource are located.servletCtx
- ServletContextImpl
to be used by new instance.contextParameters
- Context parameters.servletInitParameters
- servlet initialization parameres.initialize
- false only when the #newServletAdapter()
is invoked.public ServletAdapter(Servlet servlet, ServletContextImpl servletContext)
Method Detail |
---|
public void start()
GrizzlyAdapter
's container is started by invoking
GrizzlyWebServer#start
or when . By default,
it does nothing.
start
in class GrizzlyAdapter
protected void configureClassLoader(String applicationPath) throws IOException
URLClassLoader
which has the capability of
loading classes jar under an exploded war application.
applicationPath
- Application class path.
IOException
- I/O error.public void service(GrizzlyRequest request, GrizzlyResponse response)
service
in class GrizzlyAdapter
request
- The GrizzlyRequest
response
- The GrizzlyResponse
public void doService(GrizzlyRequest request, GrizzlyResponse response)
public void customizeErrorPage(GrizzlyResponse response, String message, int errorCode)
response
- the GrizzlyResponse
message
- the Http error messageerrorCode
- the error code.protected void loadServlet() throws ServletException
Servlet
instance.
ServletException
- If failed to
Servlet.init(javax.servlet.ServletConfig)
.protected void configureServletEnv() throws ServletException
ServletContextImpl
and ServletConfigImpl
ServletException
- Error while configuring
Servlet
.public void afterService(GrizzlyRequest request, GrizzlyResponse response) throws Exception
GrizzlyAdapter.service(com.sun.grizzly.tcp.Request, com.sun.grizzly.tcp.Response)
method has been execyuted, the container will
call this method to allow any extension to clean up there associated
GrizzlyRequest
and GrizzlyResponse
.
afterService
in class GrizzlyAdapter
request
- The GrizzlyRequest
response
- The GrizzlyResponse
Exception
public void addInitParameter(String name, String value)
name
- Name of this initialization parameter to addvalue
- Value of this initialization parameter to addpublic void removeInitParameter(String name)
name
- Name of this initialization parameter to removepublic String getInitParameter(String name)
name
- Name of this initialization parameter to retreivepublic boolean containsInitParameter(String name)
name
- Name of this initialization parameterpublic void addContextParameter(String name, String value)
name
- Name of this initialization parameter to addvalue
- Value of this initialization parameter to addpublic void addFilter(Filter filter, String filterName, Map initParameters)
Filter
to the
ServletAdapter.FilterChainImpl
filter
- an instance of FilterfilterName
- the Filter's nameinitParameters
- the Filter init parameters.public Servlet getServletInstance()
Servlet
instance used by this ServletAdapter
Servlet
isntance.public void setServletInstance(Servlet servletInstance)
Servlet
instance used by this ServletAdapter
servletInstance
- an instance of Servlet.public String getServletPath()
This method will return an empty string ("") if the servlet used to process this request was matched using the "/*" pattern.
String
containing
the name or path of the servlet being
called, as specified in the request URL,
decoded, or an empty string if the servlet
used to process the request is matched
using the "/*" pattern.public void setServletPath(String servletPath)
servletPath
- Path of Servlet
.public String getContextPath()
It is possible that a servlet container may match a context by
more than one context path. In such cases this method will return the
actual context path used by the request and it may differ from the
path returned by the
ServletContext.getContextPath()
method.
The context path returned by
ServletContext.getContextPath()
should be considered as the prime or preferred context path of the
application.
String
specifying the
portion of the request URI that indicates the context
of the requestServletContext.getContextPath()
public void setContextPath(String contextPath)
contextPath
- Context path.public void addServletListener(String listenerName)
EventListener
listenerName
- name of a Servlet listenerpublic boolean removeServletListener(String listenerName)
EventListener
listenerName
- name of a Servlet listener to removepublic Object getProperty(String name)
ServletContextImpl
and ServletConfigImpl
name
- Name of property to get.
public void setProperty(String name, Object value)
ServletContextImpl
and ServletConfigImpl
.
Use this method to map what's you usually
have in a web.xml like display-name, context-param, etc.
name
- Name of the property to setvalue
- of the property.public void removeProperty(String name)
ServletContextImpl
and ServletConfigImpl
name
- Property name to remove.public boolean isLoadOnStartup()
public void destroy()
ServletContextListener
destroy
in class GrizzlyAdapter
public ServletAdapter newServletAdapter(Servlet servlet)
ServletAdapter
instance that will share the same
ServletContextImpl
and Servlet's
listener but with an empty map of init-parameters.
servlet
- - The Servlet associated with the ServletAdapter
ServletAdapter
protected ServletContextImpl getServletCtx()
protected List<String> getListeners()
protected Map<String,String> getContextParameters()
public ClassLoader getClassLoader()
public void setClassLoader(ClassLoader classLoader)
protected void addFilter(FilterConfigImpl filterConfig)
filterConfig
- The FilterConfig for the servlet to be executed
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |