Java開發學習筆記之一:JavaEE分層及客戶層技術

來源:互聯網
上載者:User

JavaEE技術的分層
使用者介面層:終端使用者系統(HTML,Applet,Windows表單等等。)
表示邏輯層:JSP,ASP,CGI,用於處理HTML,XML,DHTML,WML。或是使用者介面控制項,如:windows表單,java awt,swinjg等。
業務層:主要是對資料進行分析和計算,同時控制整個程式的動作。比如,在購物網站中,業務層對定單進行處理。它不需要考慮HTML,也不需要直接用SQL到資料庫讀寫資料。這一層主要對定單進行分析,決定如何檢查使用者信用卡,如何改動產品資料等。它依靠其下層進行具體而複雜的資料操作(如改動資料庫中的表中的行列)。引入業務層的好處是它對程式的功能進行了簡化的封裝,在編程時需要考慮的問題更簡單明確。
資料訪問層:資料庫連接以及資料I/O介面。
資料層:資料存放區(資料庫系統,XML等),查詢,儲存及效能最佳化。

客戶層技術
1.基本技術
  J2EE程式的優點之一是支援多種客戶類型。如HTML,Applet,手機,pc。當這些JavaEE客戶讓使用者遊覽或輸入資訊時,它們同時跟JavaEE Web程式進行串連。根據不同需要和使用者條件,這些客戶的介面可以很簡潔,也可能需要很豐富。而對於終端使用者來說,用戶端介面就代表著整系統。因此,程式開發人員必須重視程式的“門面”,要使用使用者感到程式既美觀大方又方便實用。在實現系統功能的前提下,程式設計者要瞭解使用者的使用習慣和最新的介面潮流,因地制宜地設計出合適的用戶端程式。
  Web程式的用戶端主要有以下功能:第一,顯示使用者介面。第二,驗證並確認使用者輸入。第三,與伺服器進行通訊。第四,管理對話狀態。

2.瀏覽器及HTML使用者資訊輸入
  Web瀏覽器使用HTML網頁的方式將使用者介面展現給使用者和擷取使用者輸入資訊,典型的HTML使用者資訊輸入結構是使用Form(表單),Form是HTML的一組介面元素。Form允許編程人員使用各種各樣的介面控制元件來捕捉使用者通過網頁輸入的資訊,第個控制元件有名稱和值。控制元件的名稱可在HTML內指定,其值可以在HTML內或由使用者指定。Form的Action屬性指定了該Form和伺服器的一個檔案和程式的對應關係,Action的值一般為一個URL。
  當使用者點擊了Form裡的發送按鈕,瀏覽器就根據Form的Active屬性指定的動作向伺服器發出請求然後接收響應。當使用者點擊按鈕時,Form內的資料被傳遞到伺服器(通過HTTP的Request),這個request把所有的Form內的控制元件的名稱和值拼在一起成為一個字串,如:
name1=value1&name2=value2......nameN=valueN
  HTTP提供兩種Form和伺服器進行請求的方式:Get方法和Post方法。標準的HTTP包括確定網頁位置的URL和發送的內容體(body)。Get方法將這個內容體,即上述的字串串連在URL名稱之後組成一個新的字串,向伺服器的Web容器傳遞;Post方法先將URL發出,然後將這個字串放在Body內發送。
下面舉例說明一個Get方法的應用。
用戶端的HTML檔案內容如下:
<form action="createproject" method="get">
<center>
<table border="0" cellspacing="1" bgcolor="#e0d0b0">
  <tbody bgcolor="white">
     <input type="hidden" name="proj_ID" value="null">
  <tr>
    <td width="100" nwrap>Name<font color="#ff000">*</font></td>
    <td width="407"><input size="20" type="text" maxlength="30" name="proj_Name"></td>
  </tr>
  <tr>
    <td width="96">Group</td>
    <td width="407"><input size="20" type="text" maxlength="30" name="group"></td>
  </tr>
  <tr>
    <td width="96">Lead<font color="#ff000">*</font></td>
    <td width="407"><input size="20" type="text" maxlength="30" name="lead">
      <font size="-1">must enter a user in the <a href="manageuser">User List</a></font>
    </td>
  </tr>
  <tr>
    <td width="96">Dest</td>
    <td width="407"><textarea rows="10" cols="58" name="desc">Enter A Brief Description Here</textarea></td>
  </tr>
  <input type="hidden" name="actiontype" value="CREATE_PROJECT">
  </tbody>
</table>
</center>
<center><br>
  <input type="image" src="../images/button-submit2.gif" name="submit">
</center>
使用者在上述網頁內輸入了各項項目資訊並點擊了按鈕“submit”時,瀏覽器向伺服器的Web容器發出請求。由於這個Form使用Get方法,在瀏覽器的Web地址欄可以看到它發送的URL(包括使用者輸入資料的字串):
http://localhost/icwork/control/createproject?proj_ID=null&proj_Name=Project1&group=web+software+Group&lead=Zhang+San&desc=This+project+developer+an+advanced+web-based+task+monitoring+application+for+Iccnocept+Inc.&actiontype=CREATE_PROJECT&submit.x=63&submit.y=8

  Form除了Action和Method屬性以外,還有以下屬性。
ENCTYPE:指定資料在發送之前的編碼方式。預設值是application/x-www-form-urlencoded,是指瀏覽器將空格轉化成+,而將非字母字元轉化成%加Ascii碼。同時,將輸入變數和其值之間加=,在變數之間加&。這是它的預設值。另一種常用編碼方法是multipart/form-data,這種方法將每個輸入控制變數分別以MIME類型檔案自動使用Post方法向伺服器傳遞。這種方法比較適合傳遞複雜的使用者輸入資料。
TARGET:指定在瀏覽器中哪個frame用來顯示伺服器響就的HTML,預設值是當前frame,frame已越來越少使用,因此這個屬生不常用。
ONSUBMIT、ONRESET:用來添加JavaScript,這些JavaScript在使用者資料被提交或重設時運行。因此,可以使用這個屬性來驗證使用者的輸入,如:
<form action="createproject" method="post" onsubmit="return_checkform(this);">

<script language="JavaScript">
<!--
function checkform(form)
{
  if(form.email.value==""){
    alert("Please enter your email address.");
    form.email.focus();
    return false;
  }
}
//-->
</script>
ACCEPT和ACCEPT-CHARST屬性在是HTML4.0新加入的,它用來指定伺服器程式接受的MIME類型(ACCEPT)和字元編碼(ACCEPT-CHARSET)。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.