史上eclipse(最新版)搭建三大框架SSH(Struts,spring,hibernate)全面教程 一

首先簡單介紹下:在eclipse以前的版本都可以使用eclipse自帶的集成三大框架,而從eclipse8後,Apache公司就將該功能去掉,所以現在如果是8以上的eclipse集成ssh的話,就需要去下載jar進行自行配置,下面我就詳細的按照最新eclipse10進行三大框架的配置部署,以及三大框架的版本不同,而產生的一系列問題

eclipse8以前的集成框架方式很簡單:直接右鍵項目,然後myeclipse或者是eclipse就會在右側彈出來集成的方式,選擇對應就好了,這裏就不過多描述,下面看最新eclipse集成方式:

第一:下載對應的三大框架的JAR包

struts-2.5.22-all.zip:鏈接:https://pan.baidu.com/s/1Jmr6C6RN6ewjgSWYPi5BLw   提取碼:dkfh

hibernate-search-5.8.0.Final-dist.zip: 鏈接:https://pan.baidu.com/s/1PzQtK5orJQKgbHpRkBtJpA   提取碼:d6zx 

spring-framework-4.3.8.RELEASE-dist.zip:鏈接:https://pan.baidu.com/s/11YyAht2shvac10j-ZGrZQA   提取碼:74nr 

mybatis-3.5.2.zip:鏈接:https://pan.baidu.com/s/1tLO3LNoJ6dxc0o-ihmSeCg  提取碼:3tg2 

tomcat6.0:  鏈接:https://pan.baidu.com/s/1L_SNZbCTMh1zCzxEf231MQ   提取碼:rnqu 

第二步:eclipse新建web項目

當然新建的時候需要注意下,最新 eclipse是不會默認簡歷web文件的,所以這裏需要勾選下:

第三步:然後解壓【struts-2.5.22-all.zip】,找到改路徑下所有jar:

然後把下圖需要的jar,從上圖拷貝到工程目錄下的lib文件下 (這裏說明下,2.5以後的struts已經將log4-core已經xwork全部都整合到struts-core裏面了,所以這裏沒有必要在去下載這兩個jar)

第四步:配置web.xml文件,注意:由於struts版本不同所以其配置的過濾器寫法上略有差異,我們一般參照官方給的模板

<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SSHproject</display-name>
  <!--攔截器-->
  <filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>
  		org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
  	</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

這裏需要注意下就是filter-class的值,因爲當啓動服務器的時候,服務器會調用web.xml,然後執行這個fliter-class所指向的類文件,調永裏面的init()方法進行初始化賦值,這個地方,不能直接複製過去,要看自己的實際路徑,不然啓動的時候就會報下圖錯誤,因爲這個類找不到,所以就報錯了,所以這裏這個值,要按照自己實際的來寫:

實際的路徑怎麼看呢:因爲當你給上面的jar複製到工程目錄下的lib裏面後,eclipse會自動將jar添加到項目裏面,所以我們可以在這裏查看到本項目所有的jar情況,

然後找到這個

然後找到這個就是這個類在你項目中 實際位置,給這個路徑寫對就好了,

第五步:然後我們就可以寫action了,在src上面右鍵,然後新建立class,寫下面的方法,我這裏是測試方法,根據你們實際情況來

第六步:這步當然就是最重要的struts.xml文件了,一樣,點擊src,然後右鍵新建一個xml文件
然後配置如下,下面我是採用的通配符的方式進行訪問,其他兩種方式,官方不建議使用,所以這裏就不在細分了,其中打了注視的兩個地方需要注意下,因爲2.5後的struts被嚴格化了,所以只能單獨調用方法,不能使用通配符,所以這裏 需要加上兩個代碼:<!--允許動態調用方法,通配符+佔位符組合,必須加上這行代碼-->
    <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
    <constant name="struts.devMode" value="false"></constant>

還有就是package還得加一個屬性:strict-method-invocation="false" 默認是true,意思就是不使用多方式調用,所以這裏改爲false就行了,

一系列參數說明

這裏package標記中name屬性用作定義一個包名以區分其他人代碼,extends屬性用於繼承一個父包,namespace在struts2.5以後,必須加上,命名空間爲當前項目

  action標記中的name屬性是用作客戶端訪問時的通配符前面的單詞
  action標記中的class屬性則是用作與這個action所對應的aciton類的全路徑
  action標記中的method屬性時與action類的方法所對應的名稱,不寫默認爲execute方法
  action標記內result中的name屬性是method所在action的方法的返回值(根據返回值來做對應的處理),不寫默認爲success
  若返回值與name屬性值匹配則完成result標記內指定的路徑進行跳轉(本例就跳轉到我們事先編寫好的一個index.jsp頁面)

<?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
 	<!--允許動態調用方法,通配符+佔位符組合,必須加上這行代碼-->
    <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
    <constant name="struts.devMode" value="false"></constant>
    
     <!--strict-method-invocation是(嚴格方法訪問),默認爲true,不能使用動態方法調用功能,如果需要訪問多個方法,則改爲false-->
     <package  name="pk" extends="struts-default" namespace="/" strict-method-invocation="false">
        <action name="customer_*" class="com.ssh.CustomerAction" method="{1}">
            <result name="first">/first.jsp</result>
            <result name="one">/one.jsp</result>
            <result name="two">/two.jsp</result>
            <result name="three" type="redirectAction">other!otherAction</result>
        </action>
        <action name="other" class="com.ssh.CustomerAction">
			<result name="otherAction">/otherAction.jsp</result>
		</action>
     </package>
</struts>

第七步:當然就是部署項目了,我這裏以Tomcat爲準:點擊eclipse上面的window,然後選擇下面的preferences

然後打開這個界面,舊版本是可以在上面直接搜Tomcat就出來了,新版本不行,所以就得找到配置地方,選下面的server,然後選擇runtime environment,運行時環境,然後在點擊右邊的add進行添加服務器Tomcat

點擊add後,出現選擇對應的服務器版本,只管選擇就行了,選擇好了後,點擊next

點擊next後,會出現Tomcat的路徑,name可以隨便取名,第二個直接選擇你的Tomcat目錄就行了,然後點擊finsh

完成後,在項目的左邊就會出現你當前項目 服務器配置,這也是最新的eclipse纔有的,之前沒有的,下面的每個文件都可以更該,比如服務器的端口,已經啓動後的訪問首頁設置等等

第八步:還是找到最上面 window,然後選擇show view視圖顯示,然後選擇server,下面就會出現server的選項卡,

然後,我們在下面server找到剛纔添加的服務器,右鍵,add and remonve添加或者移除項目,

點擊了後,會出現這個界面左邊是待部署的項目,選擇左邊需要部署到Tomcat上 項目,然後點擊中間的add按鈕,就會將選擇的項目添加到右邊的框內,然後在點擊下面的finsh按鈕,即可將項目部署到Tomcat上,

點擊finsh後,我們可以去看下Tomcat的項目文件所在位置:找到之前下載的Tomcat的路徑,然後打開下圖的webapps文件夾,即可看到添加到Tomcat的項目

這就是我部署的項目

這個路徑和eclipse裏面的路徑是對應的,

還有就是index界面這些在沒有重定向後,不能放web-inf下面,不然瀏覽器訪問不到,因爲web-inf是有多重安全機制攔截,如果沒有重定向就訪問的話,會報錯:

 

第九步:就是啓動項目,驗證部署的結果了哦:選擇服務器,然後點擊右邊的啓動按鈕即可,啓動


然後在瀏覽器輸入訪問地址即可訪問:

第十步,index裏面我是採用的通配符,,注意橫槓前面的是struts裏面的action的name值,

因爲我是採用的通配符,所以這裏橫槓前面都可以寫一樣的,意思就是訪問同一個action

訪問不同的方法,就直接寫方法名就可以了,下面的橫槓後面的*號代表的是前面傳進來的方法名稱,method是方法參數

最後講一下Tomcat啓動過程:

  第一:當Tomcat啓動,程序會去調用Tomcat裏面的web.Xml文件,然後找到下面的首頁路徑

找到了後,Tomcat會執行context.xml,通過這個XML裏面的查詢源代碼找到本服務器的所在項目位置的web.xml,這樣就和項目裏面的web.xml關聯上了,然後就是上面的問題了,不過這裏要說下,這個context.xml文件是一個以內存爲單位的文件,意思就是當你該變了action後的值,改文件會自動去查詢內容是否變更,如果有變更,就會重新同步到Tomcat裏面,而且會將你本次的action的訪問路徑存入內存裏面,當你下次再次訪問的時候,指針將會直接從內存裏面拿東西,而不是在此讀取XML文件

本次eclipse部署struts到此結束,下章繼續部署hibernate。

謝謝大家


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章