中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何搭建一個Struts2.1.6環境

發布時間:2021-07-22 14:58:00 來源:億速云 閱讀:126 作者:Leah 欄目:編程語言

如何搭建一個Struts2.1.6環境,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

Struts2.1.6的環境搭建

首先下載Struts2.1.6。

然后下載Eclipse for JavaEE(3.4 or 3.5),點擊下圖選中的鏈接,進入下一個頁面,找到能夠下載的地方下載就行。

JDK6.0和Tomcat6.0,請大家自行下載。

另外,建議下載JSP標準標準庫JSTL。

暫時下載這些,以后,需要用到其他的時,再下載。至于JDK6.0,Tomcat6.0,Eclipse的安裝,請大家自行安裝,在這里就不演示安裝過程了。

關于Eclipse的部分用法,如在Eclipse里配置Tomcat服務器,新建動態Web項目等,請上網找一下其他的資料學習一下。

Struts2.1.6:***個項目

來開始我們的項目吧,先做個簡單的測試,New一個Dynamic Web Project,起名為“SimpleWeb”,將Struts2.1.6的下載包解壓后得到的lib目錄,在lib目錄下,找到以面的jar包:

xwork-2.1.2.jar
struts2-core-2.1.6.jar
struts2-convention-plugin-2.1.6.jar
ognl-2.6.11.jar
freemarker-2.3.13.jar
commons-loggin-1.0.4.jar
commons-fileupload-1.2.1.jar

把這些包放進項目的lib目錄下,同時,建議也把JSTL的核心jar包也放到lib目錄,這些JSTL的包主要有:

jstl.jar
standard.jar

我們先要在項目WEB-INF下的web.xml文件中配置Struts2應用,配置后,web.xml全部代碼如下:

< ?xml version="1.0" encoding="UTF-8"?> < web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">   < display-name>SimpleWeb< /display-name>   < filter>     < filter-name>Struts2< /filter-name>     < filter-class>org.apache.struts2.dispatcher.FilterDispatcher< /filter-class>   < /filter>   < filter-mapping>     < filter-name>Struts2< /filter-name>     < url-pattern>/*< /url-pattern>   < /filter-mapping> < /web-app>

我們在項目的WEB-INF目錄下新建一個文件夾命名為“content”,這個文件夾名一定要這樣,如果寫成別的,要另外配置一下,但初學的話,就按它默認的吧。我們新建的這個content目錄,就是專門用來放JSP文件的。

我們在content目錄下建一個JSP文件,命名為“hello.jsp”,內容可以很簡單,就在里面寫一個簡單的話:Hello SImple,代碼略。

這時,整個項目的文件夾視圖如下:

如何搭建一個Struts2.1.6環境

我運行Tomcat服務器,測試一下Struts2配置能不能用。首先我們在地址欄輸入:http://localhost:8060/SimpleWeb/hello.jsp ,很遺憾,不管用了,報錯了:HTTP Status 404 - The requested resource (/SimpleWeb/hello.jsp) is not available.

正確的做法是,輸入地址: http://localhost:8060/SimpleWeb/hello.action 或者http://localhost:8060/SimpleWeb/hello 如果出現如下結果,就說明Struts2配置成功了。

如何搭建一個Struts2.1.6環境

注意一點,這只是在WEB-INF/content目錄下的文件是通過這種方式訪問的;如果不是在這目錄下,而在項目目錄下,即Eclipse對應項目的WebContent下,就不能這樣訪問了。舉例說,在項目根目錄下建個hello.jsp的文件,則我們只能通過http://localhost:8060/SimpleWeb/hello.jsp來訪問。

能通過hello.action或者hello訪問WEB-INF/content下的hello.jsp,這種做法,是Struts2.1.6跟Struts2.0不同之處之一。使用時請確保你使用的Struts版本是2.1.6+。相關的命名規范與默認的action匹配規則,請參考官方的文檔:http://struts.apache.org/2.1.6/docs/convention-plugin.html

我們再新建一個Java類,命名為HelloAction,此類須繼承com.opensymphony.xwork2.ActionSupport,代碼如下:

package cn.simple.action;   import org.apache.struts2.convention.annotation.Result;  import org.apache.struts2.convention.annotation.Results;  import com.opensymphony.xwork2.ActionSupport;    public class HelloAction extends ActionSupport {       @Override     public String execute() throws Exception {          System.out.println("HelloAction execute ... ");          return SUCCESS;      }  }

讓我們再次訪問:http://localhost:8060/SimpleWeb/hello.action 或者http://localhost:8060/SimpleWeb/hello

可以看出,在Eclipse的控制臺確定打印出了以下信息,這說明,訪問請求確定經過了HelloAction類。

如何搭建一個Struts2.1.6環境

同時頁面是跳到了WEB-INF/content/hello.jsp文件(如下圖),這說明請求的確是從HelloAction類轉發到了hello.jsp。

如何搭建一個Struts2.1.6環境

看來,好像在不做什么配置,Struts2.1.6也會找到名為HelloAction的類來處理…/hello.action或者…/hello的請求,而好像也沒有做什么配置,HelloAction會自動將請求轉發給名為hello.jsp的頁面,這正是Struts2.1.6的妙用之處,全賴struts2-convention-plugin-2.1.6.jar這個插件,具體了解,可看我上面提供的官方鏈接,或者看這位帥哥的翻譯之作:struts2采用convention-plugin實現零配置。

看了上面的HelloAction的代碼若感到莫名其妙的話,我這里把那些默認的、約定俗成的代碼也寫出來,這樣,修改后的HelloAction類如下:

package cn.simple.action;   import org.apache.struts2.convention.annotation.Result;  import org.apache.struts2.convention.annotation.Results;  import com.opensymphony.xwork2.ActionSupport;   @Results({      @Result(name="success",location="hello.jsp",type="dispatcher")  })  public class HelloAction extends ActionSupport {       @Override     public String execute() throws Exception {          System.out.println("HelloAction execute ... ");          return SUCCESS;      }  }

這樣就容易明白許多了。解釋如下:

name = “success” 跟 Action里的execute()方法的返回值SUCCESS(也可寫成“success”)對應,即若此Action類一旦返回SUCCESS,就會跳到對應的這個Result去處理。
location = “hello.jsp”,表示請求由這個Action跳轉到hello.jsp這個頁面。
type = “dispathcer”,表示轉發方式,具體解釋見下面。

其中type=”dispatcher”表示請求轉發,還有另一種常用的叫做type=”redirect”重定向,在下文會出現。Struts2.1.6的請求轉發和重定向的區別其實跟Java Servlet里的是差不多的。Servlet里與其功能等價的的代碼片斷如下:

request.getRequestDispatcher("hello.jsp").forward(request, response);    //請求轉發  response.sendRedirect("hello.jsp");    //重定向

兩者的區別可以這樣理解:請求轉發(Dispatcher)在轉發到的另一頁面(如hello.jsp)還能保留Request域里的東西,而重定向(Redirect)的話,就跟它的名字“重定向”一樣,跳到了另一個頁面(如hello.jsp),不再跟原來頁面(或者一個action、或者一個Servlet,或者JSP頁面)有任何瓜葛,不會保存原來頁面Request域的東西。還有一個表面上的區別就是:請求轉發(Dispatcher)到另一個頁面(如hello.jsp)后,地址欄里顯示的仍然是上一個頁面(這里稱頁面不太合適)的路徑(如hello.action),而重定向則顯示的是新跳到的那個頁面的路徑。

關于如何搭建一個Struts2.1.6環境問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江山市| 临邑县| 红原县| 中山市| 平昌县| 定西市| 甘洛县| 涡阳县| 台东市| 陆丰市| 平泉县| 从化市| 石景山区| 资中县| 昌平区| 威海市| 自贡市| 凉山| 贵南县| 五台县| 遵化市| 余干县| 滁州市| 许昌县| 炎陵县| 鱼台县| 礼泉县| 彝良县| 钟祥市| 屏南县| 临汾市| 容城县| 祥云县| 浦江县| 涪陵区| 义马市| 资讯| 连州市| 阿荣旗| 龙口市| 临潭县|