Class WicketServlet
- java.lang.Object
-
- javax.servlet.GenericServlet
-
- javax.servlet.http.HttpServlet
-
- org.apache.wicket.protocol.http.WicketServlet
-
- All Implemented Interfaces:
Serializable
,javax.servlet.Servlet
,javax.servlet.ServletConfig
- Direct Known Subclasses:
ReloadingWicketServlet
public class WicketServlet extends javax.servlet.http.HttpServlet
Please useWicketFilter
if you require advanced chaining of resources.Servlet class for all wicket applications. The specific application class to instantiate should be specified to the application server via an init-params argument named "applicationClassName" in the servlet declaration, which is typically in a web.xml file. The servlet declaration may vary from one application server to another, but should look something like this:
<servlet> <servlet-name>MyApplication</servlet-name> <servlet-class>org.apache.wicket.protocol.http.WicketServlet</servlet-class> <init-param> <param-name>applicationClassName</param-name> <param-value>com.whoever.MyApplication</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
Note that the applicationClassName parameter you specify must be the fully qualified name of a class that extends WebApplication. If your class cannot be found, does not extend WebApplication or cannot be instantiated, a runtime exception of type WicketRuntimeException will be thrown.As an alternative, you can configure an application factory instead. This looks like:
<init-param> <param-name>applicationFactoryClassName</param-name> <param-value>teachscape.platform.web.wicket.SpringApplicationFactory</param-value> </init-param>
and it has to satisfy interfaceIWebApplicationFactory
.The servlet can also be configured to skip certain paths, this is especially useful when the servlet is mapped to
/*
mapping:<init-param> <param-name>ignorePaths</param-name> <param-value>/images/products/,/documents/pdf/</param-value> </init-param>
When GET/POST requests are made via HTTP, a WebRequestCycle object is created from the request, response and session objects (after wrapping them in the appropriate wicket wrappers). The RequestCycle's render() method is then called to produce a response to the HTTP request.
If you want to use servlet specific configuration, e.g. using init parameters from the
ServletConfig
object, you should override the init() method ofGenericServlet
. For example:public void init() throws ServletException { ServletConfig config = getServletConfig(); String webXMLParameter = config.getInitParameter("myWebXMLParameter"); ...
In order to support frameworks like Spring, the class is non-final and the variable webApplication is protected instead of private. Thus subclasses may provide their own means of providing the application object.
- Author:
- Jonathan Locke, Timur Mehrvarz, Juergen Donnerstag, Igor Vaynberg (ivaynberg), Al Maw
- See Also:
RequestCycle
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected WicketFilter
wicketFilter
The WicketFilter where all the handling is done
-
Constructor Summary
Constructors Constructor Description WicketServlet()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
destroy()
Servlet cleanup.void
doGet(javax.servlet.http.HttpServletRequest servletRequest, javax.servlet.http.HttpServletResponse servletResponse)
Handles servlet page requests.void
doPost(javax.servlet.http.HttpServletRequest servletRequest, javax.servlet.http.HttpServletResponse servletResponse)
Calls doGet with arguments.void
init()
Servlet initializationprotected WicketFilter
newWicketFilter()
-
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service
-
-
-
-
Field Detail
-
wicketFilter
protected transient WicketFilter wicketFilter
The WicketFilter where all the handling is done
-
-
Constructor Detail
-
WicketServlet
public WicketServlet()
-
-
Method Detail
-
doGet
public final void doGet(javax.servlet.http.HttpServletRequest servletRequest, javax.servlet.http.HttpServletResponse servletResponse) throws javax.servlet.ServletException, IOException
Handles servlet page requests.- Overrides:
doGet
in classjavax.servlet.http.HttpServlet
- Parameters:
servletRequest
- Servlet request objectservletResponse
- Servlet response object- Throws:
javax.servlet.ServletException
- Thrown if something goes wrong during request handlingIOException
-
doPost
public final void doPost(javax.servlet.http.HttpServletRequest servletRequest, javax.servlet.http.HttpServletResponse servletResponse) throws javax.servlet.ServletException, IOException
Calls doGet with arguments.- Overrides:
doPost
in classjavax.servlet.http.HttpServlet
- Parameters:
servletRequest
- Servlet request objectservletResponse
- Servlet response object- Throws:
javax.servlet.ServletException
- Thrown if something goes wrong during request handlingIOException
- See Also:
doGet(HttpServletRequest, HttpServletResponse)
-
init
public void init() throws javax.servlet.ServletException
Servlet initialization- Overrides:
init
in classjavax.servlet.GenericServlet
- Throws:
javax.servlet.ServletException
-
newWicketFilter
protected WicketFilter newWicketFilter()
- Returns:
- The wicket filter
-
destroy
public void destroy()
Servlet cleanup.- Specified by:
destroy
in interfacejavax.servlet.Servlet
- Overrides:
destroy
in classjavax.servlet.GenericServlet
-
-