Wicket与main方法相比(Wicket的工作原理是什么?)

3

我是新手,想了解Wicket框架的工作原理。

在普通的Java应用程序中,程序计数器从主方法开始。为了从一开始就了解应用程序,我通常会在该方法的开头设置eclipse断点,并逐步进行调试。

我的问题是,当启动Wicket应用程序时,首先发生什么?如何按顺序跟踪一些Wicket应用程序?


没有单一的入口,因此跟踪发生的事情和时间变得更加困难,您必须依赖文档(已由Don Roby链接)以及多个断点。但是,您会发现一旦了解了一般设置,就不必总是从头开始调试。 - biziclop
3个回答

10

Wicket是一个Java Web应用程序框架,因此您首先需要了解一些Java知识。有关此内容的入门信息,请参阅Java EE教程

在Web应用程序服务器的某个位置,实际上有一个主方法在服务器启动时运行。但是与使用Wicket编写的Web应用程序的连接非常松散。

当您编写和构建Wicket应用程序时,您需要创建一个描述如何加载您的应用程序的web.xml文件,以便将其发送给Web应用程序容器。这通常包括对WicketFilter和对您的应用程序子类WebApplication的引用。

WicketFilter类拦截请求并将其发送到您的应用程序。

有关此过程的更详细说明,请参见Wiki页面Wicket应用程序生命周期


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

这应该可以让你对发生的事情有一个相当好的了解。但是,再次强调,你真的不需要知道任何这些东西才能很好地使用这个框架。
-- Jon

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接