首頁 > 軟體

Java servlet後端開發超詳細教學

2023-02-08 22:02:14

java後端介紹

今天我正式開始了一個新話題,那就是 Web。目前我主要會介紹後端。作為後端的老大哥 java,也有很多後端框架,比如大家耳熟能詳的 spring 等。今天來帶大家入門 servlet,不管是學生,剛畢業或是已經工作自學程式設計的人群都能看懂。

準備工作

目前我們使用的伺服器是 Tomcat,大家可以先安裝 Tomcat,這一步網上有很多教學,我不再說了。然後還需要下載 idea,設定 Tomcat 和 jdk,這些網上都有,如果設定遇到問題可以私信我。

Servlet專案建立

大家先用idea 建立 web 專案,建立好後應是這樣。

現在在你的 src 目錄下建立一個package,並命名為 com.xxxx.servlet。

然後在這個包下面建立一個 java類,名叫 servlet(你也可以自己起名字)

Servlet的基礎使用

匯入包

package com.xxxx.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

主要是匯入了 servlet 的基本方法。

建立 java 類,並繼承自HttpServlet 類

因為我們後面還要重寫 HttpServlet 類中的方法,所以要繼承這個類。

public class servlet extends HttpServlet{
}

重寫service方法

因為我們要處理請求,所以要重寫服務類來處理請求,否則處理不了請求。

@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    }

設定存取路徑

@WebServlet("/servlet01")

這行程式碼加在類前面,這樣我們就可以通過 /servlet01 路徑來存取。

內容

這裡我們在控制檯(idea下面)和網頁(瀏覽器存取)裡分別列印一句話 "Hello Servlet!"

System.out.println("Hello Servlet");
//通過流輸出內容
resp.getWriter().write("Hello Servlet");

範例完整程式碼

package com.xxxx.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/*
* 實現 Servlet
* 1.建立 web 專案,設定 Servlet 和 Tomcat
* 2.建立普通 Java 類
* 3.繼承 HttpServlet 類
* 4.重寫 service 方法(處理請求,Ctrl+o,選擇倒數第二個鑰匙的)
* 5.處理請求
* 6.設定註解,指定存取路徑
* 7.設定,見https://blog.csdn.net/Samzz33/article/details/116311106
* */
@WebServlet("/servlet01")
public class servlet extends HttpServlet{
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        super.service(req, resp);
        //列印內容在控制檯
        System.out.println("Hello Servlet");
        //通過流輸出內容
        resp.getWriter().write("Hello Servlet");
    }
}
 

執行

點選 idea 右上角執行圖示

然後 idea 會開啟 http://localhost:8080/servlet_war_exploded/

但是你看不到任何內容,因為你沒有存取你剛才設定的路徑。

存取 http://localhost:8080/servlet_war_exploded/servlet01

你會看到

這就成功了

servlet的生命週期

類載入->範例化->服務->銷燬

類載入

類載入在伺服器啟動時就執行,一次一個生命週期只執行一次。

範例化

開始生命週期時,伺服器判斷有沒有範例化,如果沒有則範例化。

寫一個函數 init(),在範例化時執行。

@Override
    public void init() throws ServletException {
        System.out.println("Servlet被建立");
    }

當範例化是,會在控制檯輸出文字。

服務

當收到請求就開始服務,一個生命週期執行多次。

@Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Servlet被呼叫");
    }

銷燬

一個生命週期執行一次,在伺服器停止時執行,也就是你停止執行程式時。

@Override
    public void destroy() {
        System.out.println("Servlet被銷燬");
    }

完整程式碼

package com.xxxx.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/*
* Servlet生命週期: 類載入->範例化->服務->銷燬
* */
@WebServlet("/servlet02")
public class servlet02 extends HttpServlet{
    /*
    * 一個生命週期只執行一次,伺服器判斷是否存在,不存在則建立範例,自動呼叫
    * */
    @Override
    public void init() throws ServletException {
        System.out.println("Servlet被建立");
    }
    /*
    * 服務方法,自動呼叫,當接收到請求就會呼叫該方法,可以被多次呼叫
    * */
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Servlet被呼叫");
    }
    /*
     * 一個生命週期只執行一次,伺服器停止時執行該方法
     * */
    @Override
    public void destroy() {
        System.out.println("Servlet被銷燬");
    }
}
 

到此這篇關於Java servlet後端開發超詳細教學的文章就介紹到這了,更多相關Java servlet內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com