欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java servlet后端開發(fā)超詳細(xì)教程

 更新時(shí)間:2023年02月08日 14:44:38   作者:練習(xí)時(shí)長六年半的Programmer  
Servlet指在服務(wù)器端執(zhí)行的一段Java代碼,可以接收用戶的請(qǐng)求和返回給用戶響應(yīng)結(jié)果,下面這篇文章主要給大家介紹了關(guān)于Java.servlet生命周期的相關(guān)資料,需要的朋友可以參考下

java后端介紹

今天我正式開始了一個(gè)新話題,那就是 Web。目前我主要會(huì)介紹后端。作為后端的老大哥 java,也有很多后端框架,比如大家耳熟能詳?shù)?spring 等。今天來帶大家入門 servlet,不管是學(xué)生,剛畢業(yè)或是已經(jīng)工作自學(xué)編程的人群都能看懂。

準(zhǔn)備工作

目前我們使用的服務(wù)器是 Tomcat,大家可以先安裝 Tomcat,這一步網(wǎng)上有很多教程,我不再說了。然后還需要下載 idea,配置 Tomcat 和 jdk,這些網(wǎng)上都有,如果配置遇到問題可以私信我。

Servlet項(xiàng)目創(chuàng)建

大家先用idea 創(chuàng)建 web 項(xiàng)目,創(chuàng)建好后應(yīng)是這樣。

現(xiàn)在在你的 src 目錄下創(chuàng)建一個(gè)package,并命名為 com.xxxx.servlet。

然后在這個(gè)包下面創(chuàng)建一個(gè) java類,名叫 servlet(你也可以自己起名字)

Servlet的基礎(chǔ)使用

導(dǎo)入包

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;

主要是導(dǎo)入了 servlet 的基本方法。

創(chuàng)建 java 類,并繼承自HttpServlet 類

因?yàn)槲覀兒竺孢€要重寫 HttpServlet 類中的方法,所以要繼承這個(gè)類。

public class servlet extends HttpServlet{
}

重寫service方法

因?yàn)槲覀円幚碚?qǐng)求,所以要重寫服務(wù)類來處理請(qǐng)求,否則處理不了請(qǐng)求。

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

設(shè)置訪問路徑

@WebServlet("/servlet01")

這行代碼加在類前面,這樣我們就可以通過 /servlet01 路徑來訪問。

內(nèi)容

這里我們?cè)诳刂婆_(tái)(idea下面)和網(wǎng)頁(瀏覽器訪問)里分別打印一句話 "Hello Servlet!"

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

實(shí)例完整代碼

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;
/*
* 實(shí)現(xiàn) Servlet
* 1.創(chuàng)建 web 項(xiàng)目,配置 Servlet 和 Tomcat
* 2.創(chuàng)建普通 Java 類
* 3.繼承 HttpServlet 類
* 4.重寫 service 方法(處理請(qǐng)求,Ctrl+o,選擇倒數(shù)第二個(gè)鑰匙的)
* 5.處理請(qǐng)求
* 6.設(shè)置注解,指定訪問路徑
* 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);
        //打印內(nèi)容在控制臺(tái)
        System.out.println("Hello Servlet");
        //通過流輸出內(nèi)容
        resp.getWriter().write("Hello Servlet");
    }
}
 

運(yùn)行

點(diǎn)擊 idea 右上角運(yùn)行圖標(biāo)

然后 idea 會(huì)打開 http://localhost:8080/servlet_war_exploded/

但是你看不到任何內(nèi)容,因?yàn)槟銢]有訪問你剛才設(shè)置的路徑。

訪問 http://localhost:8080/servlet_war_exploded/servlet01

你會(huì)看到

這就成功了

servlet的生命周期

類加載->實(shí)例化->服務(wù)->銷毀

類加載

類加載在服務(wù)器啟動(dòng)時(shí)就執(zhí)行,一次一個(gè)生命周期只執(zhí)行一次。

實(shí)例化

開始生命周期時(shí),服務(wù)器判斷有沒有實(shí)例化,如果沒有則實(shí)例化。

寫一個(gè)函數(shù) init(),在實(shí)例化時(shí)執(zhí)行。

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

當(dāng)實(shí)例化是,會(huì)在控制臺(tái)輸出文字。

服務(wù)

當(dāng)收到請(qǐng)求就開始服務(wù),一個(gè)生命周期執(zhí)行多次。

@Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Servlet被調(diào)用");
    }

銷毀

一個(gè)生命周期執(zhí)行一次,在服務(wù)器停止時(shí)執(zhí)行,也就是你停止運(yùn)行程序時(shí)。

@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生命周期: 類加載->實(shí)例化->服務(wù)->銷毀
* */
@WebServlet("/servlet02")
public class servlet02 extends HttpServlet{
    /*
    * 一個(gè)生命周期只執(zhí)行一次,服務(wù)器判斷是否存在,不存在則創(chuàng)建實(shí)例,自動(dòng)調(diào)用
    * */
    @Override
    public void init() throws ServletException {
        System.out.println("Servlet被創(chuàng)建");
    }
    /*
    * 服務(wù)方法,自動(dòng)調(diào)用,當(dāng)接收到請(qǐng)求就會(huì)調(diào)用該方法,可以被多次調(diào)用
    * */
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Servlet被調(diào)用");
    }
    /*
     * 一個(gè)生命周期只執(zhí)行一次,服務(wù)器停止時(shí)運(yùn)行該方法
     * */
    @Override
    public void destroy() {
        System.out.println("Servlet被銷毀");
    }
}
 

到此這篇關(guān)于Java servlet后端開發(fā)超詳細(xì)教程的文章就介紹到這了,更多相關(guān)Java servlet內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring boot @RequestBody數(shù)據(jù)傳遞過程詳解

    Spring boot @RequestBody數(shù)據(jù)傳遞過程詳解

    這篇文章主要介紹了Spring boot @RequestBody數(shù)據(jù)傳遞過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Spring Boot 中PageHelper 插件使用配置思路詳解

    Spring Boot 中PageHelper 插件使用配置思路詳解

    這篇文章主要介紹了Spring Boot 中PageHelper 插件使用配置及實(shí)現(xiàn)思路,通過引入myabtis和pagehelper依賴,在yml中配置mybatis掃描和實(shí)體類,具體實(shí)現(xiàn)方法跟隨小編一起看看吧
    2021-08-08
  • 一行java代碼實(shí)現(xiàn)高斯模糊效果

    一行java代碼實(shí)現(xiàn)高斯模糊效果

    這篇文章主要為大家詳細(xì)介紹了一行java代碼實(shí)現(xiàn)高斯模糊效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Spring官網(wǎng)下載各版本jar包的方法

    Spring官網(wǎng)下載各版本jar包的方法

    這篇文章主要介紹了Spring官網(wǎng)下載各版本jar包的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-04-04
  • 新手初學(xué)Java集合框架

    新手初學(xué)Java集合框架

    這篇文章主要介紹了JAVA集合框架的相關(guān)知識(shí),文中講解非常細(xì)致,幫助大家更好的理解學(xué)習(xí)JAVA框架,感興趣的朋友快來了解下,希望能給你帶來幫助
    2021-07-07
  • java類加載機(jī)制、類加載器、自定義類加載器的案例

    java類加載機(jī)制、類加載器、自定義類加載器的案例

    這篇文章主要介紹了java類加載機(jī)制、類加載器、自定義類加載器的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 一文詳解java閉包的用途是什么

    一文詳解java閉包的用途是什么

    閉包的價(jià)值在于可以作為函數(shù)對(duì)象或者匿名函數(shù),持有上下文數(shù)據(jù),作為第一級(jí)對(duì)象進(jìn)行傳遞和保存,下面這篇文章主要給大家介紹了關(guān)于java閉包的用途是什么,需要的朋友可以參考下
    2024-03-03
  • jax-ws handler 的詳解及簡單實(shí)例

    jax-ws handler 的詳解及簡單實(shí)例

    這篇文章主要介紹了 jax-ws handler 的詳解及簡單實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • mybatisplus解決駝峰命名映射問題詳解

    mybatisplus解決駝峰命名映射問題詳解

    這篇文章主要介紹了mybatisplus解決駝峰命名映射問題詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java中的lambda和stream實(shí)現(xiàn)排序

    Java中的lambda和stream實(shí)現(xiàn)排序

    這篇文章主要介紹了Java中的lambda和stream實(shí)現(xiàn)排序,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09

最新評(píng)論