Tomcat配置&Servlet

Tomcat的啓動問題

下載:http://tomcat.apache.org/
安裝:解壓即可使用,不需要安裝
啓動:雙擊bin/startup.bat就可以啓動,啓動的黑窗口不能關閉
	訪問自己:http://localhost:8080
	訪問別人:http://別人ip地址:8080
卸載:直接刪除解壓的文件夾即可
正常關閉tomcat:
	1.雙擊bin/shutdown.bat
	2.ctrl+c也是正常關閉

tomcat的啓動問題:啓動黑窗口一閃而過

問題1:JAVA_HOME環境變量沒有配置
解決:正確配置JAVA_HOME環境變量

問題2:tomcat端口號衝突,一般是啓動了多個tomcat服務器
在logs目錄中查看日誌信息:Caused by: java.net.BindException: Address already in use: bind表示端口號衝突。
解決:
	1.在cmd窗口查看所有進程的端口號:netstat -ano,找到8080端口號對應進程的pid;
	2.在任務管理器中根據pid找到該進程,結束掉之前啓動的tomcat進程

項目的3種發佈方式

  • 3種發佈方式
1. 直接將項目放到webapps目錄下即可。(掌握這個就可以了)
	* /hello:項目的訪問路徑-->虛擬目錄
	* 簡化部署:將項目打成一個war包,再將war包放置到webapps目錄下。
		* war包會自動解壓縮
2. 配置conf/server.xml文件的<Host>標籤體中配置
	<Context docBase="D:\hello" path="/hehe" />
	* docBase:項目存放的路徑
	* path:虛擬目錄
3. 在conf\Catalina\localhost創建任意名稱的xml文件。在文件中編寫:
	<Context docBase="D:\hello" />
	* 虛擬目錄:xml文件的名稱,不帶後綴名。
	說明:idea編輯器採用的是該方式
  • 訪問路徑解析

在這裏插入圖片描述

Servlet概述以及實現思路

  • Servlet的概念和作用
    servlet 是運行在 Web 服務器中的小型 Java 程序,本質是一個接口。servlet 通常通過 HTTP(超文本傳輸協議)接收和響應來自 Web 客戶端的請求。 在這裏插入圖片描述
    • 實現一個Servlet的步驟
1.定義一個類實現Servlet接口,重寫抽象方法;
public class ServletDemo1 implements Servlet{
	
}
2.配置這個Servlet
	2.1 在web.xml中配置Servlet(瞭解)
		<!--配置servlet的類信息-->
    <servlet>
        <!--Servlet的名稱-->
        <servlet-name>ServletDemo1</servlet-name>
        <!--servlet的全類名-->
        <servlet-class>com.itheima.web.servlet.ServletDemo1</servlet-class>
    </servlet>
    <!--配置servlet的映射信息,也就是訪問路徑和servlet類的對應關係-->
    <servlet-mapping>
        <!--Servlet的名稱,和上面保持一致-->
        <servlet-name>ServletDemo1</servlet-name>
        <!--Servlet的訪問路徑-->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    2.2 使用註解配置Servlet(吐血推薦)
    //當註解的參數有且僅有一個,而且參數名叫value時,value可以省略不寫
    @WebServlet("/demo1")
		public class ServletDemo1 implements Servlet{}

Servlet生命週期

  • 描述Servlet生命週期
    思路:三個方法分別是什麼時候被調用的?調用幾次?作用分別是什麼?
    當我們第一次訪問Servlet時,服務器會創建Servlet對象,調用init()方法初始化,該方法只調用一次,可以用來加載配置文件;每當我們訪問Servelt時,service()方法都會被調用,訪問一次就調用一次,用來接收客戶端請求以及對客戶端作出響應;服務器正常關閉的時候銷燬Servlet對象,destory()方法會被調用,調用一次,一般在該方法中釋放資源;
  • 配置啓動時加載
在web.xml中的<Servlet>標籤中配置<load-on-startup>2</load-on-startup>,值越小優先級越高;

訪問路徑問題

1. 完全路徑匹配:以/開頭,不包含通配符*  例如:/servletDemo1  /demo1 /abc /aaa/bbb  /abc.do  (常用)
2. 目錄匹配:以/開頭,以*結尾;在瀏覽器訪問時*表示任意字符  例如:/abc/*  /*
3. 擴展名匹配:以*開頭,以固定的後綴名結尾  例如  *.jsp  *.abc   但是/abc/*.do錯誤  

HTTP協議

  • 概念:http協議規定的是客戶端和服務器之間通信的規則;
  • 特點:http協議是基於請求和響應;一定是先有請求後有響應,一次請求對應一次響應;
  • 請求部分:分4個部分
請求行:
	請求方式  url路徑  協議/版本
	POST /day14/servletDemo5 HTTP/1.1
	
請求頭:一般是一個key對應一個value,也有一個key對應多個value;
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
	告訴服務器瀏覽器的版本信息,一般用來解決瀏覽器兼容性問題;
    Referer: http://localhost:8080/day14/login.html
    告訴瀏覽器當前請求的來源,用於防盜鏈以及統計工作;
    
請求空行:用於分隔請求頭和請求體

請求體:只有post請求才有請求體,get請求沒有,post請求參數就在請求體中
	username=zhaoying
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章