Java Web項(xiàng)目的控制器層應(yīng)該寫什么代碼?
問題描述
我們現(xiàn)在在做畢業(yè)項(xiàng)目,要求不用框架手寫一個(gè)系統(tǒng)。那么servlet是不是就相當(dāng)于控制器?
比如說我寫一個(gè)用戶登錄系統(tǒng),這個(gè)控制器里面應(yīng)該寫什么內(nèi)容呢?我是不是在servlet中接收到post數(shù)據(jù),然后傳遞到service層中,然后service層再根據(jù)數(shù)據(jù)new出實(shí)體,并且對實(shí)體操作,然后將這個(gè)操作通過dao應(yīng)用到數(shù)據(jù)庫中?
問題解答
回答1:你的想法就是框架中的分層思想,這樣做沒什么問題。
回答2:不用框架手寫一個(gè)系統(tǒng)的話,你完全可以不用mvc結(jié)構(gòu),為啥一定要拘泥于什么是控制器呢,記住一切服務(wù)器只干了以下工作“收到一些數(shù)據(jù),算一算,返回去一些數(shù)據(jù)”,能滿足這個(gè)要求你的系統(tǒng)就成型了,完全沒必要拘泥于什么結(jié)構(gòu)
回答3:servlet的指責(zé)只有兩個(gè),接收請求與轉(zhuǎn)發(fā)。接收表單數(shù)據(jù),并封裝成相應(yīng)對象,然后傳給service
回答4:首先你要了解幾點(diǎn),框架也是在Servlet的基礎(chǔ)上封裝之后變得更加容易使用而已。你的思路是對的,但是我建議你直接看看Servlet的API你就馬上明了。大概跟你說下思路吧。Servlet啟動(dòng)之后,tomcat幫你負(fù)責(zé)監(jiān)聽http請求和轉(zhuǎn)發(fā)給你的應(yīng)用。每次來了一個(gè)新的請求,你所寫的Servlet中的service方法都會(huì)被調(diào)用,然后根據(jù)請求的內(nèi)容,分別調(diào)用doGet,doPost等方法,所以你只要繼承Servlet之后,覆蓋這幾個(gè)方法的實(shí)現(xiàn)。至于底下的分層。跟Servlet是沒有關(guān)系的。你要理解,你分層的目的是降低耦合性。如果需要幫助,歡迎私信我。最近正在模仿tomcat做一個(gè)web服務(wù)器,所以對這一塊相對有點(diǎn)了解。
相關(guān)文章:
1. python - 獲取到的數(shù)據(jù)生成新的mysql表2. 為什么python中實(shí)例檢查推薦使用isinstance而不是type?3. mysql里的大表用mycat做水平拆分,是不是要先手動(dòng)分好,再配置mycat4. window下mysql中文亂碼怎么解決??5. sass - gem install compass 使用淘寶 Ruby 安裝失敗,出現(xiàn) 4046. python - (初學(xué)者)代碼運(yùn)行不起來,求指導(dǎo),謝謝!7. 為啥不用HBuilder?8. python - flask sqlalchemy signals 無法觸發(fā)9. python的文件讀寫問題?10. javascript - js 對中文進(jìn)行MD5加密和python結(jié)果不一樣。
