<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                在應用成熟的框架以前,我們規整下思路,那就是:我們到底需要什么?通過對TP的學習,相信我們不難總結出以下幾點: * 我們需要一個單入口模式,將所有的請求,都發送到這個單入口地址上。 * 這個單入口地址,可以根據我們的URL和請求數據,為我們自動的調用相關類的相關方法(action)。 * 由于在此進行了數據轉發,所以我們也會把這個功能稱為:路由。 * 每一個action都可以接收到相關的請求信息,并按請求信息做出動作。 * 在action中,可以將數據傳給V層,然后對V層進行渲染,并取回渲染后的數據。最終返回給用戶。 總之:我們現在需要的是類似于tp的一些基礎的功能。 ## 多入口與單入口 在jsp開發中,我們的jsp文件充當了入口,并結合servlet與javabean來實現了對后臺服務及數據的請求與處理。由于多個jsp文件都是可以直接并訪問到了,所以我們又稱之為多入口。 基本的訪問流程如下: ![](https://box.kancloud.cn/514eacaa9da5297ca42bdd8e029258ea_472x223.png) 而單入口大多是這個樣子。 ![](https://box.kancloud.cn/2fd8ec80a3a22fbcfc8392256299eda4_805x342.png) # Struts 在JAVA EE的世界里,SSH(Spring Struts Hibernate)一統天下。有人說第一個S是spring,也有人說第一個S是struts。從權重的角度上來講,spring的確是要大于struts的,但從學習順序上來講,無疑struts應該放在首位。 通過學習thinkphp,我們知道,thinkphp的兩個比較核心的類為`think\Controller`和`think\Model`。其中,`think\Controller`可以實現獲取數據請求(`$this->resquest()`), 向V層傳值(`$this->assign()`), 渲染V層(`$this->fetch()`)等目的。`think\Model`主要實現與數據庫中的數據表進行對接,對數據表進行CURD操作及處理數據表間的關系(`1:1, 1:n, m:n`)等。 ![https://box.kancloud.cn/5bf4e9e392635a7ba27d8852156d80d9_1418x772.png](https://box.kancloud.cn/5bf4e9e392635a7ba27d8852156d80d9_1418x772.png) JAVAEE中,我們現在可以這樣理解,thinkphp = struts + hibernate。`struts`實現了`think\Controller`的功能,而hibernate實現了`think\Model`的功能。其中struts負責與V層,M層對接,hibernate負責與C層及數據表對接。 ![https://box.kancloud.cn/2a2523b5542cc4424c7a02d22636f73a_1784x732.png](https://box.kancloud.cn/2a2523b5542cc4424c7a02d22636f73a_1784x732.png) 當然了,除了`think\Controller`和`think\Model`兩在核心類文件外,TP還有一套默認的路由(MCA)來實現數據轉發,此外,還可以手動的來定義路由。在javaee中,該項工作也是由struts來負責的。 那大名鼎鼎的spring呢? spring更多的是在負責解耦,有了spring后,各個類之間的關系變的沒有那么緊密了。我們在進行程序開發的時候,可以使用spring來更好的達到像堆積木一樣來寫程序的目的。如果我們并不在意代碼的復用性,那么大可以不使用spring來降低前期我們對JAVAEE學習的難度。事實上,本教程也正是這么做的。 下一節中,讓我們來共同學習Struts是如何進行配置最終實現單入口的。 # 上節作業 ``` <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>welcome.html</welcome-file> </welcome-file-list> ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看