struts1的工做原理圖:html
客戶端發送請求(Http Request),被struts1的核心控件器ActionServlet接收,ActionServlet根據struts-config.xml裏的映射關係找到對就的Action,若找不到就返回500(服務器內部錯誤)到JSP頁面。如有就在Action裏的 excute()方法裏執行相應的邏輯操做,好比調用Model層的方法進行業務處理,而後經過ActionForward,跳轉到對應的輸出頁面。web
struts1的具體步驟:apache
1.導入struts1在lib文件下的全部jar包;服務器
2.把WEB-INF文件下的struts-config.xm文件複製到本身項目裏面的WEB-INF下,把註釋去掉只留下一對<struts-config>標籤;app
3.把WEB-INF文件下的web.xml文件裏的servlet配置複製到本身項目裏面的web.xml裏面;jsp
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>ui
</servlet>
url
<servlet-mapping>spa
<servlet-name>action</servlet-name>3d
<url-pattern>*.do</url-pattern>
</servlet-mapping>
4.建立有關的action類繼承org.apache.struts.action.Action重寫它的execute方法;
5.根據所寫的有關action類配置<struts-config>文件裏的東西如:
<action-mappings>
<action path="/addUser" type="com.qinkui.action.AddUserAction">
<forward name="scuess" path="/ok.jsp"></forward>
</action>
</action-mappings>
6.咱們還能夠寫一個繼承ActionForm的類,裏面的寫法和pojo類差很少,看須要接收哪些參數就寫什麼。配置好了就可來自動接收請求的表單數據
<struts-config>
<form-beans>
<form-bean name="userForm" type="com.qinkui.actionForm.UserActionForm"> </form-bean>
</form-beans>
<action-mappings>
<action path="/addUser" type="com.qinkui.action.AddUserAction" name="userForm">
<forward name="scuess" path="/ok.jsp"></forward>
</action>
</action-mappings>
</struts-config>
而後在action裏面接收數據的時候就能夠用如form.getXX來自動接受表單數據了。
(view)視圖層裏面的.do請求都被actionservlet中央控制器(在web.xml裏面配置好的)接收到,會讀取配置文件(srtuts-config)找到相應的請求,分發給相應的action進行處理。進行處理的時候須要傳幾個參數:request,response,mapping(把配置拿出來封裝成一個對象取出來), 還有一個actionForm(根據配置文件裏配置的name=「」來自動接收表單數據,最終調用業邏輯,拿到一些數據返回回來,返回actionservlet的是一個actionForward的跳轉信息,經過mapping.findForward以及對應的配置文件找到相應的頁面或者跳轉到另外一個action類進行處理。