1 web概念
java項(xiàng)目:有main方法 運(yùn)行 啟動(dòng)main線程 線程任務(wù)執(zhí)行完畢 jvm關(guān)閉
web項(xiàng)目:通過(guò)web應(yīng)用服務(wù)器把web資源 在互聯(lián)網(wǎng)上發(fā)布 時(shí)刻等待客戶端的訪問(wèn)(對(duì)這些web資源的請(qǐng)求)
服務(wù)器端:安裝web應(yīng)用服務(wù)器發(fā)布項(xiàng)目的主機(jī)
客戶端:通過(guò)互聯(lián)網(wǎng)訪問(wèn)服務(wù)器的資源
互聯(lián)網(wǎng)資源分類(lèi):
靜態(tài)資源:沒(méi)有變量的資源:任何時(shí)間/任何訪問(wèn)者 獲取的內(nèi)容是一樣的::::html、js、css、圖片、視頻、音樂(lè)
動(dòng)態(tài)資源:含有變量的資源:jsp、servlet、php、asp
注意:當(dāng)客戶端請(qǐng)求靜態(tài)資源時(shí)如1.html 服務(wù)器會(huì)把靜態(tài)資源1.html直接響應(yīng)給客戶端
當(dāng)客戶端請(qǐng)求動(dòng)態(tài)資源時(shí)如2.jsp 服務(wù)器會(huì)通過(guò)web應(yīng)用服務(wù)器把動(dòng)態(tài)資源1.jsp解析為對(duì)應(yīng)的靜態(tài)資源1_jsp.html 并響應(yīng)給客戶端
web項(xiàng)目分類(lèi):
b/s結(jié)構(gòu):browser/server :瀏覽器/服務(wù)器軟件 客戶端只需要一個(gè)瀏覽器即可
如: 百度/web端的嗶哩嗶哩/webQQ
優(yōu)點(diǎn): 1 客戶端不需要安裝客戶端軟件 客戶體驗(yàn)性好
2 升級(jí)更新方便 易于維護(hù)
缺點(diǎn): 1 客戶端需要的所有的資源和信息都要通過(guò)互聯(lián)網(wǎng)進(jìn)行傳遞 對(duì)網(wǎng)絡(luò)的速度要求高/浪費(fèi)流量
2 b/s結(jié)構(gòu)資源的訪問(wèn)統(tǒng)一請(qǐng)求協(xié)議都是http/https 安全性差
c/s結(jié)構(gòu):client/server : 客戶端端軟件/服務(wù)器端軟件 客戶端需要安裝一個(gè)對(duì)應(yīng)的客戶端軟件 才能訪問(wèn)c/s項(xiàng)目
如:迅雷/王者榮耀/qq/微信
優(yōu)點(diǎn):1 客戶端可以保留大部分資源 節(jié)省流量
2 請(qǐng)求資源的協(xié)議是自定義協(xié)議 被客戶端解析后才會(huì)轉(zhuǎn)換為http/https 安全性更高
缺點(diǎn):1 客戶端需要安裝客戶端軟件 客戶體驗(yàn)性差
2 維護(hù)/更新 麻煩
2 應(yīng)用服務(wù)器
一款軟件:用于把服務(wù)器端的項(xiàng)目 在互聯(lián)網(wǎng)上時(shí)刻處于發(fā)布狀態(tài) 等待客戶端請(qǐng)求
web應(yīng)用服務(wù)器作用:1 發(fā)布項(xiàng)目:
2 解析動(dòng)態(tài)資源為靜態(tài)資源
常見(jiàn)web應(yīng)用服務(wù)器:
* tomcat :apache 輕量級(jí) 占用資源少 性能穩(wěn)定
* weblogic:oracle 功能強(qiáng)大 適用于分布式項(xiàng)目 擴(kuò)展性強(qiáng)
* websphere:ibm 性能與weblogic相似
* jboss: jboss公司 開(kāi)源
* Apache:apache 速度快、性能穩(wěn)定,并可做代理服務(wù)器來(lái)使用
* iis:microsoft Internet Information Server 提供了圖形界面的管理工具集
* Nginx: 反向代理服務(wù)器
3 tomcat的安裝
3.1 安裝和配置環(huán)境變量
tomcat版本:8.5/9.0
安裝目錄中不能有中文
安裝簡(jiǎn)單:.exe版本 安裝 一臺(tái)電腦只能安裝一個(gè)
.zip版本 解壓即可使用:一臺(tái)電腦可以安裝多個(gè)
配置環(huán)境變量: CATALINA_HOME=F:\soft\apache-tomcat-9.0.19
JAVA_HOME=F:\soft\jdk
path中添加:%CATALINA_HOME%\bin
3.2 開(kāi)啟和關(guān)閉tomcat
啟動(dòng):點(diǎn)擊F:\soft\apache-tomcat-8.5.40\bin\startup.bat即可
關(guān)閉:點(diǎn)擊×即可
注意:如果點(diǎn)擊沒(méi)有彈出窗口 一閃而過(guò):::就是環(huán)境變量配置錯(cuò)誤!
3.3 tomcat目錄分析
3.4 配置文件
4 tomcat發(fā)布項(xiàng)目
注意我給你復(fù)制的8.5的tomcat有問(wèn)題 更改使用tomcat9.0
4.1 創(chuàng)建項(xiàng)目
-
在%CATALINA_HOME%\webapps下創(chuàng)建一個(gè)文件夾:hehe
-
在hehe中創(chuàng)建子文件夾:WEB-INF和資源文件夾(html/jsp/css/imgs/js)
-
在WEB-INF中創(chuàng)建子文件夾classes::存儲(chǔ)java源文件生成的字節(jié)碼文件
-
在WEB-INF中創(chuàng)建子文件夾lib::存儲(chǔ)項(xiàng)目以來(lái)的jar
-
在WEB-INF中創(chuàng)建子web項(xiàng)目的核心配置文件:web.xml
-
web.xml的代碼
<!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 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
</web-app>
4.2 添加并訪問(wèn)靜態(tài)資源
- 在hehe/html中添加靜態(tài)資源1.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>靜態(tài)資源</title>
</head>
<body>
<h1>靜態(tài)資源html</h1>
</body>
</html>
- 驅(qū)動(dòng)tomcat
- 瀏覽器訪問(wèn)tomcat主頁(yè)
- 瀏覽器訪問(wèn)1.html
4.3 添加并訪問(wèn)動(dòng)態(tài)資源
- 在hehe/jsp下創(chuàng)建一個(gè)2.jsp文件
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<h1>動(dòng)態(tài)資源jsp</h1>
獲取請(qǐng)求參數(shù):name=${param.name}<br/>
獲取請(qǐng)求參數(shù):age=${param.age}<br/>
獲取請(qǐng)求頭:User-Agent=${header['User-Agent']}<br/>
</body>
</html>
- 重啟tomcat
- 瀏覽器訪問(wèn)2.jsp
- 擴(kuò)展
發(fā)現(xiàn)請(qǐng)求玩2.jsp后 work文件夾下自動(dòng)生成一些文件
4.4 eclipse中配置tomcat
- 配置eclipse的jre
- 配置tomcat
- 打開(kāi)server試圖
- 添加new server
- 把已有的web項(xiàng)目添加到此tomcat下
- 通過(guò)eclipse啟動(dòng)tomcat
- 瀏覽器訪問(wèn)
4.5 eclipse中有動(dòng)態(tài)資源jsp
- 把tomcat的jar添加到當(dāng)前項(xiàng)目中 否則jsp會(huì)報(bào)錯(cuò)
-
- 重啟tomcat 瀏覽器訪問(wèn)2.jsp
5 url
URL(Uniform Resource Locator,中文名:統(tǒng)一資源定位符),統(tǒng)一資源定位符是對(duì)可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問(wèn)方法的一種簡(jiǎn)潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址
:互聯(lián)網(wǎng)資源的訪問(wèn)路徑
url:訪問(wèn)2.jsp:http://localhost:8080/java43_01_web/2.jsp?name=hehe&age=12
url格式:協(xié)議://主機(jī):端口/項(xiàng)目名/文件夾/資源名?請(qǐng)求參數(shù)=值&請(qǐng)求參數(shù)=值&請(qǐng)求參數(shù)=值...
域名:會(huì)被域名服務(wù)器解析為主機(jī):端口
如:請(qǐng)求http://www.baidu.com 請(qǐng)求會(huì)先提交給域名服務(wù)器 解析www.baidu.com為百度主機(jī):百度端口
DNS(Domain Name Server,域名服務(wù)器)是進(jìn)行域名(domain name)和與之相對(duì)應(yīng)的IP地址 (IP address)轉(zhuǎn)換的服務(wù)器
- uri
統(tǒng)一資源標(biāo)識(shí)符(Uniform Resource Identifier,URI)是一個(gè)用于標(biāo)識(shí)某一互聯(lián)網(wǎng)資源名稱的字符串
6 http協(xié)議
6.1概念
超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)是一個(gè)簡(jiǎn)單的請(qǐng)求-響應(yīng)協(xié)議:
概念:資源在互聯(lián)網(wǎng)進(jìn)行請(qǐng)求和響應(yīng)時(shí) 需要準(zhǔn)守的協(xié)議(數(shù)據(jù)格式),基于請(qǐng)求/響應(yīng)模式的,無(wú)狀態(tài) 互聯(lián)網(wǎng)傳輸協(xié)議
請(qǐng)求/響應(yīng)模式:只有客戶端主動(dòng)發(fā)送請(qǐng)求 服務(wù)器才會(huì)被動(dòng)的給與響應(yīng):一個(gè)請(qǐng)求對(duì)應(yīng)一個(gè)響應(yīng)
無(wú)狀態(tài):兩次請(qǐng)求之間不能實(shí)現(xiàn)數(shù)據(jù)共享
回話跟蹤技術(shù):解決http的無(wú)狀態(tài)::多次請(qǐng)求之間實(shí)現(xiàn)數(shù)據(jù)共享
cookie+session
請(qǐng)求協(xié)議:客戶端請(qǐng)求服務(wù)器時(shí) 傳遞的信息需要準(zhǔn)守的數(shù)據(jù)格式
響應(yīng)協(xié)議:服務(wù)器響應(yīng)客戶端時(shí) 傳遞的信息需要準(zhǔn)守的數(shù)據(jù)格式
6.2 使用tcp模擬tomcat
package com.zhiyou100_02.tomcat;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Demo01 {
public static void main(String[] args)throws Exception {
//模擬tomcat:獲取的信息就是符合http請(qǐng)求協(xié)議格式
//注意:關(guān)閉eclipse中的tomcat
//開(kāi)啟服務(wù) 開(kāi)啟端口8080
ServerSocket server=new ServerSocket(18080);
while(true){
//等待請(qǐng)求
Socket socket=server.accept();
//獲取請(qǐng)求的資源
InputStream in=socket.getInputStream();
//解析信息:
byte[] arr=new byte[10*1024];
int n=in.read(arr);
System.out.println(new String(arr,0,n));
System.out.println("-----------");
}
}
}
- 創(chuàng)建一個(gè)頁(yè)面1.html:去請(qǐng)求18080端口 并提交請(qǐng)求參數(shù)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>靜態(tài)資源</title>
</head>
<body>
<h1>靜態(tài)資源html</h1>
<form action="http://localhost:18080" method="get">
name:<input type="text" name="name"/><br/>
age:<input type="text" name="age"/><br/>
<input type="submit" value="get請(qǐng)求"/><br/>
</form>
<form action="http://localhost:18080" method="post">
name:<input type="text" name="name"/><br/>
age:<input type="text" name="age"/><br/>
<input type="submit" value="post請(qǐng)求"/><br/>
</form>
</body>
</html>
- 瀏覽器訪問(wèn)頁(yè)面:測(cè)試get請(qǐng)求和post請(qǐng)求
- 服務(wù)器打印的信息:信息的格式就http請(qǐng)求協(xié)議的格式
- get請(qǐng)求
- post請(qǐng)求
6.3 請(qǐng)求協(xié)議的格式
- 請(qǐng)求首行:
get請(qǐng)求:請(qǐng)求首行: get 請(qǐng)求參數(shù) 協(xié)議
post請(qǐng)求:請(qǐng)求首行: post 協(xié)議
- 請(qǐng)求頭
格式:請(qǐng)求頭名:請(qǐng)求頭值
作用:客戶端對(duì)服務(wù)器進(jìn)行的自我介紹:
如 Host:客戶端請(qǐng)求的服務(wù)器位置
User-Agen:客戶端操作系統(tǒng)和瀏覽器的信息
Accept:客戶端可以接受的資源的格式
Accept-Language:客戶端支持的語(yǔ)言
Content-Type:客戶端請(qǐng)求資源的類(lèi)型
- 空行
- 請(qǐng)求體
get請(qǐng)求體:是空的
post請(qǐng)求體:是請(qǐng)求參數(shù)
6.4 響應(yīng)協(xié)議的格式
- 響應(yīng)首行
協(xié)議 響應(yīng)狀態(tài)碼:HTTP/1.1 200
- 響應(yīng)頭
作用:服務(wù)器對(duì)本次響應(yīng)的介紹
格式:響應(yīng)頭名:響應(yīng)頭值
如:Content-Type: 響應(yīng)資源的格式
Content-Length: 響應(yīng)的字節(jié)數(shù)
Date:響應(yīng)的時(shí)間
- 空行
- 響應(yīng)體
響應(yīng)資源的信息
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-435765.html
6.5 響應(yīng)狀態(tài)碼
通過(guò)狀態(tài)碼 表示本次響應(yīng)的情況
200:成功
404:請(qǐng)求資源不存在
500:服務(wù)器端錯(cuò)誤
304:使用緩存
405:請(qǐng)求方式錯(cuò)誤
302:重定向
400:客戶端請(qǐng)求有語(yǔ)法錯(cuò)誤
403:權(quán)限不足
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-435765.html
到了這里,關(guān)于tomcat(跟著寶哥學(xué)java:tomcat)tomcat安裝 發(fā)布項(xiàng)目 配置eclipse http協(xié)議詳解、get請(qǐng)求、post請(qǐng)求、url詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!