`
pengsuyun
  • 浏览: 14912 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

wicket学习之WicketFilter(一)

阅读更多
       深入WicketFilter源码学习,两个步骤,首先引用API中WicketFilter的描述,对WicketFilter做一个简单的介绍;接着从代码层面着手,剖析WicketFIlter。WicketFilter中init方法用来初始化应用资源,doFilter代理doGet方法,处理实际的Wicket请求。本篇文章主要对WicketFilter的init方法进行了深入了解。

API中wicketFilter的解释:
WicketFilter 用来处理wicket请求。
使用WicketFilter处理请求的优势:可以对Wicket 请求有选择性的处理。比如,wicket请求image资源,WicketFiler可以选择不处理。

属性说明:
FILTER_MAPPING_PARAM:给出定制web.xml的路径

init(FilterConfig filterConfig)
init(FilterConfig) goes through a series of steps of steps to initialise:
   1. Sets up ignore paths   //initIgnorePaths(filterConfig);
       值的格式:/images/products/,/documents/pdf/
       处理的时候去掉了开头的/
       然后将值保存在 Set<String> ignorePaths中

   2. Records class loaders
       指定类加载器,加载web.xml文件。
  
   3. Finds the filter's path - filterPath
       通过处理web.xml文件,获得filterPath
       关键方法:getFilterPath(filterConfig.getFilterName(), is)
  
   4. Sets up the IWebApplicationFactory and WebApplication for this filter, including it's initialisation.
       Creates the web application factory instance.
       通过初始化参数applicationFactoryClassName指定定制的applicationFactory
       否则创建默认:ContextParamWebApplicationFactory()
  
       通过指定applicationClassName参数,创建Class.forName(applicationClassName, false, loader).newInstance()
  
   // Store instance of this application object in servlet context to
// make integration with outside world easier
String contextKey = "wicket:" + filterConfig.getFilterName();
filterConfig.getServletContext().setAttribute(contextKey, webApplication);
  
   // set the application thread local in case initialization code uses it
Application.set(webApplication);

// Call internal init method of web application for default
// initialization
webApplication.internalInit();

webApplication.init();(默认的WebApplication中init方法是没有提供实现的)
下面是webApplication.init()的一段说明,供参考
/**
* Initialize; if you need the wicket servlet for initialization, e.g. because you want to read
* an initParameter from web.xml or you want to read a resource from the servlet's context path,
* you can override this method and provide custom initialization. This method is called right
* after this application class is constructed, and the wicket servlet is set. <strong>Use this
* method for any application setup instead of the constructor.</strong>
*/

重点:
1、you can override this method and provide custom initialization
2、将app的一些setup放在init方法中
  
   5. Initialise WebApplication request listeners.
   调用org.apache.wicket.Initializer的init()
   org.apache.wicket.extendsions.Initializer的init()
   6. Log start of Application
   记录应用开始
   7. Detect if running in a Portlet context and if so intialise the WicketFilterPortletContext
      portlet应用初始化

本篇对WicketFIlter的介绍,到此就结束了。
本人对WicketFilter有几个不是很清楚的地方:
1、wicket commponent的呈现,
2、wicketFilter对请求的具体处理过程,
3、Wicket作为一个事件驱动型框架,里面注册了一系列的监听器,目前还没做深入了解。
有兴趣的朋友,可以一起交流。
我的QQ:497724941
分享到:
评论

相关推荐

    实战wicket学习总结

    在近3年的wicket项目时间后的总结,包括有很多wicket的代码规范,及注意事项。

    wicket学习

    wicket学习的简介,有大概得描述和一些简单的例子

    wicket文档

    wicket学习文档

    wicket7教程

    wicket7的使用教程,免去后端程序员编写javascript的烦恼,很实用的教程!

    Wicket 1.4 开发手记(一) helloworld与环境配置

    Wicket 1.4 开发手记(一) helloworld与环境配置

    wicket 学习文档

    Wicket 是什么?简单点说,它是一个基于Java 的Web 开发框架,与Struts,WebWork, Tapestry 相类似。其特点在于对Html 和代码进行了有效的分离(有利于程序员和美工的合 作),基于规则的配置(减少了XML 等配置...

    wicket指南

    wicket开发指南,wicket 新型的web开发框架,现以能无逢支持jsr168/286

    Wicket开发指南.pdf

    Wicket开发指南 Wicket开发指南 Wicket开发指南

    wicket开发详解

    开发详解想写一份这样的Wicket 文档,源于2005 年中,那是用Wicket1.0 完成了第一个项目以 后的想法,觉得如此好的一个Web 框架,应该让更多的开发人员了解和使用它。因此在 05 年9 月份的时候开始了这份文档的初稿...

    apache-wicket

    Wicket has been around since 2004 and it has been an Apache project since 2007. During these years it has proved to be a solid and valuable solution for building enterprise web applications. Wicket ...

    Wicket.pdf(Wicket开发指南)

    Wicket,有一个优秀的Web框架。和Struts和Webwork类似的Java WEB开发框架。优点在于对HTML和业务代码进行了有效的分离(流行的WEB框架大多如此)。基于规则的配置(有效减少了XML配置文件的使用,与Spring相比,...

    《Wicket开发指南一书》PDF版本下载

    Wicket吸收了Tapestry的一部分内容,但我最喜欢的就是,它是基于规则的,而并非XML配置的方式,这不仅有利于程序员学习,对系统的维护及开发规范都很有效,毕竟XML的编写并不见得就比写一段程序来得更容易。...

    wicket国际化例子

    wicket国际化例子 含有wicket:message StringResourceModel 等读取properties资源文件的代码示例

    wicket 开发指南 doc

    wicket 开发指南 比较全面的介绍wicket的使用

    wicket 基础知识培训

    wicket 基础知识培训,主要是讲解wicket入门知识,通过和struts比较来进行讲解。

    wicket 6.x api.chm wicket帮助文档

    wicket 6.x api.chm wicket帮助文档

    Wicket开发指南-简体版

    wicket是一个基于java的web框架,java平台的asp.net 学习曲线低,大大提高开发效率.

    wicket的tree的简单实例

    这是继wicket的简单实例之后,关于tree的简单用法,初学者可以下载下来学习如何生成树,以及树的使用

    wicket_mvn库

    wicket编译所需的maven库,搬运

Global site tag (gtag.js) - Google Analytics