(21) java web的struts2架構的使用

來源:互聯網
上載者:User

標籤:效率   一個   完整   exception   pack   需求   匯入   str   業務   

在javaweb開發過程中,如果只使用servlet,jdbc,jsp進行開發,也可以遵從MVC的模式,這時候,servlet相當於control層,屬於負責處理商務邏輯的控制器,同時也需要對擷取和返回資料,連結的跳轉和轉寄進行封裝。那麼就顯得比較臃腫了。(類似iOS開發中的MVC,如果viewController負擔了資料處理,業務處理和頁面跳轉邏輯,會變得臃腫不堪,所以後面MVVM,VIP等模式進一步細化了模組劃分)。

struts架構,是apache公司開發的一款基於servlet封裝而成的架構,遵從MVC的設計模式,能進一步提高開發效率。

如果脫離struts架構,使用Servlet做項目開發,在項目啟動以後,每個模組中的各個介面,都會被可能寫成一個Servlet,每個Servlet在伺服器啟動一個都會在第一訪問(可以配置)建時候被建立一個servlet對象。Struts架構,可以通過過濾器,把Servlet降低為一個,通過區分不同的action,來區分不同的業務功能介面,某種程度上最佳化了Servlet的實現。

 

structs2架構的使用:

1,匯入struts2的jar包:

  struts2-core-xxx.jar 核心功能包

  xwork-core-xxx.jar  xword核心包

  commons-fileupload-xxx.jar  檔案上傳功能包

  commons-io-xxx.jar   io讀寫支援檔案上傳功能

  ognl-xxx.jar   ognl運算式支援包

  commons-langxxx.jar lang的擴充

  freemarker-xxx.jar 標籤模版庫

  javassist-xxx.jar  位元組碼處理

  其他按需求匯入

2,配置web.xml

  主要是引入過濾器,StrutsPrepareAndExecuteFilter,核心過濾器

<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>

3,開發Action

  action是動作類,通常繼承ActionSupport

  action進行業務處理,執行具體的請求。

    必須返回字串類型String

    方法無參數。

  

package actions;import java.io.PrintWriter;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {/** *  */private static final long serialVersionUID = 1L;public String login() throws Exception {HttpServletResponse response = ServletActionContext.getResponse();          response.setContentType("text/html;charset=UTF-8");          PrintWriter out = response.getWriter();            out.write("success");        out.close();        return null;}}

  如果返回具體的字串,用戶端會展示struts.xml中配置的result返回頁面,返回null,然後進行response write方法,可以單純返回字串,相當於api介面

4,配置struts.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC          "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"          "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>    <package name="actions" extends="struts-default">    <action name="login" class="actions.LoginAction" method="login">    <result name="success">/index.jsp</result>    </action>    </package> </struts>

  name: 訪問的介面uri

  class:具體執行的Action類,帶完整包名

  method:Action處理的具體函數名

(21) java web的struts2架構的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.