您的位置:首页 > 编程语言 > Java开发

Java开发学习笔记之一:JavaEE分层及客户层技术

2006-10-02 20:17 531 查看
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)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: