# 產學-學習筆記01 環境建置.Struts2 ###### tags: `學習筆記` `JAVA` `查詢類` `Struts2` --- # 總攬 * ### 課程內容:框架framework 1. Front-end前端(30%): CSS,javaScript,jquery ,boot-strap,node.js, Typecript ,vue , angular , react 2. Back-end後端(70%): struts2 , Spring , Hibernat * ### 開發環境與工具 1. JDK8.0 2. IDE 3. Eclipse javaEE 4. Visual studio code 5. server 6. web-server:TomEE(完整,大,慢)-可用tomcat(簡易,小,快) 7. database-server:Mysql 5.6 * ### Maven管理專案 1. Eclipse 新增 2. Build path->servlet api 3. Pom.xml 4. Maven repository --- # Struts2 * ### MVC 1. V(view):現在少用 2. C(Control):主要的應用目的,取代servlet * ### 撰寫流程 1. Pom.xml載入JAR 2. Web.xml通知webserver預先載入 3. 撰寫 action檔 i. Extends ActionSupport ii. Public String execute() throws Exception * ### 撰寫struts.xml管理控制流程 * ### Struts2-撰寫流程 1. MVC->C(controller) 2. http://struts.apache.org 3. 配置 (1) Web.xml   a. 定義struts2所需的jar (2)建立action類別  目的:取代servlet  a. ActionSupport   a1. 定義所需bean   a2.`Public String excute() throws Exception` (3)配置struts.xml  目的:實體化action物件  a. 指定action目的網頁 4. Struts五個回傳專有名詞(專有名詞不用雙引號) (1) SUCCESS=”success” (2) ERROR=”error” (3) NONE=”none” (4) INPUT=”input” (5) LOGIN=”login” --- # 環境安裝 ### 1.安裝jdk.jre(開發環境) jdk-8u221-windows-x64 檢查 ![](https://i.imgur.com/Ac3lfs9.png) ### 2.安裝Eclipse javaEE(開發工具) https://www.eclipse.org/downloads/ 有勾選項目都勾 ![](https://i.imgur.com/8Wg8mJH.png) ![](https://i.imgur.com/apve6kg.png) ![](https://i.imgur.com/oKpqeIv.png) 裝好後先別開啟 ![](https://i.imgur.com/dCLzbTt.png) ![](https://i.imgur.com/CqZL3Gu.png) ### 3.安裝TomEE(保留,建議裝Tomcat比較快,下方)(Server) :::spoiler 點選顯示完整內容 https://tomee.apache.org/ ![](https://i.imgur.com/Yg3w8wN.png) ![](https://i.imgur.com/ATcstb3.png) 解壓縮到工作資料夾 ![](https://i.imgur.com/rmNFpg2.png) 開啟eclipse,選擇工作資料夾(剛剛放tomee的地方) ![](https://i.imgur.com/PrB0Z1K.png) 安裝 掛入tomee server ![](https://i.imgur.com/3txy7Jp.png) ![](https://i.imgur.com/eZyhQfs.png) 9.0就是tomee ![](https://i.imgur.com/KaCVDkM.png) 選擇tomee資料夾(要選到可以看到下圖6個圖示的地方) ![](https://i.imgur.com/I3ObQst.png) 掛入後 ![](https://i.imgur.com/UQjL2fA.png) tomee(建專案解決api,同Tomcat) ![](https://i.imgur.com/rD59f2x.png) Server web.xml 238行 false改true(TomEE才要)-改好後server重啟 這樣就可以jsp改甚麼,網頁重新整理就自動改(java檔修改還是要重run server) ![](https://i.imgur.com/SC6eGJl.png) ::: ### 3.安裝Tomcat(Server) https://tomcat.apache.org/download-80.cgi apache-tomcat-8.5.46 ![](https://i.imgur.com/MpDeW6O.png) 建立workspace,放入tomcat ![](https://i.imgur.com/jD2vABR.png) #### 新建manven專案(此段開始為每次新建專案時須優先做的,解決bug未抓到Servlet.api) ![](https://i.imgur.com/mHtEQOq.png) 預設-Next ![](https://i.imgur.com/JW8RiJG.png) 輸入`org.apache.maven`(要等等) ![](https://i.imgur.com/iqSG7Jq.png) 查找點選webapp(要做web網頁用的)-Next ![](https://i.imgur.com/TwkxIm9.png) group id.:資料夾名稱 artifact id:專案名稱 ![](https://i.imgur.com/37RAKSA.png) 建好後會先有紅XX (要解決,未抓到servlet的api) ![](https://i.imgur.com/uOwb2s6.png) 解決方式 專案上右鍵 ![](https://i.imgur.com/WYX6ApD.png) ![](https://i.imgur.com/ih5B8Wf.png) Tomcat ![](https://i.imgur.com/GGJBEzH.png) 解決 ![](https://i.imgur.com/tUZRgQM.png) --- # 簡介 **工具不見還原** ![](https://i.imgur.com/iyxHylm.png) **調整顏色** ![](https://i.imgur.com/5HppHo0.png) ![](https://i.imgur.com/Dc0gDJl.png) **介紹** ![](https://i.imgur.com/Q1uBuBn.png) **改字體大小** ![](https://i.imgur.com/HQzV0yq.png) ![](https://i.imgur.com/Ue6OlWW.png) ![](https://i.imgur.com/PbV4S6N.png) **改瀏覽器** ![](https://i.imgur.com/aHqO1wl.png) **run** ![](https://i.imgur.com/wfAI1v8.png) 查ip位置 cmd `ipconfig` ![](https://i.imgur.com/v4iJA4g.png) 網頁測 ip測 ![](https://i.imgur.com/SKkzVvu.png) ![](https://i.imgur.com/Xe0ojs2.png) --- # 專案 ![](https://i.imgur.com/zS0mM2U.png) 1. 1不使用struts 2. 2使用struts 3. 正式專案撰寫(會用到2) --- ### 1.撰寫測試(與Struts2比較) ![](https://i.imgur.com/Q7p0JDX.png) ![](https://i.imgur.com/KjCQojJ.png) ![](https://i.imgur.com/zYpshkG.png) 2個 ![](https://i.imgur.com/rBWKoNF.png) Package -controller ![](https://i.imgur.com/93NPr2O.png) servlet ![](https://i.imgur.com/SQnKBEj.png) ![](https://i.imgur.com/1rVg2jP.png) 這樣web.xml自動幫你連結 ![](https://i.imgur.com/w5vVsMs.png) 把get 刪了 把post 改service 可接收get post ![](https://i.imgur.com/e0dXuvf.png) Index 改 ![](https://i.imgur.com/5mOg1Ao.png) 測試 成功 ![](https://i.imgur.com/UkJmCwO.png) --- ### 2.運用Struts2 達成上面server與jsp連結 #### (1)Struts2 maven管理 https://mvnrepository.com/ 標準版 core ![](https://i.imgur.com/SwXZL3k.png) ![](https://i.imgur.com/2YeMbLc.png) 複製貼上放入pom.xml(放入< dependencies>裡) ![](https://i.imgur.com/lf7ByHb.png) #### (2)Struts2 MVC (撰寫MC V不用了) https://struts.apache.org/getting-started/hello-world-using-struts2.html ![](https://i.imgur.com/kA03K1z.png) C控制流程 new ![](https://i.imgur.com/ncGzv5E.png) 撰寫 ![](https://i.imgur.com/5ADoNHe.png) 修改-關鍵字(不加雙引號) 自訂(加雙引號) ![](https://i.imgur.com/93RN1an.png) 修改 ![](https://i.imgur.com/aPPf3lx.png) 測試-輸入數字404(還未導頁) ![](https://i.imgur.com/h6CTIFu.png) #### 解決方式part01 https://struts.apache.org/core-developers/web-xml.html ![](https://i.imgur.com/5UMzocv.png) ``` <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.xml<web-app></web-app>裡面 ![](https://i.imgur.com/YvYkJoC.png) 導頁還錯 #### 解決方式part02 需要struts.xml,一定要在src/main/java底下 ![](https://i.imgur.com/46XwIh7.png) ![](https://i.imgur.com/Vi0jz7u.png) <font color="#f00">名字一定要struts</font> ![](https://i.imgur.com/FvSrU6N.png) 官網貼上 https://struts.apache.org/getting-started/hello-world-using-struts2.html ![](https://i.imgur.com/GPhWrbd.png) ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="basicstruts2" extends="struts-default"> <action name="index"> <result>/index.jsp</result> </action> <action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute"> <result name="success">/HelloWorld.jsp</result> </action> </package> </struts> ``` ![](https://i.imgur.com/PAaMHkZ.png) 改 Name (可自訂,但要與jsp要連結的名稱相同) Class要連結jsp的controller 不能錯 ![](https://i.imgur.com/1qfXVOl.png) ![](https://i.imgur.com/oGy5Hkr.png) 測試-不管有無及格都跑到及格 再改 ![](https://i.imgur.com/3UdOGaR.png) ![](https://i.imgur.com/sgqtGWQ.png) 可正常切換(成功) --- ### 3.正式撰寫專案 ![](https://i.imgur.com/dRoAryH.png) 1.放servlet.api(同上-環境安裝3) 2.pom.xml -> dependencies新增struts2(同上- 專案- 2(1) ) 3.web.xml新增(同上- 專案- 2(2)- 解決方式part01) 4.index.jsp ![](https://i.imgur.com/8HMoiaB.png) 5.ok.jsp ![](https://i.imgur.com/dy9DrJi.png) 6.error.jsp ![](https://i.imgur.com/3iEr7uU.png) 7.Package-Controller-orderAction.java ![](https://i.imgur.com/DGdjMxL.png) 8.Package-Model-Order.java ![](https://i.imgur.com/IKYzivJ.png) 9.struts.xml(同上- 專案- 2(2)- 解決方式part02) ![](https://i.imgur.com/jEmHKxM.png) 10.測試 >=0 ->成功頁 其他 ->失敗頁 空白 ->404