Struts2的Action和Servlet有什么联系,区别?
生活随笔
收集整理的這篇文章主要介紹了
Struts2的Action和Servlet有什么联系,区别?
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
是這樣的,樓主。你看過源碼就知道
Struts1的action完全就是Servlet
因?yàn)锳ctionServlet類繼承自Servlet
而struts2就是純JavaBean。。他的實(shí)現(xiàn)是基于攔截器
當(dāng)FilterDispather攔截到請(qǐng)求以后,?會(huì)根據(jù)你的請(qǐng)求,去xml中找相關(guān)的bean,然后創(chuàng)建一個(gè)JavaBean
Struts1的action完全就是Servlet
因?yàn)锳ctionServlet類繼承自Servlet
而struts2就是純JavaBean。。他的實(shí)現(xiàn)是基于攔截器
當(dāng)FilterDispather攔截到請(qǐng)求以后,?會(huì)根據(jù)你的請(qǐng)求,去xml中找相關(guān)的bean,然后創(chuàng)建一個(gè)JavaBean
跟Servlet沒半毛錢關(guān)系
兩者都是在Server端被人請(qǐng)求調(diào)用的代碼,
Servlet從Web容器直接被調(diào)用,
Action不直接被Web容器調(diào)用,而是被Web容器中的Strtus框架調(diào)用。
Action怎么寫,Struts框架說了算,跟Servlet沒太大關(guān)系。
需要把Action看成一個(gè)前端的邏輯單元,甚至是獨(dú)立于Struts框架本身(所以建議在Action中盡量不要使用Struts2的API,比如HttpRequest,?ActionContext等等)。Servlet完全是容器相關(guān)的,所以從這一點(diǎn)上說,Action更加抽象化了一層。當(dāng)然如果從MVC模式看的話Struts?1中的Servlet應(yīng)該算是Controller部分,Action應(yīng)該看成是Model部分;而在Struts?2中用FilterDispatcher代替了Servlet。
總結(jié)
以上是生活随笔為你收集整理的Struts2的Action和Servlet有什么联系,区别?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: action和servlet的关系
- 下一篇: Struts2中Action访问Serv