欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

wicket学习之WicketServlet

程序员文章站 2022-07-15 15:14:09
...
      org.apache.wicket.protocol.http.WicketServlet作为wicket请求处理的一个入口,我们有必对他的实现过程做一番了解。
      下面首先主要引用了Wicket API中对WicketServlet的描述,接着解读了他里面的init和doPost/doGet方法。
API中关于wicketServlet的解释:

1、如果需要进一步指定资源,可以需用WicketFilter作为程序的入口

2、web.xml中配置wicketServlet时需要指定applicationClassName初始化参数
进一步可以指定applicationFactoryClassName这个应用类的工厂方法
<init-param>
   <param-name>applicationFactoryClassName</param-name>
   <param-value>teachscape.platform.web.wicket.SpringApplicationFactory</param-value>
</init-param>
自定义的applicationFactory需要实现接口 IWebApplicationFactory.

3、在web.xml文件中,可以指定不需要处理的路径,通过指定初始化参数ignorePaths实现
<init-param>
   <param-name>ignorePaths</param-name>
   <param-value>/images/products/,/documents/pdf/</param-value>
</init-param>

4、如果需要使用servlet的规范。可以在wicketServlet类的Init方法中实现,
为了提供对其他框架的支持,这个类没有设计成final类。

wicketServlet方法init解读:

wicketServlet 中维护了一个wicketFilter属性
wicketServlet 的init方法实际上是初始化了wicketFilter,新建wicketFilter,调用filter.init();

wicketServlet方法doGet/doPost解读:
wicketFilter.doGet(servletRequest, servletResponse);
wicketFilter.doGet(servletRequest, servletResponse);

结论:wicketServlet 将对请求的处理放到了WicketFilter中,想了解Wicket 对请求的详细处理过程,可以仔细研究WicketFilter这个类。