Tomcat的使用(详细流程)
1、JavaWeb概念
Java web,是用java技術(shù)來解決相關(guān)web互聯(lián)網(wǎng)領(lǐng)域的技術(shù)的總稱。web包括:web服務(wù)器和web客戶端兩部分。java在最早web客戶端的應(yīng)用有java applet程序,不過這種技術(shù)在很久之前就已經(jīng)被淘汰了。java在服務(wù)器端的應(yīng)用非常豐富,
比如Servlet,jsp和第三方框架等等。java技術(shù)對web領(lǐng)域的發(fā)展注入了強(qiáng)大的動(dòng)力
簡單的說,就是使用java語言實(shí)現(xiàn)瀏覽器可以訪問的程序內(nèi)容。稱之為Java Web。
javaweb開發(fā)是基于請求和響應(yīng)的:
請求:瀏覽器(客戶端)向服務(wù)器發(fā)送信息
響應(yīng):服務(wù)器向(客戶端)瀏覽器回送信息
請求和響應(yīng)是成對出現(xiàn)的。
2、web資源分類:
所謂web資源即放在Internet網(wǎng)上供外界訪問的文件或程序,又根據(jù)它們呈現(xiàn)的效果及原理不同,將它們劃分為靜態(tài)資源和動(dòng)態(tài)資源。靜態(tài)web資源:固定不變數(shù)據(jù)文件(靜態(tài)網(wǎng)頁 HTML、CSS文件、文本、音頻、視頻)
靜態(tài)web技術(shù):HTML+CSS+JavaScript
動(dòng)態(tài)web資源:一段服務(wù)程序,運(yùn)行后,生成的數(shù)據(jù)文件
動(dòng)態(tài)web技術(shù):servlet,jsp,php, .net ,ruby、python等等
3、常見的web服務(wù)器
web服務(wù)器簡介:
Tomcat:由Apache組織提供的一種Web服務(wù)器,提供對jsp和Servlet的支持。它是一種輕量級的javaWeb容器(服務(wù)器),也是當(dāng)前應(yīng)用最廣的JavaWeb服務(wù)器(免費(fèi))。Jboss:是一個(gè)遵從JavaEE規(guī)范的、開放源代碼的、純Java的EJB服務(wù)器,它支持所有的JavaEE規(guī)范(免費(fèi))。
GlassFish: 由Oracle公司開發(fā)的一款JavaWeb服務(wù)器,是一款強(qiáng)健的商業(yè)服務(wù)器,達(dá)到產(chǎn)品級質(zhì)量(應(yīng)用很少,收費(fèi))。
Resin:是CAUCHO公司的產(chǎn)品,是一個(gè)非常流行的應(yīng)用服務(wù)器,對servlet和JSP提供了良好的支持,性能也比較優(yōu)良,resin自身采用JAVA語言開發(fā)(收費(fèi),應(yīng)用比較多)。
WebLogic:是Oracle公司的產(chǎn)品,是目前應(yīng)用最廣泛的Web服務(wù)器,支持JavaEE規(guī)范,而且不斷的完善以適應(yīng)新的開發(fā)要求,適合大型項(xiàng)目(收費(fèi),用的不多,適合大公司)。
3.1、Tomcat服務(wù)器
開源小型web服務(wù)器 ,完全免費(fèi),主要用于中小型web項(xiàng)目,只支持Servlet和JSP 等少量javaee規(guī)范(就是JavaWeb編程接口)
3.2、tomcat服務(wù)器與servlet版本的關(guān)系
servlet:sun公司提供的用于開發(fā)動(dòng)態(tài)web資源的技術(shù)。jsp:(java server page),java提供的一門開發(fā)web網(wǎng)頁的技術(shù)。
tomcat軟件:java開發(fā)的。java軟件運(yùn)行的時(shí)候需要jdk。
3.3、tomcat下載和安裝說明
到http://tomcat.apache.org ?下載1) Tomcat首頁
3)下載后的包
4)安裝:解壓
bin:可以執(zhí)行文件。
conf:tomcat服務(wù)器的配置文件
lib:tomcat啟動(dòng)后需要依賴的jar包
logs:tomcat工作之后的日志文件
webapps:是tomcat布暑工程的目錄。
work:jsp文件在被翻譯之后,保存在當(dāng)前這個(gè)目錄下,session對象被序列化之后保存的位置
3.4、Tomcat服務(wù)器啟動(dòng)(**重點(diǎn))
注意事項(xiàng):
1、JAVA_HOME:環(huán)境變量。并且配置到j(luò)dk的目錄,其完整過程如下:
打開控制臺(cmd命令打開窗口)。輸入java -version測試
2、啟動(dòng)tomcat目錄。 tomcat目錄/bin/startup.bat(window啟動(dòng)文件)?找到startup.bat 雙擊運(yùn)行。會(huì)有一個(gè)黑窗口,黑窗口不要關(guān)閉。(如果關(guān)閉,相當(dāng)于把tomcat停止了。)
3、在瀏覽器地址欄中輸入:http://localhost:8080 或者 http://127.0.0.1:8080localhost ,如果看到如下頁面,證明啟動(dòng)成功
3.5、配置tomcat的端口(****重點(diǎn))
tomcat默認(rèn)的端口是8080(訪問端口)
http的默認(rèn)端口是80,如果訪問的時(shí)候輸入http://www.baidu.com相當(dāng)于http://www.baidu.com:80。當(dāng)真正在項(xiàng)目上線之后,通常采用80,修改方法如下:
1)找到tomcat目錄/conf/server.xml
2)修改port的值,將port端口的值修改為80
3)然后在瀏覽器中輸入 http://127.0.0.1:80 或 http://127.0.0.1 訪問測試
訪問成功!!!
3.6、catalina run 啟動(dòng)Tomcat
Tomcat啟動(dòng),還有一種啟動(dòng)的方法就是在命令行中,先把你的當(dāng)前目錄切換 到你tomcat目錄\bin目錄下,如下是我的位置再執(zhí)行catalina run 這個(gè)命令啟動(dòng)Tomcat。這個(gè)命令有什么好處。當(dāng)Tomcat啟動(dòng)失敗的時(shí)候,會(huì)有一閃而過的情況,
當(dāng)我們使用catalina run 這個(gè)命令啟動(dòng)Tomcat的時(shí)候,哪怕有錯(cuò)誤,我們也可以清楚的看到tomcat失敗的原因。不會(huì)一閃而過。
3.7、tomcat關(guān)閉
有三種方法。第一種:Ctrl+C鍵 關(guān)閉Tomcat服務(wù)器
第二種:點(diǎn)擊Tomcat窗口的右上角關(guān)閉按鈕 (暴力停止服務(wù)器)
第三種:找到tomcat目錄/bin/shutdown.bat文件,雙擊執(zhí)行關(guān)閉Tomcat。
4、常用的布署工程到Tomcat中的兩種方式
把我們自己書寫的html,servlet這些信息,部署到tomcat的方式。
4.1、第一種方法:在tomcat目錄/conf/server.xml 配置---了解
在conf/server.xml文件的host元素中配置,例如:在host標(biāo)簽內(nèi)書寫如下內(nèi)容
<Context ?path="/atguigu" ?docBase="D:\atguigu"/>
<Context ?path=”瀏覽器要訪問的目錄---虛擬目錄” ?docBase=”網(wǎng)站所在磁盤目錄”/>
配置好之后,要重啟服務(wù)器。
缺點(diǎn)(Tomcat7.0之后):如果配置錯(cuò)誤:tomcat會(huì)啟動(dòng)失敗。(如果tomcat里面存放的其他的網(wǎng)站),其他網(wǎng)站也會(huì)停機(jī)。
4.2、第二種方式:將網(wǎng)站目錄復(fù)制到tomcat/webapps目錄(常用,必須掌握)
有一個(gè)網(wǎng)站(一個(gè)文件夾),把文件夾復(fù)制到tomcat的webapps目錄下。文件夾的名字,就是網(wǎng)站或者工程的訪問目錄.相當(dāng)于之前配置 <Context path=”” 的配置
4.3、把網(wǎng)站目錄壓縮成war包部署到tomcat中
war包:就是一個(gè)壓縮文件 zip格式的壓縮文件。 只不過擴(kuò)展名不是.zip 而是.war把我們的項(xiàng)目進(jìn)行壓縮zip,改成war,把war文件拷貝到tomcat/webapps目錄下
步驟1、把文件夾中的內(nèi)容壓縮成zip的格式,點(diǎn)擊一個(gè)要部署的文件夾下面,全選 然后壓縮
步驟2、修改文件的后綴名為.war
步驟3.把war文件復(fù)制到webapps目錄下。tomcat會(huì)自己把war的文件進(jìn)行解壓
4.4、webapps目錄下/ROOT工程的訪問
當(dāng)我們在瀏覽器中直接輸入http://ip地址:端口號 ? 那么 默認(rèn)訪問的是Tomcat目錄/webapps/ROOT目錄如果webapps下面有一個(gè)ROOT的項(xiàng)目。那么在訪問的時(shí)候,直接可以省略項(xiàng)目的名字/ 表示找到root目錄
5、整合Tomcat和Eclipse開發(fā)工具中(***常用必須掌握)
5.1、打開Eclipse的Server視圖窗口
第一種情況,直接打開Servers窗口
第二種情況,搜索Servers窗口打開圖一,打開總的eclipse視圖 圖二:輸入Server過濾出服務(wù)器窗口選項(xiàng) Servers服務(wù)器窗口已成功打開,如下圖:
5.2、創(chuàng)建Tomcat 服務(wù)器
1)在Servers窗口中,點(diǎn)擊 創(chuàng)建 server 的文字提示連接。如下圖:
2)創(chuàng)建一個(gè)新的Tomcat服務(wù)器實(shí)例?
3)點(diǎn)擊Browse按鈕,打開目錄選擇窗口。選擇Tomcat 解壓目錄
5)Tomcat目錄選擇好之后,點(diǎn)擊 【Next】按鈕繼續(xù)操作
7)Tomcat 服務(wù)器創(chuàng)建成功!!!
5.3、啟動(dòng)Eclipse中的Tomcat服務(wù)器
1)Debug模式啟動(dòng)Tomcat服務(wù)器提示當(dāng)前為Debug模式啟動(dòng)!!!
Tomcat啟動(dòng)成功的控制臺提示!!!
Run模式啟動(dòng)顯示
Tomcat啟動(dòng)成功的控制臺提示!!!
5.4、停止 Eclipse 中的Tomcat 服務(wù)器
暴力停止 Tomcat (相當(dāng)于電腦被拔掉電源一樣。沒有執(zhí)行關(guān)機(jī)的準(zhǔn)備操作。)正常停止 Tomcat (相當(dāng)于點(diǎn)擊操作系統(tǒng)中的關(guān)機(jī)按鈕,執(zhí)行關(guān)機(jī)保存操作,然后關(guān)機(jī))
5.5、配置Eclipse 中的Tomcat 布暑的Web工程路徑
1)打開Servers窗口,雙擊Tomcat v6.0 Server 服務(wù)器打開 Tomcat的配置窗口這里是Eclipse把工程發(fā)布后的三種不同的選項(xiàng)。
2)Tomcat 位置-選項(xiàng)介紹說明:
2.2、 User Tomcat installation (takes control of Tomcat installation) 在原Tomcat目錄下做更改操作所有布暑的web工程都會(huì)發(fā)布到Tomcat目錄下的\wtpwebapps目錄中
2.3、 User custom location ( does not modify Tomcat installtion ) 自定義一個(gè)目錄去布暑Web工程
比如操作如下:
一:選擇自定義的布暑目錄
6 HTTP協(xié)議介紹
6.1、 HTTP協(xié)議
1.HTTP(hypertext transport protocol),即超文本傳輸協(xié)議。這個(gè)協(xié)議詳細(xì)規(guī)定了瀏覽器和萬維網(wǎng)服務(wù)器之間互相通信的規(guī)則。2.客戶端與服務(wù)端通信時(shí)傳輸?shù)膬?nèi)容我們稱之為報(bào)文。
3.HTTP就是一個(gè)通信規(guī)則,這個(gè)規(guī)則規(guī)定了客戶端發(fā)送給服務(wù)器的報(bào)文格式,也規(guī)定了服務(wù)器發(fā)送給客戶端的報(bào)文格式。實(shí)際我們要學(xué)習(xí)的就是這兩種報(bào)文。客戶端發(fā)送給服務(wù)器的稱為”請求報(bào)文“,服務(wù)器發(fā)送給客戶端的稱為”響應(yīng)報(bào)文“。
大白話說,什么是協(xié)議。是雙方相互約定好的規(guī)則;比如:租房協(xié)議:租房協(xié)議就是租客和房東之間相互約定好的租房規(guī)則?
6.2、請求的協(xié)議格式
請求的HTTP協(xié)議格式:請求行 ??
請求頭
空行
請求體
GET請求協(xié)議格式 ?(get請求沒有請求體)
POST請求協(xié)議格式
6.3、常見請求頭的說明
GET /Hello/index.jsp HTTP/1.1:GET請求,請求服務(wù)器資源的路徑 Hello/index.jsp, ?協(xié)議為http ? 版本為1.1;
Host:localhost:請求的主機(jī)名為localhost;
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0…:與瀏覽器和OS相關(guān)的信息。有些網(wǎng)站會(huì)顯示用戶的系統(tǒng)版本和瀏覽器版本信息,這都是通過獲取User-Agent頭信息而來的;
Accept: */*:告訴服務(wù)器,當(dāng)前客戶端可以接收的數(shù)據(jù)類型, */*,就表示什么都可以接收;
Accept-Language: zh-CN:當(dāng)前客戶端支持的語言,可以在瀏覽器的工具選項(xiàng)中找到語言相關(guān)信息;
Accept-Encoding: gzip, deflate:支持的壓縮格式。數(shù)據(jù)在網(wǎng)絡(luò)上傳遞時(shí),可能服務(wù)器會(huì)把數(shù)據(jù)壓縮后再發(fā)送;
Connection: keep-alive:客戶端支持的鏈接方式,保持一段時(shí)間鏈接,默認(rèn)為3000ms;
6.4、get請求和post請求都分別是哪些?
GET請求
1)、輸入瀏覽器地址欄輸入地址,直接按回車 ?
2)、點(diǎn)擊<a>超鏈接 ??
3)、GET請求 表單提交 ?
4)、script src=””,引入外部文件?
5)、img src=”路徑”,引入圖片
6)、引入外部css。。。
POST請求
1)只有表單提交的時(shí)候method=post,提交表單就是發(fā)post請求
6.5、響應(yīng)的協(xié)議格式
響應(yīng)的HTTP協(xié)議格式響應(yīng)首行
響應(yīng)頭信息
空行
響應(yīng)體
6.6、常見的響應(yīng)碼
響應(yīng)碼對瀏覽器來說很重要,它告訴瀏覽器響應(yīng)的結(jié)果;200:請求成功,瀏覽器會(huì)把響應(yīng)體內(nèi)容(通常是html)顯示在瀏覽器中;
404:請求的資源沒有找到,說明客戶端錯(cuò)誤的請求了不存在的資源;
500:請求資源找到了,但服務(wù)器內(nèi)部出現(xiàn)了錯(cuò)誤;
302:請求重定向,當(dāng)響應(yīng)碼為302時(shí),表示服務(wù)器要求瀏覽器重新再發(fā)一個(gè)請求,服務(wù)器會(huì)發(fā)送一個(gè)響應(yīng)頭Location,它指定了新請求的URL地址;
7、servlet(重點(diǎn)*****)
7.1、servlet簡介
servlet 是運(yùn)行在 Web 服務(wù)器中的小型 Java 程序。servlet 通常通過 HTTP(超文本傳輸協(xié)議)接收和響應(yīng)來自 Web 客戶端的請求。?要實(shí)現(xiàn)此接口,可以編寫一個(gè)擴(kuò)展 javax.servlet.GenericServlet 的一般 servlet,或者編寫一個(gè)擴(kuò)展 javax.servlet.http.HttpServlet 的 HTTP servlet。?
此接口定義了初始化 servlet 的方法、為請求提供服務(wù)的方法和從服務(wù)器移除 servlet 的方法。這些方法稱為生命周期方法,它們是按以下順序調(diào)用的:?
1.構(gòu)造 servlet,然后使用 init 方法將其初始化。?
2.處理來自客戶端的對 service 方法的所有調(diào)用。?
3.從服務(wù)中取出 servlet,然后使用 destroy 方法銷毀它,最后進(jìn)行垃圾回收并終止它。 Servlet:
1、接受瀏覽器發(fā)送過來的消息。
2、給瀏覽器返回消息。瀏覽器認(rèn)識html。可以動(dòng)態(tài)去輸出html
7.2、servlet快速入門
7.2.1、如何創(chuàng)建動(dòng)態(tài)的Web工程
1)先創(chuàng)建 動(dòng)態(tài)的Web工程2) ?配置工程的選項(xiàng)
3)勾選生成web.xml配置文件
4)動(dòng)態(tài)web工程創(chuàng)建完成!!!
5)web工程的介紹和說明
7.2.2、手動(dòng)編寫servlet實(shí)現(xiàn)
寫servlet做兩件事1、實(shí)現(xiàn)servlet接口。 由sun公司定義的一個(gè)接口。(定義一個(gè)規(guī)范)
2、把類部署到web服務(wù)器中(tomcat)。 sun公司定義一個(gè)servlet的規(guī)范。定義了servlet應(yīng)該有哪些方法,以及方法需要的參數(shù)。
1、實(shí)現(xiàn)servlet接口(javax.servlet.Servlet)
2、重寫service方法(service方法每次請求都會(huì)調(diào)用一次) package com.atguigu.web;import java.io.IOException;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class Hello implements Servlet{@Overridepublic void destroy() {// TODO Auto-generated method stubSystem.out.println("Servlet銷毀了!");}@Overridepublic ServletConfig getServletConfig() {// TODO Auto-generated method stubreturn null;}@Overridepublic String getServletInfo() {// TODO Auto-generated method stubreturn null;}@Overridepublic void init(ServletConfig arg0) throws ServletException {// TODO Auto-generated method stubSystem.out.println("ServerConfig 初始化了");}@Overridepublic void service(ServletRequest arg0, ServletResponse arg1)throws ServletException, IOException {// TODO Auto-generated method stubSystem.out.println("hello servlet service方法被調(diào)用");}}
當(dāng)瀏覽器輸入地址,訪問servlet的時(shí)候,servlet會(huì)執(zhí)行servcie方法。
3、在WebContent/WEB-INF/web.xml中配置servlet的訪問路徑 。瀏覽器訪問servlet的路徑
web.xml(新建web工程的時(shí)候,eclipse自動(dòng)創(chuàng)建出來的)的位置:在web.xml的根標(biāo)簽下,直接書寫如下內(nèi)容。
<?xml version="1.0" encoding="UTF-8"?><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"><display-name>day06</display-name><servlet><servlet-name>Hello</servlet-name><servlet-class>com.atguigu.web.Hello</servlet-class></servlet><servlet-mapping><servlet-name>Hello</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list></web-app>
4、把項(xiàng)目部署到tomcat中,去啟動(dòng)tomcat。在地址欄中輸入信息,訪問servlet
控制臺打印:
7.2.3、訪問servlet的細(xì)節(jié)
瀏覽器地址欄中輸入:http://localhost:8080/day06/hello訪問過程分析:
7.2.4、servlet生命周期
Servlet的生命周期1.調(diào)用 init 方法 初始化Servlet
2.調(diào)用 Servlet中的service方法 處理請求操作
3.調(diào)用 destory方法 執(zhí)行Servlet銷毀的操作 init方法:當(dāng)服務(wù)器創(chuàng)建一個(gè)serlvet的時(shí)候,會(huì)去調(diào)用init方法。當(dāng)我們第一次去訪問一個(gè)servlet的時(shí)候,會(huì)去創(chuàng)建這個(gè)servlet對象。并且只會(huì)創(chuàng)建一次。如果配置了load-on-startup 表示服務(wù)器啟動(dòng)的時(shí)候就創(chuàng)建servlet實(shí)例。
service方法:客戶端每一次請求,tomcat都會(huì)去調(diào)用servcie方法。處理用戶的請求。并且給其響應(yīng)。每一次請求都會(huì)調(diào)用servcie方法。
estroy 方法:當(dāng)服務(wù)器銷毀一個(gè)servlet的時(shí)候,會(huì)調(diào)用里面的destory方法。當(dāng)我們的web服務(wù)器,正常關(guān)閉的時(shí)候,會(huì)去調(diào)用destroy方法。否則不會(huì)調(diào)用destroy的方法。
7.3、使用Eclipse創(chuàng)建Servlet程序(重點(diǎn)*****)
1)通過Eclipse自動(dòng)新建一個(gè)Servlet程序2)修改Servlet的訪問url地址
3)勾選需要生成的Servlet方法
4) 查看自動(dòng)生成的結(jié)果內(nèi)容!!!
5) 在瀏覽器中輸出http://127.0.0.1:80/day06/helloServlet 訪問測試
訪問成功
7.4、Servlet是單例的。Servlet中的變量,它有線程安全問題。
7.4.1、全局變量,數(shù)據(jù)不安全。
7.4.2、方法內(nèi)的局部變量,數(shù)據(jù)安全
總結(jié)
以上是生活随笔為你收集整理的Tomcat的使用(详细流程)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web前端dya07--ES6高级语法的
- 下一篇: 物联网定位模块对智慧交通的意义