新聞中心
JSP頁面與MySQL數(shù)據(jù)庫連接MVC模式等?
謝邀~

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),伊州企業(yè)網(wǎng)站建設(shè),伊州品牌網(wǎng)站建設(shè),網(wǎng)站定制,伊州網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,伊州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
針對這個(gè)問題,具體的怎么連接數(shù)據(jù)庫,怎么增刪查改,這些代碼自己用google一下就可以得到答案,這里就不細(xì)說;初學(xué)者寫代碼經(jīng)常會(huì)有個(gè)問題:把所有代碼都寫在“一層”里,甚至是一個(gè)類、一個(gè)方法里。
下面我談?wù)勛约旱慕ㄗh,如果意見不同,請留言討論。
什么是MVCMVC是Model—View—Controler的簡稱;即模型—視圖—控制;MVC是一種設(shè)計(jì)模式,它強(qiáng)制性的把應(yīng)用程序的輸入、處理和輸出分開。
視圖: 視圖是用戶看到并與之交互的界面;視圖向用戶顯示相關(guān)的數(shù)據(jù),并接受用戶的輸入;視圖不進(jìn)行任何業(yè)務(wù)邏輯處理。
模型: 模型表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)處理;相當(dāng)于JavaBean;一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。這提高了應(yīng)用程序的重用性
控制器: 當(dāng)用戶單擊Web頁面中的提交按鈕時(shí),控制器接受請求并調(diào)用相應(yīng)的模型去處理請求;然后根據(jù)處理的結(jié)果調(diào)用相應(yīng)的視圖來顯示處理的結(jié)果。
MVC的處理過程:首先控制器接受用戶的請求,調(diào)用相應(yīng)的模型來進(jìn)行業(yè)務(wù)處理,并返回?cái)?shù)據(jù)給控制器??刂破髡{(diào)用相應(yīng)的視圖來顯示處理的結(jié)果。并通過視圖呈現(xiàn)給用戶。
代碼如何分層大概知道什么是MVC了吧,其實(shí)就是:對代碼分層,各司其職。
現(xiàn)在看看題主的代碼怎么寫,我就按照我的習(xí)慣進(jìn)行一下分層:
JSP能直接訪問數(shù)據(jù)庫么?技術(shù)上是沒問題的,但是我們通常不會(huì)這么做。和數(shù)據(jù)庫完成交互的,一般代碼里面會(huì)有兩層:Model和Dao。Model相當(dāng)于JavaBean,是對數(shù)據(jù)庫表中數(shù)據(jù)的承載,Dao就是對數(shù)據(jù)庫表的操作。這里可以是JDBC,也可以使用ORM框架。
再往上,我一般會(huì)設(shè)置單獨(dú)的Service層,Service會(huì)有業(yè)務(wù)邏輯,可能會(huì)調(diào)用其他的Service,也可能會(huì)調(diào)用Dao層中的方法,也可能是調(diào)用其他系統(tǒng)的接口。
Service上面,再是Controller層,主要用于接受客戶端的數(shù)據(jù),并對數(shù)據(jù)進(jìn)行簡單的校驗(yàn)。(我這樣的寫法,Service層+Controller層 = MVC中的C)
瀏覽器(客戶端)與C層的交互,會(huì)使用的View。
當(dāng)然,靜態(tài)變量、配置、工具類等,都會(huì)有單獨(dú)的包,不在這里討論。
具體的流程所以具體的一個(gè)流程是這樣的?例如頁面輸入用戶身份證號(hào),查詢用戶詳細(xì)信息:
JSP中輸入身份證號(hào);
Controller層拿到View,對于代碼來說就是個(gè)Java對象,這一層可以增加驗(yàn)證,比如不能輸入空、null或是身份證號(hào)規(guī)則驗(yàn)證;
傳到Service層,這一層這個(gè)場景下,沒有什么特殊處理;
傳到Dao層,查詢數(shù)據(jù)庫,返回客戶信息:客戶姓名-張三,客戶性別-M;開始返回;
傳回Service層,把M轉(zhuǎn)成“男”(不過經(jīng)常是在SQL中直接關(guān)聯(lián)字典表了);
傳回Controller層,再傳回JSP展示。
我將持續(xù)分享Java開發(fā)、架構(gòu)設(shè)計(jì)、程序員職業(yè)發(fā)展等方面的見解,希望能得到你的關(guān)注。畢業(yè)設(shè)計(jì)打算做一個(gè)web的管理系統(tǒng)?
結(jié)論:“瓜田不納履,李下不整冠”。推薦資源,有賣課之嫌,因此本文只說方法。
前言python開發(fā)web系統(tǒng),完全勝任,有許多創(chuàng)業(yè)公司也采用python作為主業(yè)。
以下說實(shí)現(xiàn)功能的方法。
一攬子解決方案:Django學(xué)習(xí)django你哪兒都不需要去,去官網(wǎng),保證不迷路。
經(jīng)過社區(qū)中文貢獻(xiàn)者的努力,現(xiàn)在你都可以讀到正統(tǒng)的中文官方文檔了。
跟著官網(wǎng)的步驟,逐一練習(xí),它教會(huì)你搭建一個(gè)投票系統(tǒng)的所有技術(shù)細(xì)節(jié)。
Django是典型的MVC結(jié)構(gòu),所以你在官方文檔內(nèi)可以學(xué)到下面這幾項(xiàng)。
0 - 路由
訪問都需要路由文件。這樣定義。
1 - 控制器
承擔(dān)把模型數(shù)據(jù)讀寫操作后,發(fā)送到指定視圖文件的作用。
2 - 模型
說白了就是映射數(shù)據(jù)庫表,進(jìn)行基于對象的操作,也即是 ORM。
可以使用數(shù)據(jù)庫遷移工具生成數(shù)據(jù)庫表結(jié)構(gòu)。
3 - 視圖
編寫一個(gè)視圖,就是把控制器內(nèi)的數(shù)據(jù),發(fā)送到視圖文件,框架使用模板引擎解析視圖文件。
跟隨教程,略作修改,相信很快可以搭建起來你的系統(tǒng)。
短平快:Flask如果你僅需要一個(gè)API,或者對django這種大而全的框架不感冒。本來就是簡單的幾個(gè)接口,一些不復(fù)雜的功能,幾張表,何必那樣勞師動(dòng)眾,大炮打蚊子呢!
Flask就是這樣一個(gè)精簡的框架,提供給了功能,卻不過度設(shè)計(jì),讓開發(fā)者每個(gè)組件都可以有別的選項(xiàng),并加以集成。
難怪flask強(qiáng)勢不減,很快位居python web框架榜首。
flask有多小,多好用,我想用代碼最有說服力??聪旅孢@個(gè)最小的hello world應(yīng)用。
flask在一個(gè)文件內(nèi),就完成了路由和控制器功能。
那么我們關(guān)心,前端頁面如何渲染。它默認(rèn)使用的是Jinja2模板引擎。
web應(yīng)用沒有不用數(shù)據(jù)庫的,flask沒有orm的實(shí)現(xiàn),因?yàn)樗X得不需要,python有大把優(yōu)秀的orm庫,為何不用呢?
SQLAlchemy!
翻看手冊,學(xué)習(xí)一下,根據(jù)示例,實(shí)際操作一下就可以了。
Bottle.py
:單文件搞定一切如何你覺著上面兩個(gè)框架還是大,麻煩。那python也有合適的選項(xiàng),就是這個(gè)
bottle.py
框架,只有一個(gè)文件,實(shí)現(xiàn)了web功能需要的方方面面。看一下bottle的路由和控制器的實(shí)現(xiàn)。
它也使用的模板文件。
不過其數(shù)據(jù)庫操作沒有提供可用的ORM,所以需要第三方庫,或者寫原生的SQL。
學(xué)習(xí):不止讀書一條路學(xué)習(xí)不一定非得讀紙質(zhì)書,或者讀電子書。寫程序,搜索能力,提問題能力,極端重要。
下面說一下如何更好地使用搜索引擎。谷歌搜索就算了,科學(xué)上網(wǎng)難度大,風(fēng)險(xiǎn)高,需謹(jǐn)慎。
以微軟的bing搜索為例。
搜索引擎也是要關(guān)鍵詞進(jìn)行篩選的,下圖是一些關(guān)鍵詞:
總結(jié)起來用法大概是:
“” 雙引號(hào)表示完全匹配。結(jié)果中必須出現(xiàn)與搜索文本完全相同的內(nèi)容。
A -B 搜索包含A但不包含B的結(jié)果(請注意A后面的空格不能省略)
filetype 搜索對應(yīng)類型的文件。例如:filetype:ppt,僅搜索ppt文件
site 在某個(gè)網(wǎng)站內(nèi)搜索,比如:site:
link 搜索網(wǎng)頁中含有某鏈接的結(jié)果,比如搜索:link:
intitle 搜索標(biāo)題內(nèi)包含關(guān)鍵詞的結(jié)果
inurl 搜索網(wǎng)站地址中包含關(guān)鍵詞的結(jié)果
related 搜索相關(guān)網(wǎng)站
index of 可以突破網(wǎng)站入口下載
還有一項(xiàng)核心技能:如何提問。
會(huì)提問,你找到正確答案的機(jī)會(huì)非常大,可以節(jié)省許多時(shí)間。一個(gè)搜索的高級(jí)選項(xiàng)如下圖。
特別是編程相關(guān)的,一定要嘗試貼 error 信息。且通過英文關(guān)鍵字搜索。
結(jié)語上面沒有為你直接送上資源,卻給出了一些如何解決問題的方法。
編程就是這樣,不斷實(shí)踐,善用搜索,閱讀文檔,相信很快就可以做出自己的產(chǎn)品了。
Happpy coding :-)
我是@程序員小助手,持續(xù)分享編程與程序員成長相關(guān)的內(nèi)容,歡迎關(guān)注~~HTML寫的網(wǎng)頁如何實(shí)現(xiàn)與數(shù)據(jù)庫的交互?
以下內(nèi)容由“健談IT”回答
HTML寫的網(wǎng)頁如何實(shí)現(xiàn)與數(shù)據(jù)庫的交互?
HTML是用于構(gòu)建外國網(wǎng)頁的一門語言,他利用不同的標(biāo)簽以及標(biāo)簽屬性來表達(dá)一個(gè)我們所看到的頁面上面的內(nèi)容,同時(shí),他還使用CSS對頁面內(nèi)容進(jìn)行美化。對于題中所說的數(shù)據(jù)庫,一般我們可以分為web服務(wù)器上面的數(shù)據(jù)庫和本地的數(shù)據(jù)庫。
常用的WEB服務(wù)器上面的數(shù)據(jù)庫有MySQL、MS Sqlserver、Oracle等。本地?cái)?shù)據(jù)庫是指瀏覽器端為網(wǎng)頁開辟的用于緩存數(shù)據(jù)的數(shù)據(jù)庫,一般是SQLite數(shù)據(jù)庫。
下面就本地?cái)?shù)據(jù)庫和WEB數(shù)據(jù)庫來分別說明交互手段。
與本地?cái)?shù)據(jù)庫進(jìn)行交互本地?cái)?shù)據(jù)庫位于瀏覽器端,一般是使用js語言做相應(yīng)的交互處理,這里推薦一款非常好用的js庫用于網(wǎng)頁與本地?cái)?shù)據(jù)庫進(jìn)行交互。這個(gè)js庫就是
HTML5SQL.JS
。以下內(nèi)容是引用自官網(wǎng)上的一段:
html5sql is a light JavaScript module that makes working with the HTML5 Web Database a whole lot easier. Its primary function is to provides a structure for the SEQUENTIAL processing of SQL statements within a single transaction. This alone greatly simplifies the interaction with the database however it doesn't stop there. Many other smaller features have been included to make things easier, more natural and more convenient for the programmer.翻譯過來,大致意思就是說使用這個(gè)庫,我們可以很方便的使用js語言通過SQL語句與本地的h5 Web數(shù)據(jù)庫進(jìn)行交互。具體的使用手冊可以查看官網(wǎng)上的文檔。
與服務(wù)器上的數(shù)據(jù)庫進(jìn)行交互一般而言,無論是HTML也好,還是JavaScript也好, 都不能直接與數(shù)據(jù)庫進(jìn)行交互,而是通過后臺(tái)服務(wù)器上面的程序與數(shù)據(jù)庫進(jìn)行交互。
常用的web開發(fā)技術(shù),有ASP.net mvc,JAVA,PHP,Python web,
node.js
等。通過這些技術(shù)在后臺(tái)寫好與數(shù)據(jù)庫的交互——增、刪、改、查。服務(wù)端開發(fā)好之后,在本地我們可以通過form表單的提交進(jìn)行交互,但是這樣每次提交之后都會(huì)刷新頁面,對有一些情景的用戶體驗(yàn)不好。于是便出現(xiàn)了全新的一個(gè)名為ajax的技術(shù)。
通過ajax可以向WEB服務(wù)器提交各種請求(如:GET,POST等),然后在處理請求的過程中完成與數(shù)據(jù)庫的交互。
如上圖,就是使用jQuery進(jìn)行提交POST請求,第一個(gè)參數(shù)request_url就是WEB服務(wù)器上用來處理該請求的地址,第二個(gè)參數(shù)(花括號(hào)那一項(xiàng))就是提交到服務(wù)器的數(shù)據(jù),第三個(gè)參數(shù)就是處理完成之后再本地的回調(diào)函數(shù)。
希望我的回答對你有幫助,如果喜歡請關(guān)注“健談IT”。
javaweb開發(fā)流程?
我拋磚引玉吧,這里面說的,是指在業(yè)務(wù)需求明確的情況下: 一、開發(fā)框架技術(shù)選型:spring,struts, hibernate,ajax之類的。 二、數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì) 三、UI界面設(shè)計(jì)和實(shí)現(xiàn)(前臺(tái)) 四、后臺(tái)業(yè)務(wù)代碼實(shí)現(xiàn)、界面流轉(zhuǎn)的編碼實(shí)現(xiàn)(后臺(tái)以及前后銜接) 五、完善、細(xì)化功能(界面細(xì)節(jié)、程序效率優(yōu)化之類的) 六、集成測試
網(wǎng)站題目:JSP頁面與MySQL數(shù)據(jù)庫連接MVC模式等?(畢業(yè)設(shè)計(jì)打算做一個(gè)web的管理系統(tǒng)?)
文章網(wǎng)址:http://m.fisionsoft.com.cn/article/djcdgcd.html


咨詢
建站咨詢
