① 怎麼理解java中的業務邏輯層、數據訪問層、表示層請各位大神幫忙解析
業務邏輯層(servlet)是處理業務的地方
數據訪問層就是去資料庫獲取數據的地方
表示層(jsp,html頁面)也就是展示數據的地方
比如:登入操作,在表示層登入,然後業務邏輯層就會帶著用戶名和密碼去數據訪問層去查詢數據,看看有沒有這個用戶,返回給業務層,業務層就判斷返回的東西,就知道有沒有這個戶名,沒有則攜帶錯誤信息再跳轉到表示層,有則進行下一步操作
② 數據訪問層
string sql = "select * from Users where UserName=@UserName and Password=@Password";
改成
string sql = "select count(*)from Users where UserName=@UserName and Password=@Password";
③ 數據訪問層的主要職責是什麼
數據訪問層:
其功能主要是負責資料庫的訪問,可以訪問資料庫系統、二進制文件、文本文檔或是XML文檔。簡單的說法就是實現對數據表的Select(查詢),Insert(插入),Update(更新),Delete(刪除)等操作。
④ 三層架構中的表示層,數據訪問層,和業務邏輯層具體是怎麼劃分的
一般講到三層架構,其實就是將整個業務應用劃分為表示層、業務邏輯層、數據訪問層等。 三層體系結構,是在客戶端與資料庫之間加入了一個「中間層」,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡單地放置三台機器就是三層體系結構
⑤ Web應用層,業務邏輯層,數據訪問層,連接支持層,業務實體層。主要指的是什麼
一般都是三層架構吧? 怎麼這么多層? UI先是層 是專門做顯示的 DLL業務邏輯層說白了就是調用數據訪問層的方法的 DAL數據訪問層就是調用資料庫中的數據的.
⑥ 持久層和數據訪問層有什麼區別呢
只是不同的說法而已,經典的三層架構
表示層-》業務邏輯層-》持久層(數據訪問層)
⑦ 表示層 業務邏輯層 數據訪問層怎麼理解
顧名思義,
表示層存放和前台交互的代碼,比如 servlet,用於接收數據、跳轉頁面等
業務邏輯層,存放業務邏輯相關代碼
數據訪問層,存放和資料庫交互的代碼
⑧ 怎麼理解java中的業務邏輯層,數據訪問層,表示層
三層架構(3-tier application) 通常意義上的三層架構就是將整個業務應用劃分為:表現層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)。區分層次的目的即為了「高內聚,低耦合」的思想。
1、表現層(UI):通俗講就是展現給用戶的界面,即用戶在使用一個系統的時候他的所見所得。(負責展示而已)
2、業務邏輯層(BLL):針對具體問題的操作,也可以說是對數據層的操作,對數據業務邏輯處理。(關鍵在於由原始數據抽象出邏輯數據)能夠提供interface\API層次上所有的功能。,「中間業務層」的實際目的是將「數據訪問層」的最基礎的存儲邏輯組合起來,形成一種業務規則
3、數據訪問層(DAL):該層所做事務直接操作資料庫,針對數據的增添、刪除、修改、查找等。(關鍵在於粒度的把握)要保證「數據訪問層」的中的函數功能的原子性!即最小性和不可再分。「數據訪問層」只管負責存儲或讀取數據就可以了。
多寫寫項目,多了解項目結構大概就能知道這樣的好處了
⑨ 數據訪問層代碼寫在哪裡
數據訪問層簡稱數據層 文件夾名:dal,業務層BLL,表示層:UI
就把那些sql方面的訪問資料庫,提取數據的代碼做成一層不就行了?關鍵是你那個bll必須添加dal數據層的引用,而表現層兩個都要引用
⑩ 數據訪問層常見的方法有哪幾種
一、響應重定向方法
響應重定向方法是目前為止將一個網頁重定向到另一個網頁的最簡單的方法的最簡單的方法。當Web伺服器接到一個重定向請求後,它會將一個響應頭送給客戶端,這將導致客戶端發送一個新的請求到伺服器。按句話說,一個重定向請求實際上是兩個請求響應:一個是最初的請求響應,另一個是新的重定向請求響應。
在ASP.NET中實現重定向很容易。下面的代碼演示了如何使用Response.Redirect方法實現網頁重定向:
protected void Redirect_Click(object sender, EventArgs e)
{
Response.Redirect("menu.aspx");
}
要注意的是重定向請求只是一個GET請求,這就意味著我們不能從源頁中通過重定向命令提交數據。但是我們可以在重定向中使用查詢字元串來傳遞數據。如下面代碼所示:
protected void Redirect_Click(object sender, EventArgs e)
{
Response.Redirect("menu.aspx?userName=" + UserName.Text));
}
上面的例子將一個查詢字元串作為參數傳遞給了Response.Redirect方法的目標URL。我們可以通過如下的代碼獲得源數據。
protected void Page_Load(object sender, EventArgs e)
{
string userName = Request["userName"];
}
二、伺服器傳輸方法
和依賴於客戶端向另一個新頁發請求不同,伺服器傳輸是一種伺服器重定向技術,這種技術通過簡單的改變Web伺服器所處理的代碼來達到請求一個新頁的目的。當被請求頁和源頁面在同一個伺服器時,伺服器傳輸要比 Response.Redirect方法更有效,這是由於這種技術可以避免額外的開銷,僅僅使用伺服器的資源就可以進行重定向。要注意的這種技術有一個副作用,在頁面進行重定向時,客戶端的URL仍然會保持源頁面的URL,這可能會使客戶認為他們所獲得的數據是源頁面產生的。當然,在大多數情況下,這不是問題,但是這將使調試變得更困難。
Server.Transfer方法還可以保存初始頁的 HttpContext。因此,目標頁可以訪問源頁面的值。我們可以使用FormsCollection屬性來從目標頁面中獲得源頁面的值。首先,要確定我們使用了被重載的方法,這個方法有兩個參數:目標URL和一個Boolean類型的值,告訴伺服器是否保存用於描述源頁面值的Form。如下面的代碼所示:
Server.Transfer("Menu.aspx",true);
然後,我們在目標頁面中獲得一個叫txtUserName的Textbox控制項的值的代碼如下:
object obj = Request.Form["txtUserName"];
三、Response.Redirect和Server.Transfer的比較
由於Response.Redirect方法要進行兩次請求響應操作,因此,我們應該在對性能要求高的網站盡量避免使用這種方法。然而,只從技術上說,使用redirect方式確實可以從一個網頁跳到另一個網頁。相比之下,Server.Transfer會更有效率,但是跳轉的范圍僅限於同一個Web伺服器的不同網頁。從本質上說,我們可以使用 Server.Transfer來消除不必要的請求響應操作。如果我們需要重定位到不同伺服器的網頁,就需要使用Response.Redirect方法。
四、跨頁提交概述
在ASP.NET 2.0中,我們可以通過實現IbuttonControl介面提交給不同的WebForm,來實現跨網頁的提交。和Response.Redirect類似,跨網頁提交是一個基於客戶端的傳輸機制,但也有點象Server.Transfer,目標網頁也可以訪問源網頁的數據。為了使用跨網頁提交,我們需要在源網頁中的PostBackUrl屬性中指定目標URL。
五、實現跨網頁提交
這部分將討論一下如何在ASP.NET2.0中實現跨網頁提交。為了開始我們的學習,假設有兩個Web頁,一個是源Web頁,另一個是目標Web頁。在源網頁中初始化了使用按鈕進行的跨網頁提交操作。我們首先必須設置目標網頁按鈕的PostBackUrl屬性,順便說一句,所有實現了System.Web.UI.WebControls.IbuttonControl介面的Web控制項都有跨網頁提交的特性。下面的代碼將演示這一過程。
PostBackUrl="~/target.aspx" text = "Post to a target page"/>
當我們設置PostBackUrl屬性時,ASP.NET框架將相應的控制項綁定到一個新的叫WebForm_DoPostBackWithOptions的JavaScript函數,產生的Html代碼如下:
onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btnSubmit", "", false, "","Target.aspx", false, false))" id="btnSubmit" />
對於上面的html代碼來說,當用戶單擊按鈕時,瀏覽器將提交目標URL(Target.aspx),而不是源URL。
六、從目標頁面中獲得源頁面控制項的值
ASP.NET2.0提供了一個叫PreviousPage的新的屬性,這個屬性無論在何時當前頁面進行跨網頁提交操作時都會指向源頁面。要注意的是,當源頁面和目標頁面在不同的應用程序中時,這個屬性包含null(這個null並不是未初始化的意思)。還有要注意的是當目標網頁訪問PreviousPage屬性時可以獲得源頁面的數據,ASP.NET運行時裝載並執行了源頁面。這將引發ProcessChildRequest事件的發生。而且,它還會引發Page_Init事件、Page_Load和任何其他的源頁面按鈕單擊事件。
因此,我們要避免由於不小心進行誤操作,所以最好通過 IsCrossPostBack屬性來確認是否為一個跨網頁提交發生,如果這個屬性值為true,那麼目標網頁就是通過一個跨網頁提交動作而調用的。如果是通過另外一種方式調用的(如一般的請求、Response.Redirect或是一個Server.Transfer),這個屬性的值為false。下面的例子演示了如何使用這個屬性。
if ( PreviousPage.IsCrossPagePostBack)
{
//執行代碼
}
//******************************************
這個PreviousPage屬性在Server.Transfer和跨網頁提交中都可以使用。在ASP.NET2.0中,我們可以在調用Server.Transfer操作後使用PreviousPage屬性在目標頁面中來獲得源頁面的數據,代碼如下:
*******************************************//
{
Server.Transfer("menu.aspx");
}
protected void Redirect_Click(object sender, EventArgs e)
//在這個接收面中我們現在可以獲得Web頁面的數據,代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null)
{
TextBox txtBox = (TextBox)
PreviousPage.FindControl("txtUserName");
if (textBox != null)
string userName = textBox.Text;
//其他可執行的代碼
}
}
要注意的是上面的代碼必須將txtUserName控制項轉換為TextBox類型,以便可以訪問其中的值。
七、使用PreviousPageType
PreviousPageType屬性提供了在跨網頁操作中訪問源頁面的強類型能力,下面讓我們演示一下如何不通過任何類型轉換來從源頁面中獲得控制項值。代碼如下:
< asp:Textbox ID="txtUserName" Runat="server" />
< asp:Textbox ID="txtPassword" Runat="server" />
< asp:Button ID="Submit" Runat="server" Text="Login"PostBackUrl="Menu.aspx" />
要注意的是單擊按鈕可以重定向到一個叫「Menu.asp」的目標頁。這個目標頁可以使用如下的代碼獲得用戶名和密碼:
八、保存視圖狀態
對於跨網頁提交來說,ASP.NET2.0 內嵌了一個叫__POSTBACK的隱藏欄位,這個欄位包含了關於源頁面的視圖信息 -- 也就是由源頁面提供了,包含了一個帶有一個非空PostBackUrl屬性值的服務端控制項。目標頁可以使用__POSTBACK中的信息來獲得源頁面的視圖狀態信息。代碼如下:
if(PreviousPage!=null && PreviousPage.IsCrossPagePostBack &&
PreviousPage.IsValid)
{
TextBox txtBox = PreviousPage.FindControl("txtUserName");
Response.Write(txtBox.Text);
}
在上面的代碼中核對了用於確保PreviousPage屬性不為 null的檢查代碼。順便提一下,如果目標頁和源頁面不在同一個應用程序中,這個PreviousPage屬性的值為null。只有在進行跨網頁提交操作時,IsCrossPagePostBack屬性才為true。
這個跨網頁提交的特性,是ASP.NET2.0中最強有力的特性之一,這種技術將允許在一個頁面中提交到另外一個頁面,並且可以在目標頁面地無縫地操作源頁面中的數據。