`
dchaoxiong
  • 浏览: 183410 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个GWT的RPC请求时常被忽略的原理

    博客分类:
  • GWT
阅读更多

RPC请求的就是一个HttpServlet,

因此我们处理客户端的并发和权限请求时,

不要忽略采用服务端的Session原理去验证客户端请求的身份和权限,

如同jsp请求一样,通过Session则可验证请求对象的身份和权限,

从而达到对某个服务的并发处理,

而不需要过多的其他参数来验证.

要常保持清晰的思路:RPC请求就是对Servlet请求,处理问题时就可以当作请求jsp或普通Servlet那样来处理.

 

例如我们网站项目中的某个RPC服务方法:

  /**
  * 未登录抛出异常
  * 
  * @throws ApplicationException
  */
 private void isVehicleLogin() throws ApplicationException {
	//这里虽然客户端的请求并未传递任何验证身份的参数过来,
	//但是RPC请求该方法时,就是通过Http请求Servlet而来的.
	//因此可以通过服务端的Session对象判断该请求是不是跟Session里面的客户端请求是不是同一个.
	//注意: 这样处理并发的方式一定要跟普通调用方法区分开来,
	//普通调用方法时一定要靠方法的参数来区分调用者的身份,
	//而Http请求Servlet的的服务方法时,则可以通过服务端的Session对象判断请求者的身份.
	//一定要区分好Servlet的服务方法与普通对象的方法
  	UserCore loginUserCore =  getHttpSession().getAttribute("login_user_code");
 	 if (loginUserCore == null) {
   		throw new ApplicationException("未登陆,非法操作");
  	}
 }

 

如果是普通对象的方法:

  /**
  * 未登录抛出异常
  * 
  * @throws ApplicationException
  */
 private void isVehicleLogin(int userID) throws ApplicationException {
//如果是普通对象的方法,在区分调用者的身份时,只能通过方法参数的形式去区分
  UserCore loginUserCore =  findUserCodeFromDB(userID);
  if (loginUserCore == null) {
   throw new ApplicationException("未登陆,非法操作");
  }
 }

 

 

 

分享到:
评论

相关推荐

    GWT RPC详细例子:代码加文档说明

    在GWT中,你需要定义一个服务接口,该接口的所有方法都将被暴露为远程调用。服务接口的实现位于服务器端,而客户端则有一个对应的“服务代理”类,用于发起RPC调用。例如,你可能有一个`UserService`接口,其中包含`...

    基于GWTRPC的通讯软件

    5. **通讯软件应用**:在"基于GWTRPC的通讯软件"中,GWTRPC可能被用来实现用户之间的即时消息传递、文件传输、在线状态同步等功能。源代码中的"Hw4"可能是作业或项目的第四部分,包含了GWTRPC通信机制的具体实现。 ...

    GWT-RPC-1.pdf

    在GWT-RPC中,首先需要定义一个客户端数据服务接口。这个接口将作为客户端和服务器通信的桥梁,定义了客户端可以调用的服务器端方法。这些方法可以接受任意类型的参数,包括字符串、数组、列表或自定义类等,并返回...

    spring-gwtrpc:GWT RPC服务的Spring集成

    < artifactId>spring-gwtrpc</ artifactId> < version>1.0.0</ version></ dependency>特征派遣到Spring BeanSpring GWT-RPC提供了一个简单的Servlet,它扩展了RemoteServiceServlet以将RPC请求分派到所需的Spring ...

    GWT-RPC.pdf

    根据提供的文件信息,我们可以深入...通过以上步骤,我们可以构建一个基于GWT-RPC的高效、易于维护的Web应用程序。这种方法不仅简化了开发过程,还使得开发者能够更加专注于业务逻辑的实现,而不是底层通信细节的处理。

    GWT发送HTTP请求简明教程

    3. 设置请求完成后的回调函数,通常是一个实现了`RequestCallback`接口的对象: ```java builder.setCallback(callback); ``` 4. 最后,调用`send()`方法发送请求: ```java try { builder.send(); } catch ...

    GWT-RPC-2.pdf

    处理异步方法是GWT-RPC中的一个关键概念。由于`onSuccess`和`onFailure`方法是异步执行的,它们的执行不受调用它们的代码块的控制。这为开发者提供了灵活性,但也增加了复杂性,尤其是在管理应用程序状态时。为了...

    gwt 练习 gwt学习

    GWT,全称为Google Web Toolkit,是一个开源的Java框架,用于构建高性能、可维护的富互联网应用程序(RIA)。GWT允许开发者使用Java语言编写客户端代码,然后通过编译器将其转换为优化过的JavaScript,以便在各种...

    Gwt连接数据库的案例

    因此,你需要在服务端创建一个Servlet或RPC服务,这个服务负责处理来自GWT客户端的请求,执行数据库查询,然后将结果返回给客户端。 1. **GWT RPC机制**:GWT Remote Procedure Call (RPC) 是一种用于客户端和...

    gwt简单服务端返回数据代码

    客户端请求,服务端返回数据完成,虽然代码很简单,但代表这整个GWT流程;接下来就需要熟悉GWT各种控件、面板、样式等。 具体说明可参考:http://blog.csdn.net/chiperfect/article/details/7666102

    GWT中的xmlHttpRequest

    首先,XMLHttpRequest是Web开发中的一个基础组件,它允许浏览器在不刷新整个页面的情况下向服务器发送请求并接收响应。在GWT中,这个功能被包装在`com.google.gwt.http.client.RequestBuilder`类中,提供了发送GET和...

    一个简单的GWT示例

    对于初学者,这是一个很好的机会来了解GWT的工作原理,如何创建UI,以及如何与服务器进行通信。通过查找并修复这个BUG,可以提高对GWT框架的理解,并且提升解决实际问题的能力。建议先阅读GWT的官方文档,理解基本...

    GWT快速开发(GWT) 是一个Java软件开发框架用于开发类似于Google Maps和Gmail的AJAX应用程序。GWT的设计参考Java AWT包设计,类命名规则、接口设计、事件监听等。你可以用Java编程语言开发你的界面,然后用GWT编译器将Java类转换成适合浏览器执行的...

    - **入口点(EntryPoint)**: 每个GWT模块都有一个主类,这个类必须实现`com.google.gwt.user.client.rpc.EntryPoint`接口,并且有一个`onModuleLoad()`方法作为应用程序的启动点。 2. **开发流程**: - 使用Java...

    GWT Demo,GWT学习时的一些小例子

    例如,一个示例可能展示了如何创建一个按钮控件,当用户点击按钮时,通过GWT的RPC机制向服务器发送请求,获取数据并更新页面上的显示。另一个示例可能涉及使用GWT的Composite类来组合多个Widget,创建自定义的复杂...

    GWT入门 GWT中文教程

    首先,EXT-GWT2.0.1是EXT-GWT(GWT-Ext)的一个版本,它是基于GWT的组件库,提供了丰富的用户界面组件,如表格、树形视图、菜单等,使得开发者可以构建出具有桌面级用户体验的Web应用。EXT-GWT的API和DOC文档对于...

    gwt实例,基于gwt-windows-1.5.2

    GWT 1.5.2发布于2008年,虽然现在已经比较过时,但对于初学者来说,它仍然是一个理解GWT基本概念和工作原理的好起点。 GWT的核心理念是通过Java编写客户端代码,然后自动编译为高效的JavaScript,使得开发者可以...

    gwt-servlet-2.3.0.jar

    GWT(Google Web Toolkit)是一个开源的Java开发框架,它允许开发者使用Java语言来编写客户端的Web应用程序。GWT-Servlet是GWT框架的一部分,主要负责处理服务器端的交互。`gwt-servlet-2.3.0.jar`是GWT 2.3.0版本的...

    GWT一个页面包含多个模块时出现的问题

    标题 "GWT一个页面包含多个模块时出现的问题" 指的是在使用Google Web Toolkit (GWT) 开发Web应用时,遇到的当一个页面需要加载多个模块时可能产生的技术挑战。GWT是一种用于构建高性能JavaScript应用程序的Java框架...

    GWT打包学习资料

    **GWT(Google Web Toolkit)** 是一个由Google开发的开放源代码JavaScript开发框架,它允许Java开发者使用Java语言来编写Web应用程序,并自动将其编译为优化过的JavaScript代码,从而在浏览器端运行。GWT提供了丰富...

    GWT中文教程(入门进阶)

    **GWT(Google Web Toolkit)** 是一个由Google开发的开源JavaScript开发框架,它允许Java开发者使用Java语言来编写Web应用程序,并自动生成优化过的JavaScript代码。GWT的主要目标是简化复杂的Web开发过程,提高...

Global site tag (gtag.js) - Google Analytics