- 相關(guān)推薦
尚硅谷JavaEE 面試
除了 SSH 以外還要會(huì)什么 ?
提要
Struts2 面試問題 Hibernate 面試問題 Spring & SpringMVC 面試問題 SpringSecurity & Shiro 面試問題 JPA & SpringData 面試問題 項(xiàng)目面試問題
簡(jiǎn)述 Struts2 的工作流程
、. 請(qǐng)求發(fā)送給 StrutsPrepareAndExecuteFilter ②. StrutsPrepareAndExecuteFilter 判定該請(qǐng)求是否是一個(gè) Struts2 請(qǐng)求 ③. 若該請(qǐng)求是一個(gè) Struts2 請(qǐng)求,則 StrutsPrepareAndExecuteFilter 把 請(qǐng)求的處理交給 ActionProxy ④. ActionProxy 創(chuàng)建一個(gè) ActionInvocation 的實(shí)例,并進(jìn)行初始化 ⑤. ActionInvocation 實(shí)例在調(diào)用 Action 的過程前后,涉及到相關(guān)攔截器 (Intercepter)的調(diào)用。 ⑥. Action 執(zhí)行完畢,ActionInvocation 負(fù)責(zé)根據(jù) struts.xml 中的配置找 到對(duì)應(yīng)的返回結(jié)果。調(diào)用結(jié)果的 execute 方法,渲染結(jié)果。 ⑦. 執(zhí)行各個(gè)攔截器 invocation.invoke() 之后的代碼 ⑧. 把結(jié)果發(fā)送到客戶端
HttpServletRequest
StrutsPrepareAndExecuteFilter Interceptor 1 ActionProxy Interceptor 2 Interceptor 3 TagSubsystem Configuration Manager Action Action Invocation Result Template JSP、FreeMarker…
ActionMapper
struts.xml
Interceptor 3
Interceptor 2
Interceptor 1
HttpServletResponse
Struts2 攔截器 和 過濾器 的區(qū)別:
①、過濾器依賴于Servlet容器,而攔截器不依賴 于Servlet容器。 ②、Struts2 攔截器只能對(duì) Action 請(qǐng)求起作用, 而過濾器則可以對(duì)幾乎所有請(qǐng)求起作用。 ③、攔截器可以訪問 Action 上下文 (ActionContext)、值棧里的對(duì)象(ValueStack),而 過濾器不能. ④、在 Action 的生命周期中,攔截器可以多次調(diào) 用,而過濾器只能在容器初始化時(shí)被調(diào)用一次。
①. 基于 MVC 架構(gòu),框架結(jié)構(gòu)清晰。 ②. 使用 OGNL: OGNL 可以快捷的訪問值棧中的 數(shù)據(jù)、調(diào)用值棧中對(duì)象的方法 ③. 攔截器: Struts2 的攔截器是一個(gè) Action 級(jí)別的 AOP, Struts2 中的許多特性都是通過攔截器來(lái)實(shí) 現(xiàn)的, 例如異常處理,文件上傳,驗(yàn)證等。攔截器 是可配置與重用的 ④. 多種表現(xiàn)層技術(shù). 如:JSP、FreeMarker、 Velocity 等
為什么要使用 Struts2 & Struts2 的優(yōu) 點(diǎn):
Struts2 如何訪問 HttpServletRequest、 HttpSession、ServletContext 三個(gè)域?qū)?象
、. 與 Servlet API 解耦的訪問方式 > 通過 ActionContext 訪問域?qū)ο髮?duì)應(yīng)的 Map 對(duì)象 > 通過實(shí)現(xiàn) Aware 接口使 Struts2 注入對(duì)應(yīng)的 Map 對(duì)象 ②. 與 Servlet API 耦合的訪問方式 > 通過 ServletActionContext 直接獲取 Servlet API 對(duì)象 > 通過實(shí)現(xiàn) ServletXxxAware 接口的方式使 Struts2 注 入對(duì)應(yīng)的對(duì)象
Struts2 中的默認(rèn)包 struts-default 有 什么作用?
①. struts-default 包是 struts2 內(nèi)置的,它定義了 struts2 內(nèi)部的眾多攔截器和 Result 類型,而 Struts2 很多核心的 功能都是通過這些內(nèi)置的攔
【尚硅谷JavaEE 面試】相關(guān)文章:
美國(guó)研究生電話面試小技巧 -尚友學(xué)院街11-21
硅谷最佳職場(chǎng)光環(huán)褪色 裁員減薪消息頻傳11-24
面試技巧 求職面試之面試禮儀11-20
面試指南-面試的種類02-18
成功面試的面試技巧11-22
面試的特點(diǎn)面試技巧11-22
面試與offer 面試經(jīng)歷11-19
面試技巧 電話面試11-19