我认为我的问题的答案是否定的。但是,我仍然想知道是否可以将 gwt applicaton 作为前端运行,例如在 Apache HTTPD 服务器上。编译gwt的想法是纯javascript,不需要java后端(如果我们不使用基于java的RPC)
4 回答
没有什么能阻止你。GWT 代码分为两部分;服务器端和客户端代码。正如您所说,客户端代码编译成纯 javascript,可以通过 httpd 轻松提供。
在服务器上使用 gwt 类的主要优点是,您通过 RPC 请求的数据将作为 java 对象到达您的客户端代码,而您无需进行任何工作。但是您可以使用RequestBuilder类或XMLHttpRequest轻松调用任何旧服务,如果您需要更多控制。
编辑:您应该做一些特殊的配置,以确保 httpd 与您的客户端 gwt 代码一起工作:
<Files *.nocache.*>
ExpiresDefault "access"
</Files>
<Files *.cache.*>
ExpiresDefault "now plus 6 months"
</Files>
这可以确保当您上传应用程序的新版本时,用户的浏览器会自动下载它,同时也确保他们不会在每次访问您的网站时下载整个应用程序。很有用。
你的观点是错误的。您可以创建一个仅为前端设计的 gwt 应用程序。要测试您可以执行以下操作
- 创建一个只有前端内容的示例 gwt 应用程序
- 编译和构建应用程序
- 将构建内容文件夹放在您的 Apache Web 目录中。
Ee :如果您创建了一个名为 的项目test-gwt
,则JS
和HTML
内容在test-gwt
目录中创建的war
目录中。 - 通过网络浏览器访问新应用程序,例如
http://localhost/test-gwt
希望这会有所帮助。
只要您不使用 gwt 编写您的服务器组件,这是可能的并且就像一个魅力。
这是一个简单的仅 gwt 客户端的htaccess 密码应用程序(目前只有德语)作为示例,我为好玩而编写了代码。
“我想知道是否可以将 gwt 应用程序作为前端运行,例如在 Apache HTTPD 服务器上”。
答案是不。GWT UI 前端根本不在任何服务器上运行。它仅在启用了 Javascript 的浏览器上运行。
但是,如果我忽略问题的语言语义并回答它的要点 - 答案是肯定的。请原谅我,但我认为你应该写的语言是
“是否可以从 Apache HTTPD 服务器提供 gwt 应用程序前端”。
只需将您的 servlet-less 战争部署到 HTTPD 上(删除 WEB-INF 文件夹)。
事实上,您甚至可以编写 RequestBuilder 请求来请求来自放置在 GWT 模块开发“公共”文件夹中的文件的静态 json 流。GWT 编译器会将“public”文件夹的内容复制到部署的应用程序根目录。
或者您可以使用 script-include 从另一台服务器获取 GWT 客户端对动态内容 jsonp 的请求——这不会在您的应用程序中创建任何 servlet。我在这里记录了脚本包含技术:http: //h2g2java.blessedgeek.com/2011/06/gwt-requestbuilder-vs-rpc-vs-script.html。