JavaWeb
基本概念
web開發:
-
web:網頁的意思
-
靜態web:提供的資料資源不會發生改變
-
動態web:資料是不斷變化的,現代網站幾乎都是動態網站技術堆疊: Servlet/JSP:基于java,主推B/S架構,可以
? 承載高并發,語法類似ASP
? ASP:微軟,國內早期流行,在html中嵌入VB腳本, c#
? PHP:開發速度快,功能強大,但是無法承載大訪問量的情況
在java中動態web資源開發的技術統稱JavaWeb
web應用程式:
-
可以提供瀏覽器訪問的程式,多個web資源例如a.html ,這些資源可以被外界訪問,對外界提供服務,這些統一的web資源會被放在同一個檔案夾下,組成web應用程式
-
web應用程式若想提供給外界訪問需要一個的服務器來統一
Web服務器
處理用戶請求和回傳回應
包括:
- IIS:微軟,ASP,windows中自帶
- Tomcat:Apache專案,技術先進,穩定且免費,屬于輕量級應用服務器,實際上運行JSP和Servlet,對于初學者它是首選,
- 等
Tomcat
之后我們將使用Tomcat進行學習,具體按照教程可以自行百度
下載好后自行配置相關環境變數
Tomcat安裝包組態檔介紹:

啟動:bin中的startup.bar
關閉:bin中的shutdown.bar
服務器核心組態檔(更改埠默認8080,主機名默認locahost等):conf/server.xmf
如更改埠(找到下面):
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
瀏覽器主頁面檔案:webapps/ROOT
如何訪問到網站
- 輸入域名
- 檢測本機下面的C:\Windows\System32\drivers\etc\hosts下面的組態檔有沒有相關域名的映射(如127.0.0.1 localhost),如果本機有直接訪問
- 如果沒有去DNS服務器尋找
發布的第一個web檔案
進入webapps創建一個自己的網站檔案夾

保留相關組態檔(WEB-INF檔案夾/classes:java程式和lib:組態檔和web.xml網站組態檔)同時撰寫自己的web界面

因為localhost:8080是webapps檔案夾,加上自己創建檔案夾的路徑即可(index.html可以省略)

另外localhost:8080/examples 是官方給與的相關例子
在IDEA配置Tomcat



點擊fix清除警告

添加tomcat中webapps中需要使用的相關的網站


之后點擊運行
http
HTTP(超文本傳輸協議)是一個簡單的請求-回應協議,它通常運行在TCP之上,它指定了客戶端可能發送給服務器什么樣的訊息以及得到什么樣的回應,
文本:由可列印字符組成,人可以直接閱讀和理解其形式, 記事本檔案
超文本:除了文本檔案外如視頻,音頻,html等
- 默認埠80
- https:安全的,埠443
請求
常規
請求 URL:
https://img-s.msn.cn/tenant/amp/entityid/BB14xOMT?w=20&h=0&q=60&m=6&f=png&u=t
請求方法:
GET
狀態代碼:
200 成功
3** 請求重定向(讓你去找別人)
4** 找不到資源
5** 服務器代碼錯誤 例如502網關錯誤
遠程地址:
184.26.43.88:443
參考者策略:
strict-origin-when-cross-origin
-
請求行:
- 請求
- 請求方式:get,post等
- get:請求能夠攜帶的引數比較少,大小有限制,會在瀏覽器URL地址欄顯示資料內容,高效但不安全
- post:請求能夠攜帶的引數沒有限制,大小沒有限制,安全但不高效
-
請求頭
Accept:*/* 告訴瀏覽器支持的內容 Accept-Encoding:gzip, deflate, br 告訴瀏覽器支持的編碼 Accept-Language:zh-CN,zh;q=0.9 支持的語言環境 Cache-Control: 快取控制 Connection:keep-alive 告訴瀏覽器請求完成是斷開還是保持連接 Content-Length:7903 Content-Type:text/plain;charset=UTF-8 Cookie:USRLOC=; _EDGE_V=1; Refrush: 告訴客戶端多久重繪一次 Location:讓網頁重新定位
回應
Access-Control-Allow-Origin:* 快取控制
Connection:keep-alive 連接
Content-Type:image/png 型別
Content-Encoding:gzip 編碼
Maven
- 一個專案架構管理工具
- 用來方便匯入jar包
- Maven核心思想:約定大于配置,即有約束不要去違反
自行百度下載Maven – Welcome to Apache Maven
- 為其配置環境變數:
- M2_HOME:maven目錄下的bin目錄
- MAVEN_HOME:maven目錄
- 系統path中配置指向bin目錄
mvn -version查看是否安裝成功
- 配置阿里云鏡像:復制下面一段到conf/setting.xml中的
中
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun-maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
-
建立本地倉庫:新建一個檔案夾作為倉庫,并且到setting.xml中相應位置配置如下

IDEA使用Maven
創建一個maven web專案


另外默認的為idea自帶的maven
之后等待構建匯入完成
- idea中設定maven相關配置


創建一個普通的maven專案
直接點下一步不選或者勾選任何東西創建一個普通maven專案

結構:

標記檔案夾功能

注意在idea配置maven專案程序中會出現匯入錯誤,搞了半天我才發現因為idea不兼容該版本的maven,換成低版本解決
pom檔案
pom.xml是maven的核心檔案
具體內容介紹:
<?xml version="1.0" encoding="UTF-8"?>
<!--Maven版本和頭檔案-->
<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>Maven2</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 專案的打包方式
jar:java應用
war:javaWeb應用
-->
<packaging>war</packaging>
<!--名稱-->
<name>Maven2 Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<!--配置-->
<properties>
<!-- 默認編碼-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 編譯版本-->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<!--專案依賴,以后可以在這里匯入依賴,maven還會自動匯入這個jar包所依賴的其他jar包-->
<dependencies>
<!-- 具體依賴的jar包-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<!--專案構建相關-->
<build>
</build>
另外由于maven的約束,自己寫的噢誒這檔案很有可能不能匯出這就需要:
<!--在build中配置resources,來防止我們資源匯出失敗的問題-->
<build>
<resources>
<!--選擇需要匯出資源的路徑,可以選擇多個-->
<resource>
<directory>src/main/resources</directory>
<!--寫入需要匯出的什么型別的檔案-->
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<!--不去過濾這些檔案-->
<filtering>false</filtering>
</resource>
</resources>
</build>
idea可以生成目錄樹:


轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/554744.html
標籤:Java
上一篇:java集成chatGpt完整案例代碼(效果和官網一樣逐字輸出)
下一篇:返回列表
