我是新手,想了解Wicket框架的工作原理。
在普通的Java应用程序中,程序计数器从主方法开始。为了从一开始就了解应用程序,我通常会在该方法的开头设置eclipse断点,并逐步进行调试。
我的问题是,当启动Wicket应用程序时,首先发生什么?如何按顺序跟踪一些Wicket应用程序?
我是新手,想了解Wicket框架的工作原理。
在普通的Java应用程序中,程序计数器从主方法开始。为了从一开始就了解应用程序,我通常会在该方法的开头设置eclipse断点,并逐步进行调试。
我的问题是,当启动Wicket应用程序时,首先发生什么?如何按顺序跟踪一些Wicket应用程序?
Wicket是一个Java Web应用程序框架,因此您首先需要了解一些Java知识。有关此内容的入门信息,请参阅Java EE教程。
在Web应用程序服务器的某个位置,实际上有一个主方法在服务器启动时运行。但是与使用Wicket编写的Web应用程序的连接非常松散。
当您编写和构建Wicket应用程序时,您需要创建一个描述如何加载您的应用程序的web.xml文件,以便将其发送给Web应用程序容器。这通常包括对WicketFilter
和对您的应用程序子类WebApplication的引用。
WicketFilter
类拦截请求并将其发送到您的应用程序。
有关此过程的更详细说明,请参见Wiki页面Wicket应用程序生命周期。
现在有许多关于Wicket的书:
https://wicket.apache.org/learn/books/index.html
此外,网站上的参考指南非常完整:https://ci.apache.org/projects/wicket/guide/9.x/single.html
请特别查看“请求处理的内部机制”和“组件生命周期”这两个部分:https://ci.apache.org/projects/wicket/guide/9.x/single.html#_under_the_hood_of_the_request_processing https://ci.apache.org/projects/wicket/guide/9.x/single.html#_components_lifecycle
这应该可以让你对发生的事情有一个相当好的了解。但是,再次强调,你真的不需要知道任何这些东西才能很好地使用这个框架。你的Wicket应用程序依赖于web.xml文件的配置。因此,你需要在web.xml文件中指定Wicket过滤器,并将代表Wicket入口点的自定义类传递给它们,该类(WicketApplication
)必须扩展自WebApplication
类。
<filter>
<filter-name>wicket.quickstar-wicket-example</filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>com.quickstar.wicket.example.WicketApplication</param-value>
</init-param>
</filter>
WicketApplication
)中,您需要覆盖某些方法:@Override
public Class<? extends WebPage> getHomePage()
{
return HomePage.class;
}
你的HomePage.class
将是当你访问页面URL时返回的网页主页。除了HomePage.java
,你必须在同一包中、同一级别下拥有HomePage.html
。