23456<" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

DWR源碼學(xué)習(xí)(一)

系統(tǒng) 2061 0
DWR一個(gè)外國(guó)人實(shí)現(xiàn)的很有前途的AJAX框架。
多余的話就不說(shuō)了,請(qǐng)看DWR的例子程序:
web.xml
?1 <? xml?version="1.0"?encoding="ISO-8859-1" ?>
?2 <! DOCTYPE?web-app?PUBLIC?"-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN"?"http://java.sun.com/dtd/web-app_2_3.dtd" >
?3
?4 < web-app? id ="dwr" >
?5
?6 ?? < display-name > DWR?(Direct?Web?Remoting) </ display-name >
?7 ?? < description > A?demo?of?how?to?call?Java?on?the?server?directly?from?Javascript?on?the?client </ description >
?8
?9 ?? < servlet >
10 ???? < servlet-name > dwr-invoker </ servlet-name >
11 ???? < display-name > DWR?Servlet </ display-name >
12 ???? < description > Direct?Web?Remoter?Servlet </ description >
13 ???? < servlet-class > uk.ltd.getahead.dwr.DWRServlet </ servlet-class >
14 ???? <!--
15 ????<init-param>
16 ??????<param-name>config</param-name>
17 ??????<param-value>WEB-INF/dwr.xml</param-value>
18 ????</init-param>
19 ???? -->
20 ???? < init-param >
21 ?????? < param-name > debug </ param-name >
22 ?????? < param-value > true </ param-value >
23 ???? </ init-param >
24 ???? < init-param >
25 ?????? < param-name > scriptCompressed </ param-name >
26 ?????? < param-value > false </ param-value >
27 ???? </ init-param >
28 ???? < load-on-startup > 1 </ load-on-startup >
29 ?? </ servlet >
30
31 ?? < servlet-mapping >
32 ???? < servlet-name > dwr-invoker </ servlet-name >
33 ???? < url-pattern > /dwr/* </ url-pattern >
34 ?? </ servlet-mapping >
35
36 </ web-app >
servlet(uk.ltd.getahead.dwr.DWRServlet)里:
?1 ? ???? protected ? void ?doPost(HttpServletRequest?req,?HttpServletResponse?resp)? throws ?IOException,?ServletException
?2 ? ????{
?3 ? ???????? try
?4 ? ????????{
?5 ? ????????????builder.set(req,?resp,?getServletConfig(),?getServletContext(),?container);
?6 ? ????????????ServletLoggingOutput.setExecutionContext( this );
?7 ?
?8 ? ????????????processor.handle(req,?resp);//該方法對(duì)所有request路徑/dwr/*有效,在引用JS的時(shí)候,使用這個(gè)路徑執(zhí)行dwr生成的javascript代碼

???? finally
11 ? ????????{
12 ? ????????????builder.unset();
13 ? ????????????ServletLoggingOutput.unsetExecutionContext();
14 ? ????????}
15 ? ????}

index.html
?1 ? <? xml?version="1.0"?encoding="ISO-8859-1"? ?>
?2 ? <! DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.1//EN"?"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
?3 ? < html? xmlns ="http://www.w3.org/1999/xhtml" >
?4 ? < head >
?5 ? ?? < title > DWR?-?Test?Home </ title >
?6 ? ?? < script? type ='text/javascript'? src ='dwr/interface/Test.js' ></ script >
?7 ? ?? < script? type ='text/javascript'? src ='dwr/engine.js' ></ script >
?8 ? ?? < script? type ='text/javascript'? src ='dwr/util.js' ></ script >
?9 ? ?? < script >
10 ? ???? function ?init()?{
11 ? ?????? // ?This?turns?off?the?no-javascript?message
12 ? ??????document.getElementById( " start " ).style.display? = ? " none " ;
13 ? ?????? // ?This?checks?for?file:?URLs?and?loading?problems
14 ? ?????? if ?(window.DWREngine? == ? null ? || ?window.DWRUtil? == ? null )?{
15 ? ????????document.getElementById( " file " ).style.display? = ? " block " ;
16 ? ???????? return ;
17 ? ??????}
18 ? ?????? // ?DWR?setup
19 ? ??????DWREngine.setErrorHandler( function (message)?{?alert(message);?});
20 ? ??????DWREngine.setWarningHandler( function (message)?{?alert(message);?});
21 ? ??????DWRUtil.useLoadingMessage();
22 ? ?????? // ?Turn?on?the?generic?error?div
23 ? ??????$( " error " ).style.display? = ? " block " ;
24 ? ?????? // ?Load?a?message?from?the?server
25 ? ??????Test.getInsert(load);
26 ? ????}
27 ?
28 ? ???? function ?load(data)?{
29 ? ??????$( " error " ).style.display? = ? " none " ;
30 ? ??????DWRUtil.setValue( " reply " ,?data);
31 ? ??????$( " reply " ).style.display? = ? " block " ;
32 ? ????}
33 ? ?? </ script >
34 ? </ head >
35 ?
36 ? < body? onload ="init()" >
37 ? .
這一部分經(jīng)過(guò)了SERVLET處理:
?? < script? type ='text/javascript'? src ='dwr/interface/Test.js' ></ script >
??
< script? type ='text/javascript'? src ='dwr/engine.js' ></ script >
??
< script? type ='text/javascript'? src ='dwr/util.js' ></ script >
dwrservlet.doPost方法內(nèi)processor.handle(req, resp)這個(gè)方法如下:
?1 ? ???? public ? void ?handle(HttpServletRequest?req,?HttpServletResponse?resp)? throws ?IOException,?ServletException
?2 ? ????{
?3 ? ????????String?pathInfo? = ?req.getPathInfo();
?4 ? ????????String?servletPath? = ?req.getServletPath();
?5 ?
?6 ? ???????? if ?(nullPathInfoWorkaround? && ?pathInfo? == ? null )
?7 ? ????????{
?8 ? ????????????pathInfo? = ?req.getServletPath();
?9 ? ????????????servletPath? = ?HtmlConstants.PATH_ROOT;
10 ? ????????????log.debug( " Default?servlet?suspected.?pathInfo= " ? + ?pathInfo? + ? " ;?contextPath= " ? + ?req.getContextPath()? + ? " ;?servletPath= " ? + ?servletPath);? // $NON-NLS-1$? // $NON-NLS-2$? // $NON-NLS-3$
11 ? ????????}
12 ?
13 ? ???????? if ?(pathInfo? == ? null ? ||
14 ? ????????????pathInfo.length()? == ? 0 ? ||
15 ? ????????????pathInfo.equals(HtmlConstants.PATH_ROOT))
16 ? ????????{
17 ? ????????????resp.sendRedirect(req.getContextPath()? + ?servletPath? + ?HtmlConstants.FILE_INDEX);
18 ? ????????}
19 ? ???????? else ? if ?(pathInfo.startsWith(HtmlConstants.FILE_INDEX))
20 ? ????????{
21 ? ????????????index.handle(req,?resp);
22 ? ????????}
23 ? ???????? else ? if ?(pathInfo.startsWith(HtmlConstants.PATH_TEST))
24 ? ????????{
25 ? ????????????test.handle(req,?resp);
26 ? ????????}
27 ? ???????? else ? if ?(pathInfo.startsWith(HtmlConstants.PATH_INTERFACE))
28 ? ????????{
29 ? ????????????iface.handle(req,?resp);//這個(gè)方法是我們要關(guān)注的
? ??????????? }
?????。。。。。。。
? ????}
?iface.handle(req,?resp);//這個(gè)方法是我們要關(guān)注的,來(lái)自DefaultInterfaceProcessor
?1 ? ???? public ? void ?handle(HttpServletRequest?req,?HttpServletResponse?resp)? throws ?ServletException,?IOException
?2 ? ????{
?3 ? ????????String?pathinfo? = ?req.getPathInfo();
?4 ? ????????String?servletpath? = ?req.getServletPath();
?5 ? ???????? if ?(pathinfo? == ? null )
?6 ? ????????{
?7 ? ????????????pathinfo? = ?req.getServletPath();
?8 ? ????????????servletpath? = ?HtmlConstants.PATH_ROOT;
?9 ? ????????}
10 ? ????????String?scriptname? = ?pathinfo;
11 ? ????????scriptname? = ?LocalUtil.replace(scriptname,?HtmlConstants.PATH_INTERFACE,?HtmlConstants.BLANK);
12 ? ????????scriptname? = ?LocalUtil.replace(scriptname,?HtmlConstants.EXTENSION_JS,?HtmlConstants.BLANK);
13 ? ????????Creator?creator? = ?creatorManager.getCreator(scriptname);
14 ?
15 ? ???????? // resp.setContentType("text/javascript");
16 ? ????????PrintWriter?out? = ?resp.getWriter();
17 ? ????????out.println();
18 ?
19 ? ????????out.println( " function? " ? + ?scriptname? + ? " ()?{?} " );? // 從這里開(kāi)始DWR自動(dòng)生成javascript
?????????????String???path? = ?overridePath;
22 ? ???????? if ?(path? == ? null )
23 ? ????????{
24 ? ????????????path? = ?req.getContextPath(

DWR源碼學(xué)習(xí)(一)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 三级三级三级a三级三级 | 精品久久 | a欧美| 国产成人毛片 | 欧美日韩一区二区在线视频播放 | 国产成在线观看免费视频 | 亚洲精品乱码 | 天天草天天干天天 | av在线免费观看播放 | 99er在线观看 | 日韩精品一区在线 | 日本香蕉一区二区三区 | 久久久无码精品成人A片小说 | 国产综合50p | 任你干在线视频 | 免费看一区二区三区 | 国产精品99久久久久久www | 小草社区影院 | 精品久久久久一区二区国产 | 久久久久亚洲视频 | 成熟自由日本语热亚洲人 | 91福利一区二区在线观看 | 亚洲欧美中文日韩二区一区 | 欧美a级成人淫片免费看 | 国产视频三区 | 亚洲视频中文字幕 | 日本不卡一区 | 无码激情做A爰片毛片A片小说 | 三级成人在线 | 精品一区亚洲 | 在线观看日本中文字幕 | 欧美色欧美亚洲高清在线视频 | 日韩中文字幕在线视频 | 嫩草视频在线播放 | 亚洲精品久久久中文字幕 | 一级黄色a视频 | 日本VA在线视频播放 | 日本aaaaa高清免费看 | 欧美成人精品一区二区男人看 | 久久丁香 | 欧美www在线观看 |