4

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

在普通的 Java 应用程序中,程序计数器从 main 方法开始。为了从头了解应用程序,我通常将eclipse断点放在该方法的开头,然后一步一步地进行。

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

4

3 回答 3

10

Wicket 是一个 Java Web 应用程序框架,所以首先你必须了解一下。首先,请查看Java EE 教程

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

当您编写和构建一个 wicket 应用程序时,您要做的一件事是创建一个 web.xml 文件,该文件向 Web 应用程序容器描述如何加载您的应用程序。这通常包括对WicketFilter应用程序的WebApplication子类的引用和引用。

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

此过程的更详细描述在Wicket 应用程序的 wiki 页面 LifeCycle 上

于 2012-12-09T16:37:42.287 回答
1

作为 Apache Wicket 的原始创建者,我建议您尽可能远离 Java EE。Wicket 背后的驱动理念是将面向对象的编程引入网络。还有其他框架可以做到这一点,但 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

这应该让你对所发生的事情有一个很好的了解。但同样,你真的不需要知道任何这些东西就可以很好地利用这个框架。

——乔恩

于 2020-08-04T17:57:48.810 回答
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;
}

当您点击页面的 URL 时,您HomePage.class将是作为主页返回的网页。除了HomePage.java,您还必须将 HomePage.html 放在同一个包中,处于同一级别。

于 2020-11-16T00:42:13.783 回答