一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Dwr3.0純注解(純Java Code配置)配置與應用淺析一之零配置文件化

Dwr3.0純注解(純Java Code配置)配置與應用淺析一之零配置文件化

2020-04-21 11:35源-代碼 JAVA教程

Dwr對我來說最重要的功能點就是反向Ajax調用,通俗來將就是后端可以直接調用前端的JS方法(只要在所能訪問的范圍內),這也就是Dwr的真正來由,當然它也有最基本的前端直接調用后端的特性,省去了我們經常的一般Ajax調用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//Annotation configuration dwr servletprivate void initializeDwrServlet(ServletContext container)
{DwrServlet dwrServlet = new DwrServlet();
ServletRegistration.Dynamic dynamic = container.addServlet("dwr-invoker", dwrServlet    );
dynamic.setLoadOnStartup(2);
dynamic.setInitParameter("debug", "true");
dynamic.setInitParameter("pollAndCometEnabled", "true");
dynamic.setInitParameter("activeReverseAjaxEnabled", "true");
dynamic.setInitParameter("maxWaitAfterWrite", "1800000");
dynamic.setInitParameter("disconnectedTime", "60000");
dynamic.setInitParameter("classes", dwrAnnotationClasssConfiguration());
dynamic.addMapping("/dwr/*");}
// Configure Dwr Annotation Classes,comma separatedprivate String 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 Servlet配置(將web.xml里面的servlet配置轉換為了純Java代碼配置),當然也包括前端和后端直接交互的類(

com.g360.bean.reconsole.opcost.AnnualOpCostRequestController,com.g360.bean.security.SessionExpiredParam

)也是使用注解配置的(Dwr注解配置,包括@RemoteProxy,@RemoteMethod),這對于有些注解配置基礎的同學來說可能比較容易看懂,對于初次接觸的有什么不懂的可以給我留言哦;

com.g360.bean.security.SessionExpiredParam的注解配置如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
@Component("sessionExpiredParam")
@RemoteProxy(creator = SpringCreator.class, scope = ScriptScope.APPLICATION, name = "remote", creatorParams = @Param(name = "beanName", value = "sessionExpiredParam"))
 public class SessionExpiredParam{
private static final Logger LOGGER = LoggerFactory.getLogger(SessionExpiredParam.class);
public boolean isSessionExpire (String sessionId) {
return null == ConstantCacheService.getCacheConstant(sessionId); }
 @RemoteMethod public void setEnableDwrUpdate(String sessionId) {
  ScriptSession scriptSession = WebContextFactory.get().getScriptSession();
 String jsessionId = scriptSession.getHttpSessionId();
String dwrSessionId = scriptSession.getId();
LOGGER.info(String.format("set jsessionId = [%s],dwrsession = [%s] push enabled",jsessionId,dwrSessionId));
ConstantCacheService.putCacheConstant(Constants.PUSH_ID+jsessionId, dwrSessionId);
} }

這就是相當于dwr.xml配置文件中如下所示:

?
1
2
3
4
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd"><dwr>
<allow> <create creator="new" javascript="remote" scope="application"
 <param name="class" value="com.g360.bean.security.SessionExpiredParam"/>
 </create> </allow></dwr>

對于com.g360.bean.reconsole.opcost.AnnualOpCostRequestController來說道理一樣,這里就不多做說明了;

對于使用DwrServlet來說要使用純注解配置(不使用dwr.xml)一定要注意在初始化參數時一定要配置 classes這個參數,而且這個參數是這個注解類的全路徑名,有多個的話就使用逗號分隔,這個是特別重要的哦,因為Dwr3.0好像還不支持包掃描,不知道是需要什么配置才能實現還是怎么的,如果有哪位仁兄正好看見,也正好知道的話請留言麻煩告訴一下,感激不盡啊!歡迎大家有什么不明白的地方或者有什么不對的地方,請隨時留言;

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 天堂男人在线 | 欧美jjvideo| 国产精品片 | 91中文字幕yellow字幕网 | 成人网免费视频 | 久热这里只有精品99国产6 | 扒开双腿羞辱调教play视频 | va在线视频 | 精品视频久久久久 | 明星裸乳照无奶罩 | 女子监狱第二季在线观看免费完整版 | 男人综合网 | 九9热这里真品 | 91国内精品| 天天爽天天干天天操 | 亚洲 日韩 在线 国产 视频 | 国产不卡视频 | 精品国产人妻国语 | 国产精品视频在这里有精品 | 手机在线免费观看视频 | 羞羞麻豆国产精品1区2区3区 | 毛片大全免费看 | 亚洲国产成人在线视频 | 久热在线这里只有精品7 | 操mm | 亚洲国产精品婷婷久久久久 | 果冻传媒天美传媒在线小视频播放 | 免费观看欧美性一级 | 青青久久久| 亚洲国产自拍在线 | 动漫美女强行被吸乳做羞羞事 | 精品视频99| 亚洲欧洲网站 | 女王脚奴vk | 调教女帝 | 被调教的校花 | 日本连裤袜xxxxx在线视频 | 亚洲高清中文字幕精品不卡 | 窝窝午夜理伦影院 | 校园全黄h全肉细节文 | 91私密保健女子养生spa |