AJAX还是通过HTTP协议走的,所以request,response,session照样适用,而且也没有必要放在客户端控制,还是放在服务器端控制。和传统B/S唯一不同的是,B/S的Web Action提供了request,response,session对象的访问接口,而改成AJAX,服务器端业务层bean没有提供这三个对象的访问接口而已(特别是很多情况下需要request,session对象的访问)。
这个问题的解决非常简单,考察一下Webwork的ServletDispatcher就可以得知,webwork在接到客户端请求以后,在 Servlet Controller处就把response,resquest,session等对象放进ThreadLocal里面,后续代码可以随时取到。
因此只需要把webwork的封装代码copy过来,自己写一个ServletFilter(或者初始化的Servlet)去做这件事情就搞定了。
特别值得一提的是,甚至没有必要直接在业务bean里面进行状态管理和权限控制,写一个interceptor去做这些事情就行了。
说白了,就是copy webwork的代码,把它搬到业务层而已。
这个问题的解决非常简单,考察一下Webwork的ServletDispatcher就可以得知,webwork在接到客户端请求以后,在 Servlet Controller处就把response,resquest,session等对象放进ThreadLocal里面,后续代码可以随时取到。
因此只需要把webwork的封装代码copy过来,自己写一个ServletFilter(或者初始化的Servlet)去做这件事情就搞定了。
特别值得一提的是,甚至没有必要直接在业务bean里面进行状态管理和权限控制,写一个interceptor去做这些事情就行了。
说白了,就是copy webwork的代码,把它搬到业务层而已。