Java Web項(xiàng)目的控制器層應(yīng)該寫(xiě)什么代碼?
問(wèn)題描述
我們現(xiàn)在在做畢業(yè)項(xiàng)目,要求不用框架手寫(xiě)一個(gè)系統(tǒng)。那么servlet是不是就相當(dāng)于控制器?
比如說(shuō)我寫(xiě)一個(gè)用戶(hù)登錄系統(tǒng),這個(gè)控制器里面應(yīng)該寫(xiě)什么內(nèi)容呢?我是不是在servlet中接收到post數(shù)據(jù),然后傳遞到service層中,然后service層再根據(jù)數(shù)據(jù)new出實(shí)體,并且對(duì)實(shí)體操作,然后將這個(gè)操作通過(guò)dao應(yīng)用到數(shù)據(jù)庫(kù)中?
問(wèn)題解答
回答1:你的想法就是框架中的分層思想,這樣做沒(méi)什么問(wèn)題。
回答2:不用框架手寫(xiě)一個(gè)系統(tǒng)的話(huà),你完全可以不用mvc結(jié)構(gòu),為啥一定要拘泥于什么是控制器呢,記住一切服務(wù)器只干了以下工作“收到一些數(shù)據(jù),算一算,返回去一些數(shù)據(jù)”,能滿(mǎn)足這個(gè)要求你的系統(tǒng)就成型了,完全沒(méi)必要拘泥于什么結(jié)構(gòu)
回答3:servlet的指責(zé)只有兩個(gè),接收請(qǐng)求與轉(zhuǎn)發(fā)。接收表單數(shù)據(jù),并封裝成相應(yīng)對(duì)象,然后傳給service
回答4:首先你要了解幾點(diǎn),框架也是在Servlet的基礎(chǔ)上封裝之后變得更加容易使用而已。你的思路是對(duì)的,但是我建議你直接看看Servlet的API你就馬上明了。大概跟你說(shuō)下思路吧。Servlet啟動(dòng)之后,tomcat幫你負(fù)責(zé)監(jiān)聽(tīng)http請(qǐng)求和轉(zhuǎn)發(fā)給你的應(yīng)用。每次來(lái)了一個(gè)新的請(qǐng)求,你所寫(xiě)的Servlet中的service方法都會(huì)被調(diào)用,然后根據(jù)請(qǐng)求的內(nèi)容,分別調(diào)用doGet,doPost等方法,所以你只要繼承Servlet之后,覆蓋這幾個(gè)方法的實(shí)現(xiàn)。至于底下的分層。跟Servlet是沒(méi)有關(guān)系的。你要理解,你分層的目的是降低耦合性。如果需要幫助,歡迎私信我。最近正在模仿tomcat做一個(gè)web服務(wù)器,所以對(duì)這一塊相對(duì)有點(diǎn)了解。
相關(guān)文章:
1. windows誤人子弟啊2. 冒昧問(wèn)一下,我這php代碼哪里出錯(cuò)了???3. MySQL主鍵沖突時(shí)的更新操作和替換操作在功能上有什么差別(如圖)4. python - linux怎么在每天的凌晨2點(diǎn)執(zhí)行一次這個(gè)log.py文件5. 數(shù)據(jù)庫(kù) - Mysql的存儲(chǔ)過(guò)程真的是個(gè)坑!求助下面的存儲(chǔ)過(guò)程哪里錯(cuò)啦,實(shí)在是找不到哪里的問(wèn)題了。6. 實(shí)現(xiàn)bing搜索工具urlAPI提交7. mysql優(yōu)化 - MySQL如何為配置表建立索引?8. 如何用筆記本上的apache做微信開(kāi)發(fā)的服務(wù)器9. 我在網(wǎng)址中輸入localhost/abc.php顯示的是not found是為什么呢?10. 關(guān)于mysql聯(lián)合查詢(xún)一對(duì)多的顯示結(jié)果問(wèn)題
