【仅供内部供应商使用,不提供对外解答和培训】
【仅供内部供应商使用,不提供对外解答和培训】
无
package com.fr.stable.web; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Created by richie on 16/8/9. * 请求接收器 */ public interface RequestCMDReceiver { /** * cmd参数值 * @return cmd参数值 */ String getCMD(); /** * 执行 * @param req http请求 * @param res http应答 * @param sessionID 会话ID * @throws Exception 处理失败则抛出异常 */ void actionCMD(HttpServletRequest req, HttpServletResponse res,String sessionID) throws Exception; /** * 执行请求 * @param req http请求 * @param res http响应 * @throws Exception 处理失败则抛出异常 */ void actionCMD(HttpServletRequest req, HttpServletResponse res) throws Exception; }
在早期的帆软报表产品中,所有的服务请求都是通过op和cmd参数来指定的。这个接口也就是基于这个设定产生的早期接口。不独立使用,常用来配合WebService接口实现web服务的申明。
String getCMD(); 方法指定了该请求具体绑定的cmd参数。需要注意的是,同一个op下的每一个cmd不能重复,一旦重复分发器先匹配到哪个cmd就执行哪个。
void actionCMD(HttpServletRequest req, HttpServletResponse res,String sessionID) 和 void actionCMD(HttpServletRequest req, HttpServletResponse res) 两个方法中并不是都要实现的,需要根据我们的场景选择其中一个实现
如果我们分发器使用的是WebActionsDispatcher.dealForActionNoSessionIDCMD则我们直接实现RequestCMDReceiver派生的NoSessionActionCMD即可,只用实现其中的void actionCMD(HttpServletRequest req, HttpServletResponse res) 即可。
否则选择实现void actionCMD(HttpServletRequest req, HttpServletResponse res,String sessionID)
demo地址:demo-web-service
com.fr.web.core.ActionNoSessionCMD
com.fr.stable.fun.RequestInterceptor
com.fr.web.core.WebActionsDispatcher
免责声明:所有文档中的开源示例,均为开发者自行开发并提供。仅用于参考和学习使用,开发者和官方均无义务对开源案例所涉及的所有成果进行教学和指导。若作为商用一切后果责任由使用者自行承担。