struts1的工做原理


struts1的工做原理圖:html

 

struts1的工做原理


     客戶端發送請求(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類進行處理。

相關文章
相關標籤/搜索