{eval=Array;=+count(Array);}
謝謝邀請!
JSP是Java Web開發(fā)的傳統(tǒng)技術(shù)之一,雖然弊端比較多,比如業(yè)務(wù)邏輯與顯示邏輯耦合、無法分別部署、開發(fā)角色分工不清等問題,但是JSP對于初學(xué)者來說還是有一定的學(xué)習(xí)必要性,有不少遺留項目依然需要采用JSP技術(shù)。
MySQL數(shù)據(jù)庫是目前使用比較多的數(shù)據(jù)庫之一,尤其在Web開發(fā)領(lǐng)域。MySQL數(shù)據(jù)庫簡單易學(xué)且功能強大,Java程序員往往都對MySQL數(shù)據(jù)庫比較熟悉。雖然通過JSP直接連接MySQL數(shù)據(jù)庫是可以做到的,但是這種做法顯然是有很多問題的,恰好通過MVC結(jié)構(gòu)是可以基本解決這些問題的。
MVC是一個軟件開發(fā)領(lǐng)域的經(jīng)典結(jié)構(gòu),采用MVC進行Web開發(fā)也就是所謂的Model2開發(fā)方式,這種開發(fā)方式用JavaBean來描述M(模型),采用JSP來描述V(視圖),采用Servlet來描述C(控制器)。MVC最大的好處是實現(xiàn)了不同部分的解耦,提升了Web程序的模塊化程度,使得多角色協(xié)作開發(fā)有了重要的基礎(chǔ),也為日后的優(yōu)化打下來基礎(chǔ)。
要想利用MVC結(jié)構(gòu)完成一個傳統(tǒng)Java Web開發(fā),需要綜合使用Servlet、JSP、JavaBean、JDBC、MVC、DAO等一系列傳統(tǒng)技術(shù),而通過一個模擬銀行“存取轉(zhuǎn)”業(yè)務(wù)的Web應(yīng)用是一個不錯的選擇。
存取轉(zhuǎn)業(yè)務(wù)的基礎(chǔ)是賬戶,所以可以先寫一個Account類作為M部分,然后為M定義一個映射表格。以DAO的方式完成數(shù)據(jù)庫與Account類的映射,需要定義接口、實現(xiàn)類和工廠類。接著定義控制器Servlet,在Servlet中完成用戶請求的各種“導(dǎo)航”,最終通過JSP完成呈現(xiàn)。
這個過程只是一個基本的模擬,而且并沒有采用任何開源框架,對于Java學(xué)習(xí)者來說,學(xué)習(xí)開源框架是必要的。在掌握了MVC和DAO之后,再學(xué)習(xí)SpringMVC和Mybatis會更容易理解。
作者簡介:中國科學(xué)院大學(xué)計算機專業(yè)研究生導(dǎo)師,從事IT行業(yè)多年,研究方向包括動態(tài)軟件體系結(jié)構(gòu)、大數(shù)據(jù)、人工智能相關(guān)領(lǐng)域,有多年的一線研發(fā)經(jīng)驗。
歡迎關(guān)注作者,歡迎咨詢計算機相關(guān)問題。
謝邀~
針對這個問題,具體的怎么連接數(shù)據(jù)庫,怎么增刪查改,這些代碼自己用google一下就可以得到答案,這里就不細說;初學(xué)者寫代碼經(jīng)常會有個問題:把所有代碼都寫在“一層”里,甚至是一個類、一個方法里。
下面我談?wù)勛约旱慕ㄗh,如果意見不同,請留言討論。
MVC是Model—View—Controler的簡稱;即模型—視圖—控制;MVC是一種設(shè)計模式,它強制性的把應(yīng)用程序的輸入、處理和輸出分開。
視圖: 視圖是用戶看到并與之交互的界面;視圖向用戶顯示相關(guān)的數(shù)據(jù),并接受用戶的輸入;視圖不進行任何業(yè)務(wù)邏輯處理。
模型: 模型表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)處理;相當于JavaBean;一個模型能為多個視圖提供數(shù)據(jù)。這提高了應(yīng)用程序的重用性
控制器: 當用戶單擊Web頁面中的提交按鈕時,控制器接受請求并調(diào)用相應(yīng)的模型去處理請求;然后根據(jù)處理的結(jié)果調(diào)用相應(yīng)的視圖來顯示處理的結(jié)果。
MVC的處理過程:首先控制器接受用戶的請求,調(diào)用相應(yīng)的模型來進行業(yè)務(wù)處理,并返回數(shù)據(jù)給控制器??刂破髡{(diào)用相應(yīng)的視圖來顯示處理的結(jié)果。并通過視圖呈現(xiàn)給用戶。
大概知道什么是MVC了吧,其實就是:對代碼分層,各司其職。
現(xiàn)在看看題主的代碼怎么寫,我就按照我的習(xí)慣進行一下分層:
JSP能直接訪問數(shù)據(jù)庫么?技術(shù)上是沒問題的,但是我們通常不會這么做。和數(shù)據(jù)庫完成交互的,一般代碼里面會有兩層:Model和Dao。Model相當于JavaBean,是對數(shù)據(jù)庫表中數(shù)據(jù)的承載,Dao就是對數(shù)據(jù)庫表的操作。這里可以是JDBC,也可以使用ORM框架。
再往上,我一般會設(shè)置多帶帶的Service層,Service會有業(yè)務(wù)邏輯,可能會調(diào)用其他的Service,也可能會調(diào)用Dao層中的方法,也可能是調(diào)用其他系統(tǒng)的接口。
Service上面,再是Controller層,主要用于接受客戶端的數(shù)據(jù),并對數(shù)據(jù)進行簡單的校驗。(我這樣的寫法,Service層+Controller層 = MVC中的C)
瀏覽器(客戶端)與C層的交互,會使用的View。
當然,靜態(tài)變量、配置、工具類等,都會有多帶帶的包,不在這里討論。
所以具體的一個流程是這樣的?例如頁面輸入用戶身份證號,查詢用戶詳細信息:
JSP中輸入身份證號;
Controller層拿到View,對于代碼來說就是個Java對象,這一層可以增加驗證,比如不能輸入空、null或是身份證號規(guī)則驗證;
傳到Service層,這一層這個場景下,沒有什么特殊處理;
傳到Dao層,查詢數(shù)據(jù)庫,返回客戶信息:客戶姓名-張三,客戶性別-M;開始返回;
傳回Service層,把M轉(zhuǎn)成“男”(不過經(jīng)常是在SQL中直接關(guān)聯(lián)字典表了);
傳回Controller層,再傳回JSP展示。
首先謝謝你的邀請,因為你的最后一句話,讓我對你的提問理解有點模糊,不過你前面說的項目需求,SpringMVC和JSP、MySQL,你可以做個簡單的登錄就能實現(xiàn)你這三個條件了,用MVC框架來搭建項目,數(shù)據(jù)庫連接有很多種,你可以百度搜一下,建一個登錄用戶的實體,然后就可以了。
1. 首先從問題中得知你可能需要用到的技術(shù)jsp,mysql
2. jsp是前端顯示技術(shù),mysql是后臺數(shù)據(jù)庫,mvc只是一種模式,把model數(shù)據(jù),view界面,controller業(yè)務(wù)邏輯分離開來
3. 可以做一些圖書管理系統(tǒng),學(xué)生管理系統(tǒng),可以上網(wǎng)搜教程,也可以私聊我,免費指導(dǎo)
0
回答0
回答0
回答0
回答0
回答0
回答0
回答10
回答0
回答0
回答