Wicket与主要方法(Wicket如何工作?)

时间:2012-12-09 13:49:06

标签: java wicket main

我是Wicket的新手,想了解这个框架是如何运作的。

在普通的Java应用程序中,程序计数器在main方法中启动。为了从一开始就理解应用程序,我通常会在此方法的开头放置eclipse断点并继续步骤。

我的问题是,当Wicket应用程序启动时,首先会发生什么?如何在一些Wicket应用程序中遵循序列?

3 个答案:

答案 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。