尚矽谷JavaEE 面試

才智咖 人氣:6.83K

除了 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 很多核心的 功能都是通過這些內建的攔