<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 48, comments - 13, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Tapestry Tutorial:Introduction翻譯

    Posted on 2009-02-05 15:03 董銳 閱讀(220) 評論(0)  編輯  收藏
    什么是Tapestry?
    歡迎來到Tapestry世界!
    本文是一篇幫助人們使用Tapestry5來創建應用程序的指導文章。不論你是否會使用Tapestry4(或Tapestry3)或者你對Tapestry完全陌生,都不影響你閱讀此篇指南,事實上你對一般的互聯網程序開發知道的越少,Tapestry則對你是越好的選擇,因為你可以少學很多!
      當然你還是需要知道以下一些知識:HTML、XML,基本的Java語言特性和一些新一點的東西如Java Annotations.
    如果你是用servlets、JSP或Struts來開發互聯網應用程序的,或許你已對很多麻煩的事情習以為常了。或許你并沒有意識到你所處的可怕處境。這些環境沒有安全保障;Struts和Servlet API不知道你程序的架構是如何的,不知道各個不同的塊是如何連接起來的。任何一個URL地址都可以是一個Action并且每個Action都可以前進到任何一個顯示頁面(通常是JSP頁面),這些顯示頁面會生成返回到客戶端瀏覽器的HTML頁面。作為一個開發者,你必須要做出一系列永無止盡的小而重要的決定(并且要與你的開發團隊進行協商),如actions、頁面、屬性等的命名規范、變量存放在HttpSession中還是存放在HttpServletRequest中等等,這些都是麻煩的事情。
    傳統方式將很多你不想要的東西推向你:多線程編程。還記得以前學習面向對象編程?一個對象可以定義為一組數據以及對這些數據進行操作的集合?當你開始互聯網編程后你就必須忘記這個課程,因為互聯網編程是多線程的。一個應用服務器可以處理來自單個用戶的幾十、上百個請求,每一個用戶都有自己的線程,而且每一個用戶都共享相同的對象。 突然,你發現不能在一個對象(一個servlet或一個struts Action)中存儲數據,因為不論你為一個用戶存放什么數據,它都會立馬被某個其他用戶的數據覆蓋。
    更糟的是,你的每個對象都有一個方法:doGet()或doPost()。
    期間你每天工作的大部分內容是決定如何將你已經存儲在java對象中的數據給打包然后把這些數據擠壓進一個URL地址的請求參數里,然后你得再寫些代碼把這些數據給轉換回來。同時要記得修改一大堆存儲在servlet容器或Struts框架中的XML文件,讓它們知道這些決定。

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲永久中文字幕在线| 免费国产成人午夜私人影视| 国产成人综合亚洲AV第一页| 激情无码亚洲一区二区三区| 免费视频中文字幕| 亚洲av无码一区二区三区四区 | 亚洲欧洲精品国产区| 午夜视频在线免费观看| 亚洲国产精品不卡在线电影| 亚洲免费精彩视频在线观看| 久久精品国产精品亚洲色婷婷| 成人电影在线免费观看| 亚洲高清视频在线观看| 99久久人妻精品免费一区| 久久国产亚洲高清观看| 4399好看日本在线电影免费| 久久狠狠高潮亚洲精品| 最近最新MV在线观看免费高清| 2020天堂在线亚洲精品专区| 青草草在线视频永久免费| 国产产在线精品亚洲AAVV| 国产成人精品久久亚洲| 成在线人免费无码高潮喷水| 亚洲AV无码一区东京热| 亚洲大片免费观看| 亚洲高清一区二区三区| 在线永久免费观看黄网站| 一级毛片**免费看试看20分钟| 亚洲精品乱码久久久久久蜜桃不卡 | 国产免费拔擦拔擦8X高清在线人 | 国产美女在线精品免费观看| 亚洲乱码av中文一区二区| 亚洲国产香蕉人人爽成AV片久久| 一区二区免费在线观看| 亚洲最新永久在线观看| 97在线观免费视频观看| 午夜亚洲国产精品福利| 日韩亚洲人成在线综合日本| 97免费人妻无码视频| 成人在线免费视频| 久久精品国产亚洲AV大全|