尚硅谷JavaEE 面試

學識都 人氣:6.95K

除了 SSH 以外還要會什麼 ?

尚硅谷JavaEE 面試

提要

Struts2 面試問題 Hibernate 面試問題 Spring & SpringMVC 面試問題 SpringSecurity & Shiro 面試問題 JPA & SpringData 面試問題 項目面試問題

簡述 Struts2 的工作流程

①. 請求發送給 StrutsPrepareAndExecuteFilter ②. StrutsPrepareAndExecuteFilter 判定該請求是否是一個 Struts2 請求 ③. 若該請求是一個 Struts2 請求,則 StrutsPrepareAndExecuteFilter 把 請求的處理交給 ActionProxy ④. ActionProxy 創建一個 ActionInvocation 的實例,並進行初始化 ⑤. ActionInvocation 實例在調用 Action 的過程前後,涉及到相關攔截器 (Intercepter)的調用。 ⑥. Action 執行完畢,ActionInvocation 負責根據 中的配置找 到對應的返回結果。調用結果的 execute 方法,渲染結果。 ⑦. 執行各個攔截器 ke() 之後的代碼 ⑧. 把結果發送到客戶端

HttpServletRequest

StrutsPrepareAndExecuteFilter Interceptor 1 ActionProxy Interceptor 2 Interceptor 3 TagSubsystem Configuration Manager Action Action Invocation Result Template JSP、FreeMarker…

ActionMapper

Interceptor 3

Interceptor 2

Interceptor 1

HttpServletResponse

Struts2 攔截器 和 過濾器 的區別:

①、過濾器依賴於Servlet容器,而攔截器不依賴 於Servlet容器。 ②、Struts2 攔截器只能對 Action 請求起作用, 而過濾器則可以對幾乎所有請求起作用。 ③、攔截器可以訪問 Action 上下文 (ActionContext)、值棧裏的對象(ValueStack),而 過濾器不能. ④、在 Action 的生命週期中,攔截器可以多次調 用,而過濾器只能在容器初始化時被調用一次。

①. 基於 MVC 架構,框架結構清晰。 ②. 使用 OGNL: OGNL 可以快捷的訪問值棧中的 數據、調用值棧中對象的方法 ③. 攔截器: Struts2 的'攔截器是一個 Action 級別的 AOP, Struts2 中的許多特性都是通過攔截器來實 現的, 例如異常處理,文件上傳,驗證等。攔截器 是可配置與重用的 ④. 多種表現層技術. 如:JSP、FreeMarker、 Velocity 等

爲什麼要使用 Struts2 & Struts2 的優 點:

Struts2 如何訪問 HttpServletRequest、 HttpSession、ServletContext 三個域對 象

①. 與 Servlet API 解耦的訪問方式 > 通過 ActionContext 訪問域對象對應的 Map 對象 > 通過實現 Aware 接口使 Struts2 注入對應的 Map 對象 ②. 與 Servlet API 耦合的訪問方式 > 通過 ServletActionContext 直接獲取 Servlet API 對象 > 通過實現 ServletXxxAware 接口的方式使 Struts2 注 入對應的對象

Struts2 中的默認包 struts-default 有 什麼作用?

①. struts-default 包是 struts2 內置的,它定義了 struts2 內部的衆多攔截器和 Result 類型,而 Struts2 很多核心的 功能都是通過這些內置的攔