[Java] Eclipse IDE for Enterprise (Eclipse EE) 安裝、設定及第一個 Servlet 專案(Web)

這邊要告訴大家 Eclipse EE 的安裝及 server 設定,最後要建立第一個 servlet 專案來測試之前做的步驟有沒有成功!
這篇實作前,必須先做好前面文章的事情,沒做好的話要先去看一下,不難

這邊則分成三個步驟:

一、Eclipse 安裝
二、Eclipse 設定
三、建立第一個 Servlet 專案




一、Eclipse 安裝

安裝 Eclipse IDE 非常容易,因為不需要安裝,解壓縮就好~
但因為是要寫 jsp、servlet、spring 等程式,所以要載的是「Eclipse IDE for Enterprise Java Developers (includes Incubating components)

官方網址:https://www.eclipse.org/downloads/packages/
右邊選擇自己電腦的系統

Download 點擊即完成下載

把壓縮檔解壓縮至自己指定的資料夾即完成安裝~


二、Eclipse 設定

為了能讓專案順利使用,這邊僅做 Server 的設定,其他的設定暫時不說。

開啟 eclipse.exe,用右邊的 Browse 選擇工作的資料夾 (存放專案的資料夾),選好後點選 Launch

Windwos → Prefence

Server → Runtime Environments → Add

Apache Tomcat v8.5 → Next (如果是載其他版本的 Tomcat 則選該版本)

Browse → 選擇 tomcat 的資料夾 → Finish → Apply and Close

即完成 server 設定~


三、建立第一個 Servlet 專案

概要步驟
1. 建立 Web Project
2. 新增 Servlet 程式
3. 新增 web.xml 程式
4. 執行程式


1. 建立 Web Project
File → New → Project

Web → Dynamic Web Project → Next

Project name 輸入專案名 → Next

Next → Finish

以上完成 Web 專案建立!
如有跳出「open the java ee perspective」,則點選 open 的按鈕


2. 新增 Servlet 程式
FirstWeb右鍵 → New → Servlet (如沒有則從 File 新增,資料夾選 src)

Java package: idv.ycc.servlet (idv: 個人;ycc: 自己名字;servlet: package名稱)
Class name: MyServlet (class 名稱)
打好後 → Finish

MyServlet.java
package idv.ycc.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class MyServlet
 */
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MyServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");   //設定response 編碼
request.setCharacterEncoding("UTF-8");    //設定request 編碼
response.setContentType("text/html");     //設定文檔類型
PrintWriter out = response.getWriter();   //取得response 傳送字元用的對象
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">");
out.println("<HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println("<BODY>");
    String requestURI = request.getRequestURI();//取得URI 路徑(http://localhost:8080/FirstWeb/servlet/idv.ycc.servlet.MyServlet)
out.println("<form action='" + requestURI + "' method='post'>");
out.println("請輸入您的姓名: <input type='text' name='name' />");
out.println("</form>");
String name = request.getParameter("name");   //取得前端名稱為name 的參數
if (name != null && name.trim().length() > 0)
    out.println("您好,<b>" + name + "</b> 先生/小姐");
out.println("</BODY>");
out.println("</HTML");
out.flush();  //將out 之緩衝區輸出
out.close();  //將out 關閉
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}

3. 新增 web.xml 程式
WEB-INF右鍵 → New → Other

XML File → Next

File name: web.xml → Finish

輸入程式碼
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
  <!-- 指向servlet的名稱及class的路徑 -->
  <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>
      idv.ycc.servlet.MyServlet
    </servlet-class>
  </servlet>
  <!-- 訪問的servlet名稱及URI -->
  <!-- 如:http://localhost:8080/FirstWeb/servlet/MyServlet -->
  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/servlet/MyServlet</url-pattern>
  </servlet-mapping>
  
</web-app>

4. 執行程式
點 Run 的圖示

前面已經設定好 eclipse 的 server,直接點 Finish 即可動作

載入畫面如圖所示~!
網址可以看到跟剛剛在 web.xml 設定的一樣

在框框內輸入 apple,按下 Enter 鍵,就會執行doPost(),並會執行 if 的判斷式
結果就會如下!



這樣就完成第一個 Servlet 程式瞜!
程式碼已經是最短的了,不懂的人可以從這支程式碼開始了解,一定會有幫助!
另外 MyServlet.java 內撰寫 HTML 程式碼是錯誤的方式,這只是為了快速了解及用較簡單的方式才這樣寫,實際應用盡量不要跟 java 檔寫在一起。

上面程式碼理論上都沒錯,但可能會碰到 IDE 上的問題,本人也碰壁過多次,有問題可以留言,能解決就會幫忙~

留言

這個網誌中的熱門文章

[面試] 日月光 設備工程師

[日文] Google日文輸入法 簡單安裝說明

[Windows] 還我 win7 相片檢視器!!