GWT中的HTTP请求

时间:2016-06-10 13:01:06

标签: java http gwt rpc

我必须了解整个RPC机制,因为我需要它用于我自己的项目,尤其是即将到来的考试。

def print_a_to_y(lev):
    palindrome=""
    counter=0
for i in range (ord('a'),ord('z')):
    if counter<=lev:
        palindrome = palindrome+ chr(i)
        counter+=1
    else:
        pass
return palindrome

def print_y_to_a(cut):
    palindrome=""
for i in range (ord('z'),ord('a')-1, -1):
    palindrome =  palindrome + chr(i)
return palindrome[-cut:]

def palin (lev):
    paal = print_a_to_y(lev) + print_y_to_a(lev)
return paal

def pyramid (levels=15):
    res=""
for i in range (levels):
    if i==0:
        res=print_a_to_y(i)+"\n"
    elif i>0:
        res= res + str(palin(i)) + "\n"
    else:
        pass
return res

print pyramid()

“RemoteServiceRelativePath ...”部分总是令我困惑。我不明白它如何与HTTP URL一起工作以及HTTP请求如何工作。我是初学者,如果有人在这里向我解释,那真的很酷:)提前谢谢!

2 个答案:

答案 0 :(得分:1)

对我来说,最令人困惑的部分是如何使用@RemoteServiceRelativePath("message")以及我必须在web.xml中添加的内容。

  <servlet-mapping>
    <servlet-name>greetServlet</servlet-name>
    <url-pattern>/sample/greet</url-pattern>
  </servlet-mapping>

因此,在这种情况下,网址/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;
}

这不是回答你所有的问题,但也许它可以帮助你

答案 1 :(得分:0)

1)在Eclipse中配置GWT插件

2)创建Google Web应用程序项目

2.1)命名项目

2.2)给出包结构(可选)

2.3)取消选中App Engine复选框

2.4)单击“完成”

3)GWT项目是使用标准包结构创建的

客户端(UI)

服务器(Servlets)

共享(在客户端和服务器之间共享,是放置模型的理想位置)

4)此示例项目将由Default

创建GreetingService

我将详细解释RPC机制

要从客户端(浏览器)与服务器(Web服务器)进行通信,我们需要一个servlet和Web应用程序 我们在web.xml中映射我们的servlet

在我们的Sample项目中,我们有一个Greeting Servlet,我们需要在web.xml中映射

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;
}

回调是我们将获得响应的参数

<强>参考

http://h2g2java.blessedgeek.com/2010/02/tutorial-gwt-rpc-stub-modified-with.html

http://www.gwtproject.org/doc/latest/tutorial/RPC.html

希望这会有所帮助!!