GWT 中的 HTTP 请求
Posted
技术标签:
【中文标题】GWT 中的 HTTP 请求【英文标题】:HTTP Request in GWT 【发布时间】:2016-06-10 13:01:05 【问题描述】:我必须了解整个 RPC 机制,因为我自己的项目需要它,尤其是即将到来的考试。
@RemoteServiceRelativePath("message")
public interface MessageService extends RemoteService
Message getMessage(String input);
“RemoteServiceRelativePath...”部分总是让我感到困惑。我不明白它是如何与 HTTP URL 一起工作的,以及 HTTP 请求是如何工作的。我是初学者,如果有人能向我解释一下,那就太好了:)提前谢谢!
【问题讨论】:
你看过这个文档了吗gwtproject.org/doc/latest/tutorial/RPC.html 【参考方案1】:对我来说最令人困惑的部分是如何使用@RemoteServiceRelativePath("message")
以及我必须在 web.xml 中添加的内容。
<servlet-mapping>
<servlet-name>greetServlet</servlet-name>
<url-pattern>/sample/greet</url-pattern>
</servlet-mapping>
所以在这种情况下,url /sample/greet
由两个字符串组成:
sample
来自您的模块名称,您可以在 *.gwt.xml 文件中找到它。
<module rename-to='sample'>
...
</module>
其中的greet
部分来自@RemoteServiceRelativePath("greet")
@RemoteServiceRelativePath("greet")
public interface GreetingService extends RemoteService
String greetServer(String name) throws IllegalArgumentException;
这并不能回答你所有的问题,但也许它对你有帮助
【讨论】:
【参考方案2】:1) 在 Eclipse 中配置 GWT 插件
2) 创建 Google Web 应用程序项目
2.1) 为项目命名
2.2) 给出包结构(可选)
2.3) 取消选中 App Engine 复选框
2.4) 点击完成
3) 使用标准包结构创建 GWT 项目
客户端(用户界面)
服务器(Servlet)
共享(在客户端和服务器之间共享,放置模型的理想场所)
4) 此示例项目将默认创建 GreetingService
我会详细解释RPC机制
为了从客户端(浏览器)到服务器(Web 服务器)进行通信,我们需要一个 servlet 和 Web 应用程序 我们在 web.xml 中映射我们的 servlet
在我们的示例项目中,我们需要在 web.xml 中映射 Greeting Servlet
Snippet from web.xml
<servlet>
<servlet-name>greetServlet</servlet-name>
<servlet-class>com.server.GreetingServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>greetServlet</servlet-name>
<url-pattern>/sample/greet</url-pattern>
</servlet-mapping>
在服务器包中 我们有 servlet GreetingServiceImpl,它扩展了 RemoteServiceServlet,其父类是 HttpServlet
public class GreetingServiceImpl extends RemoteServiceServlet implements
GreetingService
public String greetServer(String input) throws IllegalArgumentException
在客户端包中
我们确实有两个接口 GreetingService 和 GreetingServiceAsync
@RemoteServiceRelativePath("greet")
public interface GreetingService extends RemoteService
String greetServer(String name) throws IllegalArgumentException;
注意 servlet 的路径在 @RemoteServiceRelativePath 中给出
public interface GreetingServiceAsync
void greetServer(String input, AsyncCallback<String> callback)
throws IllegalArgumentException;
callback 是我们将在其中获取响应的参数
参考文献
http://h2g2java.blessedgeek.com/2010/02/tutorial-gwt-rpc-stub-modified-with.html
http://www.gwtproject.org/doc/latest/tutorial/RPC.html
希望这会有所帮助!
【讨论】:
以上是关于GWT 中的 HTTP 请求的主要内容,如果未能解决你的问题,请参考以下文章