亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

設計表現層時需要考慮的幾個問題

2019-11-18 12:04:48
字體:
來源:轉載
供稿:網友

  設計表現層時需要考慮的幾個問題
  開發者在設計表現層時,可以使用不同的模型,這時需要考慮一些相關的設計問題。這些問題和模型關系的緊密程度也各有不同,它們可以影響系統的各個方面,包括有安全、數據完整性、可治理性和擴展性。雖然這些設計問題大部分都可以用模型的形式表示,但我們不打算這樣做,因為這樣更為抽象,我們選擇以非正式的文檔形式表示。我們只是根據不同的模型,將每個需要考慮的問題列出來。
  
  session治理
  用戶Session指的是跨越一個客戶和服務器多個請求間的一個對話。我們將在以下部分根據用戶Session的概念討論這個問題。
  
  客戶端的Session狀態
  在客戶端保存Session的狀態指的是將Session的狀態串行化并且嵌入到返回給客戶的Html頁面中。
  
  在客戶端保存Session的狀態有這以下的好處:
  . 它實現起來相對輕易
  
  . 在保存少量的狀態信息時,它工作得很好
  
  此外,這個策略還消除了跨越多個服務器復制狀態的問題,例如多個服務器間實現負載均衡時就會碰到這種情況。
  
  在客戶端保存Session狀態通常有兩個方法--HTML的隱藏字段和HTTP cookies--我們將在下面討論這些策略。第三個策略則是在每個頁面的URL中嵌入Session狀態信息,例如<form action=someServlet?var1=x&var2=y method=GET>。雖然第三個方法比較少見,但它也有著其它兩個方法的許多限制。
  
  HTML的隱藏字段(HTML Hidden Fields)
  雖然這個方法實現起來相對輕易,不過使用HTML隱藏字段在客戶端保存Session狀態仍然有著許多的缺點。這些缺點在保存大量的狀態時尤為突出。保存大量的狀態將會對性能有很大的影響。因為每次發出請求和響應時,都需要在網絡中傳送這些狀態信息。
  
  此外,當你利用隱藏的字段來保存Session狀態時,這些持久的狀態值只能是字符串值,因此所有的對象引用都必須被“字符串化”,而這些信息除非經過非凡的加密,否則都是以明文的形式顯示在HTML的源代碼中。
  
  HTTP Cookies
  與隱藏字段的方法一樣,使用HTTP Cookies的方式也是相對簡單的。不幸的是,這兩個方法有著許多相同的缺點。非凡是,在保存大量的狀態信息時將會對性能產生很大的影響,因為在每次的請求和響應時,都必須在網絡上傳送全部的Session狀態信息。
  
  在客戶端保存Session狀態時,我們也會碰到大小和類型的局限問題。cookie headers的大小是有限制的,這樣就限制了可以被持久保存的數據量,而且和隱藏字段的方法一樣,當你使用cookies來保存Session狀態時,這些持久的狀態信息只能使用字符串值。
  
  在客戶端保存Session狀態會帶來的安全問題
  當你在客戶端保存Session狀態時,你必須考慮到由此帶來的安全問題。假如你不想數據暴露給客戶端,你就需要一些方法來加密數據,從而保證數據的安全。
  
  雖然在客戶端保存Session狀態相對輕易實現,不過它有著很多的缺點,這些都要我們花費時間去解決。對于需要處理大量數據的項目,非凡是企業的系統,使用這種方式是得不償失的。
  
  表現層的Session狀態
  當Session狀態保存在服務器端時,它使用一個Session ID得到,并且會一直保持住,直到發生以下的情形:
  
  . 一個預定義的Session超時發生了
  
  . Session被手動設置為無效
  . 狀態由Session中移除
  
  要注重的是服務器關閉后,一些內存中的Session治理機制可能不能恢復。
  
  很明顯,對于要保存大量Session狀態的應用,將它們的Session狀態放在服務器是更好的。當狀態被保存在服務器上時,你不會有客戶端Session治理的大小和類型限制。此外,還避免了由此帶來的安全問題,而且也不會碰到由于在每個請求間傳送Session狀態帶來的性能影響。
  
  使用該方式,你可以更加靈活地作處理,并且便于擴展和提高性能。
  
  假如你在服務器上保存Session狀態,你必須要決定如何使該狀態信息被每個服務器得到,即你運行該應用的服務器。假如群集的軟件是運行在負載均衡的硬件上,那么就要處理這個Session狀態的復制問題,這是一個多維的問題,不過,眾多的應用服務器現在都提供了各種各樣的解決方案。也就是說,在應用服務器的級別上有解決的方法。其中的一個方法是保證用戶只與一個服務器打交道,它在流量治理軟件上用得比較多,例如Resonate [Resonate]的軟件,在用戶的Session中,該用戶發出的每個請求都會被路由到同一個服務器處理。這種方式也被稱為server affinity。
  
  另一個可選的方式是在商業層或者資源層保存Session狀態。企業javaBeans組件可用來在商業層保存Session的狀態,而一個關系數據庫則可用在資源層。
  
  控制客戶訪問
  有很多時候我們都要限制或者控制客戶端訪問某些應用資源。下面我們就來討論其中兩種這樣的情形。
  
  限制或者控制客戶訪問的一個原因是防止一個視圖或者部分的視圖被一個客戶直接訪問。這個問題會發生在以下情況,例如僅有注冊或者登陸后的用戶才可答應訪問一個非凡的視圖,或者是根據用戶的角色限制用戶訪問部分的視圖。
  
  在描述過這個問題后,我們將討論第二種情況,它和控制應用中一個用戶的流程有關。后者的討論和重復的form提交有關,因為多次提交將會導致不必要的重復事務。
  
  控制視圖訪問
  在一些情況下,資源被限制為完全不答應某些用戶訪問。有幾個方法可以做到這一點。一個方法是加入應用邏輯到處理控制器或者視圖的程序中,禁止某些用戶訪問。另一個方案是設置運行時的系統,對于一些資源,僅答應經由另一個應用資源內部調用。在這種情形,對于這些資源的訪問必須被通過另一個表現層的應用資源進行,例如一個servlet控制器。對于這些受限制的資源不答應通過一個瀏覽器直接調用。
  
  處理這個問題的一個常見方法是使用一個控制器來作為該類訪問控制的一個委托者。另一個常見的方式是在一個視圖中置入一個保護設置。我們這里主要討論基于視圖的控制策略。在考慮選擇何種方式來控制訪問之前,我們首先來描述一下這些策略。
  
  在視圖中置入保護邏輯
  對于在一個視圖的處理中置入一個保護邏輯,有兩個常見的應用。一個是防止訪問整個的資源,而另一個是限制訪問部分的資源。
  
  在每個視圖中包含一個All-or-Nothing保護
  
  在一些情況下,置入到視圖處理代碼中的邏輯以all-or-nothing的模式答應或者拒絕訪問。也就是說,這個邏輯限制某個非凡的用戶訪問一個非凡的視圖。通常這一類型的保護最好封裝到一個中心化的控制器中,這樣便于集中化治理。假如只有很少的頁面需要防護,那么可以使用這個策略。通常這個情形都是發生在一個非技術人員需要更新網站一小部分的靜態文件。假如客戶仍然需要登陸到網站來瀏覽這些頁面,那么只需要在每個頁面的頂部加入一個自定義的tag(標記)就可以做到控制訪問。如3.1的例子所示。
  
  例子3.1 在每個視圖中包含一個All-or-Nothing保護
  
  <%@ taglib uri="/WEB-INF/corej2eetaglibrary.tld"
    
  <corePatterns:guard/>
  <HTML>
  .
  </HTML>
  
  給視圖的某些部分加入保護
  在其它情況下,置入到視圖處理代碼的邏輯可拒絕訪問一個視圖的某些部分。這個策略可以和上面的all-or-nothing策略一起使用。為說明這一點,我們這里使用控制訪問一個建筑物中的一個房間作類比。all-or-nothing的保護策略告訴用戶是否可以進入房間,而第二個保護策略則是告訴用戶在進入房間后,答應他們看到什么東西。以下就是一些你可以利用這個策略的例子。
  
  根據用戶的角色決定是否顯示視圖的某些部分
  
  根據用戶的角色,視圖的某部分可能不顯示。例如,一個經理在收看治理信息時,他可以訪問到其員工的子視圖,而作為一個員工,他只可以看到自己組織的信息,而不可以訪問其它信息,如例子3.2所示。
  
  例子3.2 根據用戶的角色,部分的視圖不顯示
  
  <%@ taglib uri="/WEB-INF/corej2eetaglibrary.tld"
  prefix="corePatterns" %>
  
  <HTML>
  .
  <corePatterns:guard role="manager">
  <b>This should be seen only by managers!</b>
  <corePatterns:guard/>
  .
  </HTML>
  
  根據系統的狀態或者錯誤情形不顯示部分的視圖
  
  根據系統的環境,顯示的規劃可以被修改。例如,假如用戶使用的是一個單CPU的硬件設備,那么使用多個CPU的部分設備就可以不顯示。
  
  根據配置控制資源訪問
  
  要限制某個客戶直接訪問一個非凡的視圖,你可以配置表現層只有通過內部的資源才可以訪問到這些資源,例如一個使用RequestDispatcher的servlet控制器。此外,你還可以使用Web容器中內置
  的安全技術,根據servlet2.2或者以后的規范。安全限制被定義在稱為web.
xml的配置描述文件中(deployment descriptor)。
  
  basic和form-based的認證方法在Servlet規范中也有描述。在此我們不打算重復這個規范,你可以到以下網址去查看當前規范的細節(http://java.sun.com/prodUCts/servlet/index.html)。
  
  你已經明白了加入安全限制到你的應用時會有什么用處,我們簡要討論了這個問題并且介紹了如何通過配置令它和all-or-nothing保護相關。最后,我們描述了一個簡單和常用的方法作為all-or-no

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美最新羞羞视频在线观看| 久久精品中文字幕一区| 俺也去精品视频在线观看| 亚洲奶大毛多的老太婆| 亚洲韩国日本中文字幕| 川上优av一区二区线观看| 久久久国产精品x99av| 亚洲激情中文字幕| 精品免费在线观看| 欧美亚洲国产日韩2020| 亚洲成色777777女色窝| 久久久精品日本| 尤物九九久久国产精品的特点| 98精品国产高清在线xxxx天堂| 成人黄色大片在线免费观看| 欧美精品久久久久久久久| 欧美一区三区三区高中清蜜桃| 欧美最猛性xxxxx免费| 亚洲天堂一区二区三区| 国产一区二区色| 91色视频在线导航| 日韩av三级在线观看| 中文字幕亚洲国产| 久久这里只有精品视频首页| 91久久国产精品91久久性色| 日韩美女毛茸茸| 国产精品久久久久久久久久新婚| 日韩av在线影视| 亚洲国产精品网站| 中文字幕在线观看亚洲| 欧美日韩性视频在线| 久久久之久亚州精品露出| 欧美亚洲国产日韩2020| 日韩中文字幕不卡视频| 日本精品久久电影| 一区二区成人精品| 亚洲综合成人婷婷小说| 国产欧美在线播放| 午夜精品蜜臀一区二区三区免费| 欧美理论电影网| 久久综合亚洲社区| 亚洲老司机av| 精品少妇v888av| 欧美理论电影在线观看| 国产91色在线免费| 国产日本欧美一区| 欧美成aaa人片免费看| 国产精品美女www| 国产精品久久久久久久天堂| 午夜精品一区二区三区在线视| 欧美一级黑人aaaaaaa做受| 亚洲免费视频网站| 超碰97人人做人人爱少妇| 久久亚洲欧美日韩精品专区| 久久久久久91香蕉国产| 国产精品18久久久久久首页狼| 国产成人高潮免费观看精品| 国产精品黄色影片导航在线观看| 按摩亚洲人久久| 成人网在线免费观看| 亚洲第一免费播放区| 亚洲欧美综合区自拍另类| 亚洲v日韩v综合v精品v| 亚洲第一在线视频| 国产99久久精品一区二区永久免费| 久久精品99久久香蕉国产色戒| 97在线精品视频| 久久福利网址导航| 亚洲天堂第二页| 九九热99久久久国产盗摄| 国产精品一区二区三区在线播放| 精品高清美女精品国产区| 国产噜噜噜噜久久久久久久久| 成人日韩在线电影| 91久久久久久久久| 欧美日韩在线视频一区二区| 57pao成人国产永久免费| www.欧美三级电影.com| 欧美精品在线免费| 欧美专区福利在线| 国产亚洲精品久久久优势| 国产精品成熟老女人| 91久久精品一区| 亚洲欧美日韩成人| 中文字幕欧美日韩va免费视频| 日韩亚洲一区二区| 欧美午夜性色大片在线观看| www亚洲欧美| 欧美在线视频在线播放完整版免费观看| 欧美在线视频a| 欧美在线影院在线视频| 日本午夜人人精品| 亚州精品天堂中文字幕| 国产精品久久久久久久午夜| 国产午夜精品全部视频播放| 亚洲性视频网址| 精品动漫一区二区三区| 九九热99久久久国产盗摄| 成人性生交大片免费观看嘿嘿视频| 久久久999成人| 欧美成人午夜激情在线| 91精品久久久久久久久| 久久伊人精品天天| 亚洲男人的天堂在线| 91av在线影院| xvideos成人免费中文版| 欧美亚洲免费电影| 国产精品久久电影观看| 欧美精品videosex性欧美| 91免费在线视频网站| 久久久综合av| 高清在线视频日韩欧美| 日韩欧美国产骚| 国产精彩精品视频| 国产精品久久一区主播| 狠狠久久五月精品中文字幕| 久久久久久av| 91精品国产91久久久久| 欧美日韩人人澡狠狠躁视频| 一区二区国产精品视频| 91九色蝌蚪国产| 国产精品露脸自拍| 亚洲毛茸茸少妇高潮呻吟| 国产一区二区三区直播精品电影| 国产精品久久久久999| 欧美日韩在线看| 久久精品视频中文字幕| 久久人人爽人人爽人人片av高请| 久久久综合av| 欧美激情伊人电影| 国产一区二区三区在线| 亚洲乱码一区二区| 国产精品第一区| 欧美高清视频免费观看| 色在人av网站天堂精品| 久久国产一区二区三区| 日本道色综合久久影院| 亚洲电影第1页| 九九精品在线播放| 国产精品主播视频| 97热在线精品视频在线观看| 欧美日韩国产色| 亚洲日韩中文字幕| 欧美理论在线观看| 欧美性受xxxx黑人猛交| 亚洲天堂av在线免费观看| 一本一道久久a久久精品逆3p| 久久精品电影网| 亚洲一区二区久久久久久久| 亚洲乱码国产乱码精品精天堂| 欧美成人在线免费| 欧美韩国理论所午夜片917电影| 国产一区二区美女视频| 欧美性猛交xxxx黑人猛交| 性欧美xxxx视频在线观看| 红桃视频成人在线观看| 搡老女人一区二区三区视频tv| 久久综合伊人77777尤物| 亚洲欧洲一区二区三区久久| 91产国在线观看动作片喷水| 日韩视频―中文字幕| 成人精品久久久| 欧美不卡视频一区发布| 国产精品嫩草影院久久久|