java web 中struct2 中的action 與servlet是一回事嗎?有什么區(qū)別嗎?

java web 中struct2 中的action 與servlet是一回事嗎?有什么區(qū)別嗎?

百科

java web 中struct2 中的action 與servlet區(qū)別如下:1.Struts1的action完全就是Servlet因?yàn)锳ctionServlet類繼承自Servlet,而struts2就是純JavaBean,實(shí)現(xiàn)是基于***2,,Servlet從Web容器直接被調(diào)用,Action不直接被Web容器調(diào)用,而是被Web容器中的Strtus框架調(diào)用。3.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。

action與servlet用法區(qū)別

其實(shí)就是一樣的只不過action是那些MVC框架的控制層的叫法. 當(dāng)然,這個(gè)回答是籠統(tǒng)了點(diǎn),但是其實(shí)就那回事.那些MVC框架用Servlet(struts1)或者Filter(struts2)來封裝了HttpServletRequest和HttpServletResponse對象,在自己的Action類中實(shí)現(xiàn)控制層.從對象本身來說,確實(shí)不是一個(gè)東西,但是從設(shè)計(jì)分層(架構(gòu))上看,這對于使用框架的開發(fā)者來說,這難道不是一樣的道理?就是控制層!action是業(yè)務(wù)層?那要看這個(gè)工程項(xiàng)目的規(guī)模了.要是小網(wǎng)站,那可以把service都寫在action里面.但從這個(gè)角度來說,是把service層合并到控制層去了.

servlet和action的區(qū)別是什么啊,求解

Ser

Struts2的Action和Servlet有什么聯(lián)系,區(qū)別

Servlet也是在Web容器中運(yùn)行的,Servlet的生命周期容器啟動(dòng)的時(shí)候,會(huì)加載servlet的class,并new出這個(gè)對象,然后,當(dāng)用戶請求這個(gè)servlet的時(shí)候,容器會(huì)調(diào)用init方法初始化這個(gè) servlet,這也是整個(gè)生命周期中只會(huì)調(diào)用一次的方法,然后,會(huì)調(diào)用service方法,由這個(gè)方法調(diào)用doGet或doPost方法來響應(yīng)用戶,然后,容器在可用資源緊張或是長期沒有對Servlet發(fā)出請求的情況下,會(huì)銷毀這個(gè)servlet。struts是一個(gè)基于MVC模式的一個(gè)框架,分別是表示層(view)、控制層(controller)、和模型層(Model)。

其表示層使用Struts標(biāo)簽庫構(gòu)建。

來自客戶的所有需要通過框架的請求統(tǒng)一由叫ActionServlet的servlet接收(ActionServlet Struts已經(jīng)為我們寫好了,只要您應(yīng)用沒有什么特別的要求,它基本上都能滿足您的要求),根據(jù)接收的請求參數(shù)和Struts配置(struts-config.xml)中ActionMapping,將請求送給合適的Action去處理,解決由誰做的問題,它們共同構(gòu)成Struts的控制器。Action則是Struts應(yīng)用中真正干活的組件,開發(fā)人員一般都要在這里耗費(fèi)大量的時(shí)間,它解決的是做什么的問題,它通過調(diào)用需要的業(yè)務(wù)組件(模型)來完成應(yīng)用的業(yè)務(wù),業(yè)務(wù)組件解決的是如何做的問題,并將執(zhí)行的結(jié)果返回一個(gè)代表所需的描繪響應(yīng)的JSP(或Action)的ActionForward對象給ActionServlet以將響應(yīng)呈現(xiàn)給客戶。

關(guān)于action和servlet

補(bǔ)充:用到Fileupload時(shí),不知道lz是否設(shè)置了頁面上form的mime屬性,如果是的話,這時(shí)候的request已經(jīng)和以前的repuest不同了。另:回三樓,struts的源碼是按照模板方法模式組織的。

只要順藤摸瓜就可以看的到。

ActionServlet也是Servlet啊,映射文件和反射調(diào)用也沒有那么神秘,即使沒有這些文件,也可以直接按照模式方法組織struts結(jié)構(gòu)———沒有什么不同。