- 軟件的架構:BS和CS
- Web介紹
- JavaEE規範
- 模擬一個Tomcat
- Tomcat的安裝、配置
- Tomcat的啓動與關閉
- Tomcat的目錄結構
- Tomcat啓動時常見的問題
- IDEA綁定tomcat
1.軟件的架構:BS和CS
CS介紹
CS(Client/Server):客戶端/服務器模式。
- 客戶端:需要安裝軟件。
- 升級維護不方便,如果服務器升級,所有的客戶端都要升級。
- 程序開發工作量:客戶端和服務端都需要大量的工作
BS介紹
BS(Browser/Server):瀏覽器/服務器模式。
- 客戶端:不需要,只要有瀏覽器就可以了。
- 如果服務器升級,客戶端不需要升級。
- 程序員開發工作量:在服務器端。
2.Web資源的分類:(靜態和動態)
什麼是Web?
web翻譯過來是網站/網頁
靜態資源特點:
靜態頁面就是設計者把頁面上所有東西都先設計好了,訪問多少次頁面內容都是一樣的,不會變。
動態資源特點:
動態頁面的內容一般都是依靠服務器端的程序來生成的,多次訪問頁面的內容可能不同。比如(網購的購物車,開始沒有,再看就添加了就是動態)。
WEB服務器
-
硬件服務器是一臺功能很強大的電腦
-
Web服務器是運行在硬件服務器上的一個軟件,主要功能是提供網上信息瀏覽服務。
-
Web服務器又稱爲Web容器。
3.JavaEE規範
- JavaEE是企業裏面開發網站的一套標準,不同廠商的JavaWeb服務器都實現了這些接口,在JavaEE中一共有13種規範。實現的規範越多,服務器的功能越強。
- 常見的JavaEE規範有:JDBC,JSP、Servlet、EJB、XML、JNDI等
常用的Web服務器
Tomcat:
在小型的應用系統或者有特殊需要的系統中,可以使用一個免費的Web服務器:Tomcat,該服務器支持全部JSP以Servlet規範。Tomcat運行穩定、可靠且高效。已成爲目前開發企業JavaWeb應用的最佳Servlet容器選擇之一。
4.模擬一個Tomcat
- 使用多線程和Socket模擬一個簡單的Web服務器,將服務器上的資源共享給瀏覽器
代碼
package com.itheima.demo01;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.Timestamp;
public class Demo01 {
public static void main(String[] args) throws IOException {
// 創建服務器
ServerSocket serverSocket = new ServerSocket(8080);
// Timestamp 輸出當前時間,精確到毫秒
System.out.println(new Timestamp(System.currentTimeMillis()) + "服務器啓動");
// 接收客戶端的請求
while(true) {
Socket socket = serverSocket.accept(); // 得到請求,返回Socket對象
System.out.println(new Timestamp(System.currentTimeMillis()) + "," + socket.getInetAddress().getHostAddress() + "連接");
new MyTomcat(socket).start(); // 啓動線程
}
}
}
/**
模擬web容器:採用多線程的方法,每個用戶創建一個線程 */
class MyTomcat extends Thread {
private Socket socket;
//通過構造方法傳遞Socket對象
public MyTomcat(Socket socket) {
this.socket = socket;
}
//處理每個線程的任務
@Override
public void run() {
//讀取本地服務器的資源,得到輸入流對象
try (
FileInputStream inputStream = new FileInputStream("c:/MyFileTest/index.html");
//得到輸出流,通過Socket得到
OutputStream outputStream = socket.getOutputStream();
) {
//將輸入流中數據複製到輸出流中
int len = 0;
byte[] buf = new byte[512];
while((len = inputStream.read(buf))!=-1) {
outputStream.write(buf,0,len);
}
System.out.println("網頁下載成功");
} catch (IOException e) {
e.printStackTrace();
}
}
}
Web服務器的原理
Web服務器是一個TCP的服務端,瀏覽器是tcp的客戶端,任何電腦的瀏覽都可以鏈接Web服務器,Web服務器將服務器上的資源返回給瀏覽,瀏覽器就能顯示這個資源
我們需要自己編寫Web服務器嗎?
不要,有現成的,我們後面的學習都使用Tomcat
5.Tomcat的安裝、配置
tomcat的產品頁面: http://tomcat.apache.org/
安裝
直接解壓就可以了,建議:不要有中文的目錄,目錄層次不要太深
解壓後
環境變量的配置
- 添加Tomcat的安裝目錄
- 配置Path,可以在任何路徑下訪問bin文件夾的可執行文件
6.Tomcat的啓動與關閉
-
啓動的命令:startup.bat
通過瀏覽器來訪問:
-
關閉的命令:shutdown.bat 正常關閉
也可以直接關閉容器,中斷,非正常關閉。
注:shutdown是window中一條內部命令,輸入命令的時候要加上bat
這兩條命令都在bin目錄下
7.Tomcat的目錄結構
瞭解Tomcat每個目錄的作用
目錄名 | 作用 |
---|---|
bin | 存放可執行的文件:startup.bat和shutdown.bat |
conf | 存放tomcat的配置文件:server.xml |
lib | 存放tomcat依賴的第三方jar包 |
logs | 存放tomcat運行的日誌信息 |
temp | 存放tomcat運行的一些臨時的文件 |
webapps | **重點:**存放我們的網站程序(項目) |
ROOT:默認的程序 http://localhost:8080/就是訪問ROOT這個程序 |
|
work | 工作目錄,JSP編譯後的文件 |
8.Tomcat啓動時常見的問題
問題1:未設置JAVA_HOME環境變量
- 出錯信息
2. 解決辦法
問題2:端口號被佔用
-
出錯信息
-
查看日誌文件:
-
解決方法:
- 方法一:找到佔用端口號的程序,進程殺掉。
- 方法二:修改tomcat的端口號(找到conf/server.xml文件)
- 修改69行端口號配置,大於1024以上。
- 要重新啓動tomcat
9. IDEA綁定tomcat
配置步驟
配置好的後的界面,點擊OK
爲什麼在idea裏面配置tomcat?
以後使用idea操作tomcat啓動、關閉、部署項目方便