# 產學-學習筆記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
檢查

### 2.安裝Eclipse javaEE(開發工具)
https://www.eclipse.org/downloads/
有勾選項目都勾



裝好後先別開啟


### 3.安裝TomEE(保留,建議裝Tomcat比較快,下方)(Server)
:::spoiler 點選顯示完整內容
https://tomee.apache.org/


解壓縮到工作資料夾

開啟eclipse,選擇工作資料夾(剛剛放tomee的地方)

安裝 掛入tomee server


9.0就是tomee

選擇tomee資料夾(要選到可以看到下圖6個圖示的地方)

掛入後

tomee(建專案解決api,同Tomcat)

Server web.xml 238行 false改true(TomEE才要)-改好後server重啟
這樣就可以jsp改甚麼,網頁重新整理就自動改(java檔修改還是要重run server)

:::
### 3.安裝Tomcat(Server)
https://tomcat.apache.org/download-80.cgi
apache-tomcat-8.5.46

建立workspace,放入tomcat

#### 新建manven專案(此段開始為每次新建專案時須優先做的,解決bug未抓到Servlet.api)

預設-Next

輸入`org.apache.maven`(要等等)

查找點選webapp(要做web網頁用的)-Next

group id.:資料夾名稱 artifact id:專案名稱

建好後會先有紅XX (要解決,未抓到servlet的api)

解決方式 專案上右鍵


Tomcat

解決

---
# 簡介
**工具不見還原**

**調整顏色**


**介紹**

**改字體大小**



**改瀏覽器**

**run**

查ip位置 cmd `ipconfig`

網頁測 ip測


---
# 專案

1. 1不使用struts
2. 2使用struts
3. 正式專案撰寫(會用到2)
---
### 1.撰寫測試(與Struts2比較)



2個

Package -controller

servlet


這樣web.xml自動幫你連結

把get 刪了 把post 改service 可接收get post

Index 改

測試 成功

---
### 2.運用Struts2 達成上面server與jsp連結
#### (1)Struts2 maven管理
https://mvnrepository.com/
標準版 core


複製貼上放入pom.xml(放入< dependencies>裡)

#### (2)Struts2 MVC (撰寫MC V不用了)
https://struts.apache.org/getting-started/hello-world-using-struts2.html

C控制流程 new

撰寫

修改-關鍵字(不加雙引號) 自訂(加雙引號)

修改

測試-輸入數字404(還未導頁)

#### 解決方式part01
https://struts.apache.org/core-developers/web-xml.html

```
<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>裡面

導頁還錯
#### 解決方式part02
需要struts.xml,一定要在src/main/java底下


<font color="#f00">名字一定要struts</font>

官網貼上
https://struts.apache.org/getting-started/hello-world-using-struts2.html

```
<?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>
```

改
Name (可自訂,但要與jsp要連結的名稱相同)
Class要連結jsp的controller 不能錯


測試-不管有無及格都跑到及格
再改


可正常切換(成功)
---
### 3.正式撰寫專案

1.放servlet.api(同上-環境安裝3)
2.pom.xml -> dependencies新增struts2(同上- 專案- 2(1) )
3.web.xml新增(同上- 專案- 2(2)- 解決方式part01)
4.index.jsp

5.ok.jsp

6.error.jsp

7.Package-Controller-orderAction.java

8.Package-Model-Order.java

9.struts.xml(同上- 專案- 2(2)- 解決方式part02)

10.測試 >=0 ->成功頁 其他 ->失敗頁 空白 ->404