我是Wicket的新手,想了解这个框架是如何运作的。
在普通的Java应用程序中,程序计数器在main方法中启动。为了从一开始就理解应用程序,我通常会在此方法的开头放置eclipse断点并继续步骤。
我的问题是,当Wicket应用程序启动时,首先会发生什么?如何在一些Wicket应用程序中遵循序列?
答案 0 :(得分:9)
Wicket是一个Java Web应用程序框架,所以首先你必须要了解一点。首先,请查看the Java EE tutorial。
在Web应用程序服务器的某个地方, 实际上是一个在服务器启动时运行的主要方法。但是与Wicket编写的Web应用程序的连接非常松散。
编写和构建wicket应用程序时,您要做的一件事就是创建一个web.xml文件,该文件向Web应用程序容器描述如何加载您的应用程序。这通常包括对WicketFilter
的引用以及对应用程序的WebApplication子类的引用。
WicketFilter
类拦截请求并将其发送到您的应用程序。
此过程的更详细说明位于Wiki页面LifeCycle of a Wicket Application上。
答案 1 :(得分:1)
作为Apache Wicket的原始创建者,我建议您尽可能远离Java EE。 Wicket背后的驱动思想是将面向对象的编程引入Web。还有其他框架可以执行此操作,但是Wicket非常擅长于此。这样一来,关于Wicket如何使用Servlet API来创建此抽象的所有这些琐碎的细节,您实际上都无需担心。如果您只是好奇并且真的想看看会发生什么,请在WicketServlet和/或WicketFilter中设置一个断点并逐步执行。
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
这应该为您提供很好的风味。但是同样,您真的不需要了解任何这些东西就可以充分利用框架。
-乔恩
答案 2 :(得分:0)
您的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。