六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

用Java完成可保存狀態(tài)的數(shù)據(jù)庫生成XML樹(5)

[摘要]4.7.Servlet之間的通訊從頁面流程圖上可以看到,是由多個頁面實現(xiàn)從表單提交到創(chuàng)建SessionBean再到多楨頁面實現(xiàn)XML樹的流程,在這里流程中多個頁面之間的通訊是由Session完成的.首先在表單頁面提交數(shù)據(jù)庫查詢語句,由一個中轉(zhuǎn)Servlet完成生成結(jié)果集,把SessionBean的...
4.7.Servlet之間的通訊
從頁面流程圖上可以看到,是由多個頁面實現(xiàn)從表單提交到創(chuàng)建SessionBean再到多楨頁面實現(xiàn)XML樹的流程,在這里流程中多個頁面之間的通訊是由Session完成的.
首先在表單頁面提交數(shù)據(jù)庫查詢語句,由一個中轉(zhuǎn)Servlet完成生成結(jié)果集,把SessionBean的句柄放入Session中,再跳轉(zhuǎn)到多楨頁面,由XMLServlet從Session中獲得SessionBean的句柄,由此得到結(jié)果集,生成含有層次關(guān)系的XML.
當(dāng)點擊生成的XML樹時,需要把點擊的節(jié)點對象的詳細(xì)信息顯示在另外一個楨內(nèi),這兩個楨其實對應(yīng)的也是兩個Servlet,它們之間的通信,部分采用Session,部分采用cookie.顯示節(jié)點詳細(xì)信息的楨的主體是仍是Servlet生成的XML,和生成樹狀XML的Servlet完全一樣,要關(guān)聯(lián)的顯示被點擊節(jié)點的詳細(xì)信息,是在于XSL模版的節(jié)點對象變量傳遞,如何在XSl中實現(xiàn)詳細(xì)顯示已在前面闡明,這里對其節(jié)點對象變量傳遞進(jìn)行描述.
還有節(jié)點后出現(xiàn)的修改楨,其變化的實質(zhì)類于詳細(xì)顯示節(jié)點信息的楨,主要的區(qū)別在XSL的模版HTML實現(xiàn)一節(jié)有所變化.
主要針對中轉(zhuǎn)Servlet的實現(xiàn)的過程作詳細(xì)描述:
public class RefreshServlet extends HttpServlet {
PrintWriter out;
ResultEdit re;
private static final String CONTENT_TYPE = "text/html";
private Object ref;
private static String querySQL = null;
private static String HostIP = null;
private static String HostPort = null;

public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try{
response.setContentType(CONTENT_TYPE);
out = response.getWriter();
/**判斷Session是否存在,不存在則新建一個Session*/
HttpSession session=request.getSession(true);
/**獲得提交的表單中的查詢語句,和應(yīng)用服務(wù)器的IP和Port,保存到相應(yīng)的變量中*/
if (request.getMethod().equals("POST")){
querySQL = request.getParameter("sql");
HostIP = request.getParameter("ip");
HostPort = request.getParameter("port");
/**調(diào)用getInitialContext(ip,port)方法得到應(yīng)用服務(wù)器的一個初始容器*/
Context ctx =getInitialContext(HostIP,HostPort);
/**從容器中得到SessionBean*/
ref = ctx.lookup("ResultEdit");
/**獲得SessionBean的Home接口*/
ResultEditHome home = (ResultEditHome) PortableRemoteObject.narrow(ref, ResultEditHome.class);
/**創(chuàng)建Home接口的實例*/
re = home.create();
/**調(diào)用接口的中定義的方法*/
re.setRowSet(querySQL);
/**在Session中保存SessionBean的Home接口的句柄*/
session.setAttribute("ResultEditHandle",re.getHandle());
}
/**判斷session中是否存在SessionBean的Home接口的句柄,有則準(zhǔn)備跳轉(zhuǎn)到生成XML樹的Servlet,否則跳轉(zhuǎn)到表單提交頁面*/
if (session.getAttribute("ResultEditHandle")!=null){
out.println("<html><head><title>Enter</title><META HTTP-EQUIV='Refresh' CONTENT='2;url=/xmltree/index.html'/></head>");
out.println("<body>");
out.println("<p><p><p><center>Refresh......go to XMLServlet</center></p></p></p></body></html>");
}

在生成XML樹的Servlet中也含有類似的代碼,主要的功能是判斷Session中是否存在已有的SessionBean的Home接口的句柄,有則讀取該句柄,由此獲得SessionBean中的結(jié)果集,生成和結(jié)果集對應(yīng)的XML,相關(guān)的代碼請參見附錄中的源代碼一節(jié).


5.需要改進(jìn)的地方
5.1.不允許存在不含子節(jié)點的樹杈,這樣會使一些剛構(gòu)造但尚未添加子葉子和子樹杈的樹杈,不能以節(jié)點的形式顯示在界面上,只有添加了子節(jié)點才會顯示出來
5.2.在實現(xiàn)上,每一個節(jié)點,不管是樹杈或是葉子,它都只有一個父親,如果多個模塊中都存在功能一致,操作一致,界面一致的元素,那么在不同模塊的樹型結(jié)構(gòu)里面就需要不同的節(jié)點記錄。
 


主站蜘蛛池模板: 日韩手机在线观看 | 亚洲精品在看在线观看 | 四虎影院美女 | 欧美在线视频免费播放 | 日韩黄色一级视频 | 涩涩涩涩涩 | 全部免费毛片在线 | 香蕉欧美成人精品a∨在线观看 | 亚洲第一国产 | 亚洲最色 | 日本一区二区三区免费高清在线 | 五月天激情丁香 | 乌鸦传媒在线视频国产 | 亚洲精品永久免费 | 欧美一级做一a做片性视频 欧美一级做性受 | 亚洲 欧美 精品专区 极品 | 午夜在线免费观看视频 | 三级黄色片在线观看 | 日本高清影院 | 一二三四影视在线观看免费视频 | 亚洲福利| 午夜在线一区 | 天堂2019| 日韩影片2| 人人干日日干 | 亚洲va欧美va天堂v国产综合 | 天天看有黄有色大片 | 亚洲熟区| 性生生活三级视频观看 | 亚洲第一成网站 | 午夜在线播放视频 | 综合网 色天使 | 视频福利一区 | 日本欧洲亚洲一区在线观看 | 香蕉www | 日韩中文字幕在线观看 | 午夜人屠h精品全集 | 色伊人国产高清在线 | 日韩精品欧美一区二区三区 | 五月激情六月 | 最新中文字幕一区 |