保存用户状态的必要性:因为不可能每次操作都来验证一下用户身份的合法性,所以在用户登录通过验证后,需要在服务器端保存一些用户的状态信息,直到用户退出。
但这在SOAP这一层,就面临以下几个问题:1、当用户在不同的service之间跳转时,服务器端如何获得用户的状态信息?
(在http层,可以用HttpSession保存)
2、当用户断线或长时间不做操作时,怎样清除服务器端保存的状态信息?
(在http层,可以用session timeout机制来实现)好像除了在http这一层做一些操作以外,其他都很难做到。当然,也可以将信息保存到客户端,然后每次通过soap头来携带这些信息,将其在客户端和服务器端同步。可这样面临的问题是:1、信息诈骗的危险,客户端有可能冒充登录信息而进入系统;
2、每次通讯都要携带状态信息,如果状态信息比较多的话,对系统的性能会有一定影响。