我必须了解整个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请求如何工作。我是初学者,如果有人在这里向我解释,那真的很酷:)提前谢谢!
答案 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
希望这会有所帮助!!