提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
前言
提示:這里可以添加本文要記錄的大概內(nèi)容:
因為現(xiàn)在都用spring框架了,所以本文就簡單介紹一下Tomcat和Servlet
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、Tomcat是什么?
1.1下載:
官網(wǎng)地址
我下載的時8版本,其實應用商店也可以下載,但是10版本,慎重下
1.2 tomcat是什么
Tomcat 是一個 HTTP 服務器.
HTTP 協(xié)議就是 HTTP 客戶端和 HTTP 服務器之間的交互數(shù)據(jù)的格式,同時也通過 ajax 和 Java Socket 分別構(gòu)造了 HTTP 客戶端.
HTTP 服務器我們也同樣可以通過 Java Socket 來實現(xiàn).
而 Tomcat 就是基于 Java 實現(xiàn)的一個開源免費,也是被廣泛使用的 HTTP 服務器。
1.3啟動服務器:
在bin目錄下面的點擊startup.bat就可以啟動了
啟動后也是一堆亂碼看不懂
但是沒有關(guān)系,我們在瀏覽器輸入localhost:8080就可以一個tocmcat的歡迎界面了
如果啟動失?。?br> cmd中在命令行中使用 netstat -ano | findstr 8080 確定看 8080 是否被其他進程綁定, 把對方進程干掉,再重新啟動 Tomcat 一般就可以解決問題。
二.部署
把帶有css的前端文件放入webapps里,
http://localhost:8080/blog_system/login.html
在URL里這樣子輸入
他就出來了
三、Servlet
3.1創(chuàng)建項目
然后把這個nme命名好
3.2引入依賴
Maven 項目創(chuàng)建完畢后, 會自動生成一個 pom.xml 文件.
我們需要在 pom.xml 中引入 Servlet API 依賴的 jar 包
中央倉庫
選擇第一個然后選擇3.1.0這個版本
查詢版本對應關(guān)系
把這個拷貝到pom.xml里
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>ServletHelloWorld</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
pom.xml的所有代碼 3.3創(chuàng)建目錄
創(chuàng)建的目錄要這樣子,這個webapp要和Java同等級
然后再在下面創(chuàng)建一個web.xml
其實也可以類比springboot中的這個properties,只不過servlet中的那個叫做xml接著在web里拷貝這個代碼
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
webapp 目錄就是未來部署到 Tomcat 中的一個重要的目錄. 當前我們可以往 webapp 中放一些靜態(tài)資源, 比如 html , css 等.
在這個目錄中還有一個重要的文件 web.xml. Tomcat 找到這個文件才能正確處理 webapp 中的動態(tài)資源
四編寫代碼
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;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("hello");
resp.getWriter().write("hello");
}
}
創(chuàng)建一個類 HelloServlet , 繼承自 HttpServlet
在這個類上方加上 @WebServlet(“/hello”) 注解, 表示 Tomcat 收到的請求中, 路徑為 /hello
的請求才會調(diào)用 HelloServlet 這個類的代碼. (這個路徑未包含 Context Path)
重寫 doGet 方法. doGet 的參數(shù)有兩個, 分別表示收到的 HTTP 請求 和要構(gòu)造的 HTTP 響應. 這個
方法會在 Tomcat 收到 GET 請求時觸發(fā)
HttpServletRequest 表示 HTTP 請求. Tomcat 按照 HTTP 請求的格式把 字符串 格式的請求轉(zhuǎn)成
了一個 HttpServletRequest 對象. 后續(xù)想獲取請求中的信息(方法, url, header, body 等) 都是通
過這個對象來獲取.
HttpServletResponse 表示 HTTP 響應. 代碼中把響應對象構(gòu)造好(構(gòu)造響應的狀態(tài)碼, header,
body 等)
resp.getWriter() 會獲取到一個流對象, 通過這個流對象就可以寫入一些數(shù)據(jù), 寫入的數(shù)據(jù)會被
構(gòu)造成一個 HTTP 響應的 body 部分, Tomcat 會把整個響應轉(zhuǎn)成字符串, 通過 socket 寫回給瀏覽
器
五、打包
現(xiàn)在依然是不能運行的,這個只是邏輯的一部分。
我們的代碼不是通過 main 方法作為入口了. main 方法已經(jīng)被包含在 Tomcat 里, 我們寫的代碼會被 Tomcat 在合適的時機調(diào)用起來
點擊這里就可以打包了
這樣子打包成功了,這個jar包在target下面
這樣的 jar 包并不是我們需要的, Tomcat 需要識別的是另外一種 war 包格式.
另外這個 jar 包的名字太復雜了, 我們也希望這個名字能更簡單一點。
5.1war和jar包的區(qū)別
jar 包是普通的 java 程序打包的結(jié)果. 里面會包含一些 .class 文件.
war 包是 java web 的程序, 里面除了會包含 .class 文件之外, 還會包含 HTML, CSS, JavaScript, 圖
片, 以及其他的 jar 包. 打成 war 包格式才能被 Tomcat 識別,springboot里也可以按照我下面的打包方式
在pom.xml新增一個
<packaging>war</packaging>
再在package內(nèi)置增加一個build標簽,表示war打出的包的名字
<build>
<finalName>ServletHelloWorld</finalName>
</build>
重新打包一下
六.部署
把上面的war包放到tomcat的webapp目錄下,解壓縮一下
然后這樣子就可以了,但是別忘記打開tomcat的start.bat,不然無法部署成功的文章來源:http://www.zghlxwxcb.cn/news/detail-775877.html
總結(jié)
其實servlet和springboot真的差不多,springboot就是servlet的升級版本,學會一個上手另一個就很快了文章來源地址http://www.zghlxwxcb.cn/news/detail-775877.html
到了這里,關(guān)于Tomcat和Servlet的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!