Java servlet后端開(kāi)發(fā)超詳細(xì)教程
java后端介紹
今天我正式開(kāi)始了一個(gè)新話題,那就是 Web。目前我主要會(huì)介紹后端。作為后端的老大哥 java,也有很多后端框架,比如大家耳熟能詳?shù)?spring 等。今天來(lái)帶大家入門(mén) servlet,不管是學(xué)生,剛畢業(yè)或是已經(jīng)工作自學(xué)編程的人群都能看懂。
準(zhǔn)備工作
目前我們使用的服務(wù)器是 Tomcat,大家可以先安裝 Tomcat,這一步網(wǎng)上有很多教程,我不再說(shuō)了。然后還需要下載 idea,配置 Tomcat 和 jdk,這些網(wǎng)上都有,如果配置遇到問(wèn)題可以私信我。
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類(lèi),名叫 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 類(lèi),并繼承自HttpServlet 類(lèi)
因?yàn)槲覀兒竺孢€要重寫(xiě) HttpServlet 類(lèi)中的方法,所以要繼承這個(gè)類(lèi)。
public class servlet extends HttpServlet{
}重寫(xiě)service方法
因?yàn)槲覀円幚碚?qǐng)求,所以要重寫(xiě)服務(wù)類(lèi)來(lái)處理請(qǐng)求,否則處理不了請(qǐng)求。
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}設(shè)置訪問(wèn)路徑
@WebServlet("/servlet01")這行代碼加在類(lèi)前面,這樣我們就可以通過(guò) /servlet01 路徑來(lái)訪問(wèn)。
內(nèi)容
這里我們?cè)诳刂婆_(tái)(idea下面)和網(wǎng)頁(yè)(瀏覽器訪問(wèn))里分別打印一句話 "Hello Servlet!"
System.out.println("Hello Servlet");
//通過(guò)流輸出內(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 類(lèi)
* 3.繼承 HttpServlet 類(lèi)
* 4.重寫(xiě) service 方法(處理請(qǐng)求,Ctrl+o,選擇倒數(shù)第二個(gè)鑰匙的)
* 5.處理請(qǐng)求
* 6.設(shè)置注解,指定訪問(wèn)路徑
* 7.配置,見(jiàn)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");
//通過(guò)流輸出內(nèi)容
resp.getWriter().write("Hello Servlet");
}
}
運(yùn)行
點(diǎn)擊 idea 右上角運(yùn)行圖標(biāo)

然后 idea 會(huì)打開(kāi) http://localhost:8080/servlet_war_exploded/
但是你看不到任何內(nèi)容,因?yàn)槟銢](méi)有訪問(wèn)你剛才設(shè)置的路徑。
訪問(wèn) http://localhost:8080/servlet_war_exploded/servlet01
你會(huì)看到

這就成功了
servlet的生命周期
類(lèi)加載->實(shí)例化->服務(wù)->銷(xiāo)毀
類(lèi)加載
類(lèi)加載在服務(wù)器啟動(dòng)時(shí)就執(zhí)行,一次一個(gè)生命周期只執(zhí)行一次。
實(shí)例化
開(kāi)始生命周期時(shí),服務(wù)器判斷有沒(méi)有實(shí)例化,如果沒(méi)有則實(shí)例化。
寫(xiě)一個(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)求就開(kāi)始服務(wù),一個(gè)生命周期執(zhí)行多次。
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Servlet被調(diào)用");
}銷(xiāo)毀
一個(gè)生命周期執(zhí)行一次,在服務(wù)器停止時(shí)執(zhí)行,也就是你停止運(yùn)行程序時(shí)。
@Override
public void destroy() {
System.out.println("Servlet被銷(xiā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;
/*
* Servlet生命周期: 類(lèi)加載->實(shí)例化->服務(wù)->銷(xiāo)毀
* */
@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被銷(xiāo)毀");
}
}
到此這篇關(guān)于Java servlet后端開(kāi)發(fā)超詳細(xì)教程的文章就介紹到這了,更多相關(guān)Java servlet內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java將中文轉(zhuǎn)化為拼音的簡(jiǎn)單代碼示例
在我們使用手機(jī)通訊錄或各種APP的搜索功能時(shí),既可以根據(jù)中文搜索,也可以根據(jù)拼音搜索,這種時(shí)候就使用到了中文轉(zhuǎn)拼音的功能了,下面這篇文章主要給大家介紹了關(guān)于Java將中文轉(zhuǎn)化為拼音的簡(jiǎn)單代碼示例,需要的朋友可以參考下2024-03-03
關(guān)于Spring源碼深度解析(AOP功能源碼解析)
這篇文章主要介紹了關(guān)于Spring源碼深度解析(AOP功能源碼解析),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
java語(yǔ)言與平臺(tái)基礎(chǔ)知識(shí)點(diǎn)
在本篇文章里小編給大家整理的是一篇關(guān)于java語(yǔ)言與平臺(tái)基礎(chǔ)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們跟著學(xué)習(xí)下。2019-11-11
如何使用IntelliJ IDEA搭建MyBatis-Plus框架并連接MySQL數(shù)據(jù)庫(kù)
這篇文章主要介紹了如何使用IntelliJ IDEA搭建MyBatis-Plus框架并連接MySQL數(shù)據(jù)庫(kù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11
解決SpringBoot請(qǐng)求返回字符串中文亂碼的問(wèn)題
這篇文章主要介紹了解決SpringBoot請(qǐng)求返回字符串中文亂碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
springboot項(xiàng)目中常用的工具類(lèi)和api詳解
在Spring Boot項(xiàng)目中,開(kāi)發(fā)者通常會(huì)依賴一些工具類(lèi)和API來(lái)簡(jiǎn)化開(kāi)發(fā)、提高效率,以下是一些常用的工具類(lèi)及其典型應(yīng)用場(chǎng)景,涵蓋 Spring 原生工具、第三方庫(kù)(如Hutool、Guava) 和 Java 自帶工具,本文給大家介紹springboot項(xiàng)目中常用的工具類(lèi)和api,感興趣的朋友一起看看吧2025-04-04
Servlet和Spring?MVC的區(qū)別及使用說(shuō)明
這篇文章詳細(xì)介紹了Servlet和SpringMVC的基本概念、工作原理、功能對(duì)比和應(yīng)用場(chǎng)景,Servlet是JavaWeb開(kāi)發(fā)的基礎(chǔ),而SpringMVC是一個(gè)基于Servlet的高級(jí)框架,提供了更強(qiáng)大的功能和易用性,文章通過(guò)定義、原理和示例代碼,幫助讀者理解這兩個(gè)技術(shù)的區(qū)別與聯(lián)系2025-01-01

