軟件的架構:BS和CS
Web介紹
JavaEE規範
模擬一個Tomcat
Tomcat的安裝、配置
Tomcat的啓動與關閉
Tomcat的目錄結構
Tomcat啓動時常見的問題
IDEA綁定tomcat
1.軟件的架構:BS和CS
CS介紹
CS(Client/Server):客戶端/服務器模式。
html
客戶端:須要安裝軟件。
升級維護不方便,若是服務器升級,全部的客戶端都要升級。
程序開發工做量:客戶端和服務端都須要大量的工做
BS介紹
BS(Browser/Server):瀏覽器/服務器模式。
java
客戶端:不須要,只要有瀏覽器就能夠了。
若是服務器升級,客戶端不須要升級。
程序員開發工做量:在服務器端。
2.Web資源的分類:(靜態和動態)
什麼是Web?
web翻譯過來是網站/網頁
靜態資源特色:
靜態頁面就是設計者把頁面上全部東西都先設計好了,訪問多少次頁面內容都是同樣的,不會變。程序員
動態資源特色:
動態頁面的內容通常都是依靠服務器端的程序來生成的,屢次訪問頁面的內容可能不一樣。好比(網購的購物車,開始沒有,再看就添加了就是動態)。web
WEB服務器
sql
硬件服務器是一臺功能很強大的電腦
Web服務器是運行在硬件服務器上的一個軟件,主要功能是提供網上信息瀏覽服務。
Web服務器又稱爲Web容器。apache
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;tomcat
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:端口號被佔用
出錯信息
查看日誌文件:
解決方法:
方法一:找到佔用端口號的程序,進程殺掉。
方法二:修改tomcat的端口號(找到conf/server.xml文件)
修改69行端口號配置,大於1024以上。
要從新啓動tomcat
配置步驟
配置好的後的界面,點擊OK
爲何在idea裏面配置tomcat?
之後使用idea操做tomcat啓動、關閉、部署項目方便