// 주석 구성 dwr servletprivate void initializedwrservlet (servletcontext 컨테이너) {dwrservlet dwrservlet = new dwrservlet (); servletregistration.dynamic dynamic = container.addservlet ( "dwr-invoker", dwrservlet); dynamic.setamic. (2); "true"); dynamic.setinitparameter ( "pollandcometenabled", "true"); dynamic.setinitparameter ( "activeReverseajaxEnabled", "true"); dynamic.setinitParameter ( "maxWaitAfterWrite"); dynamam.setInitParameter ( "DistronnetTime", "60000"); dynamic.setinitparameter ( "classs", dwrannotationclasssconfiguration ()); dynamic.addmapping ( "/dwr/*");} // DWR 주석 클래스 구성, 쉼표 분리 문자열 dwrannotationClassSconfiguration () {StringBuffer config = new StringBuffer (); config.append ( "com.g360.bean.reconsole.opcost.annualopCostrequestController"); config.append ( ","); config.append ( "com.g360.bean.security.sessionexpiredparam"); return config.tostring ();};上面我的配置是基于注解版的 DWR 서블릿 wr (将 web.xml 里面的 서블릿 配置转换为了纯 java 代码配置), 当然也包括前端和后端直接交互的类 (
com.g360.bean.reconsole.opcost.angualopcostrequestcontroller, com.g360.bean.security.sessionexpiredparam
) 注解配置 (dwr 也是使用注解配置的, 包括@remoteproxy,@remotemethod), 这对于有些注解配置基础的同学来说可能比较容易看懂, 对于初次接触的有什么不懂的可以给我留言哦; 对于初次接触的有什么不懂的可以给我留言哦;
com.g360.bean.security.sessionexpiredparam 的注解配置如下所示 :
@Component ( "SessionExpiredParam") @RemoteProxy (Creater = SpringCreator.class, Scope = ScriptScope.application, name = "remote", creatorparams = @param (name = "beanname"), value = "sessionexpiredpiredpiredparam {private static hintpiredparam =" loggerfactory.getLogger (SessionExpiredParam.class); public boolean issessionexpire (String sessionId) {return null == constantCacheservice.getCacheConstant (sessionId); } @remotemethod public void setenabledwrupdate (String sessionId) {scriptsession scriptsession = webContextFactory.get (). getScriptTession (); String jsessionId = scriptsession.gethttpsessionid (); 문자열 dwrsessionId = scriptsession.getId (); logger.info (string.format ( "set jsessionid = [%s], dwrsession = [%s] 푸시 enabled", jsessionid, dwrsessionid)); constantCacheservice.putCacheConstant (constants.push_id+jsessionId, dwrsessionId); }}这就是相当于 dwr.xml 配置文件中如下所示 :
<! docType dwr public "-// getahead limited // dtd Direct Web Remoting 3.0 // en" "http://getahead.org/dwr/dwr30.dtd"> <dwr> <creater> <creater = "new"javascrip = "remote"scope = "application"> <calep name = "class" value = "com.g360.bean.security.sessionexpiredparam"/> </create> </allow> </dwr>
com.g360.bean.reconsole.opcost.angualopcostrequestcontroller 来说道理一样, 这里就不多做说明了;
对于使用 dwrservlet 来说要使用纯注解配置 (不使用 dwr.xml) 一定要注意在初始化参数时一定要配置 클래스 클래스 这个参数 这个参数, 而且这个参数是这个注解类的全路径名, 有多个的话就使用逗号分隔 有多个的话就使用逗号分隔, 这个是特别重要的哦, 因为 dwr3.0 好像还不支持包扫描 好像还不支持包扫描, 不知道是需要什么配置才能实现还是怎么的, 如果有哪位仁兄正好看见, 也正好知道的话请留言麻烦告诉一下, 感激不尽啊!欢迎大家有什么不明白的地方或者有什么不对的地方, 请随时留言; 请随时留言;