1.IDEA會為每一個(gè)tomcat部署的項(xiàng)目單獨(dú)建立一份配置文件
- 查看控制臺的log:Using CATALINA_BASE: "C:\Users\Eric.IntelliJIdea2019.3\system\tomcat_Java9_web_codespace"
2.工作空間項(xiàng)目 和 tomcat部署的web項(xiàng)目 - tomcat真正訪問的是“tomcat部署的web項(xiàng)目”超陆,"tomcat部署的web項(xiàng)目"對應(yīng)著"工作空間項(xiàng)目" 的web目錄下的所有資源
- WEB-INF目錄下的資源不能被瀏覽器直接訪問牺弹。
3.斷點(diǎn)調(diào)試:使用"小蟲子"啟動 dubug 啟動
Servlet:
1.概念
2.步驟
3.執(zhí)行原理
4.生命周期
5.Servlet3.0 注解配置
6.Servlet的體系結(jié)構(gòu)
Servlet -- 接口
|
GenericServlet -- 抽象類
|
HttpServlet -- 抽象類
- GenericServlet:將Servlet接口中其他的方法做了默認(rèn)空實(shí)現(xiàn),只將service()方法作為抽象, 將來定義Servlet類時(shí)时呀,可以繼承GenericServlet张漂,實(shí)現(xiàn)service()方法即可
- HttpServlet:對http協(xié)議的一種封裝,簡化操作, 使用步驟 1退唠、定義類繼承HttpServlet鹃锈,2、復(fù)寫doGet/doPost方法
HTTP:
概念:Hyper Text Transfer Protocol 超文本傳輸協(xié)議
傳輸協(xié)議:定義了瞧预,客戶端和服務(wù)器端通信時(shí)屎债,發(fā)送數(shù)據(jù)的格式
特點(diǎn):
基于TCP/IP的高級協(xié)議
默認(rèn)端口號:80
基于請求/響應(yīng)模型的:一次請求對應(yīng)一次響應(yīng)
無狀態(tài)的:每次請求之間相互獨(dú)立,不能交互數(shù)據(jù)
歷史版本:1.0:每一次請求響應(yīng)都會建立新的連接
1.1:復(fù)用連接
請求消息數(shù)據(jù)格式
請求行
請求方式 請求url 請求協(xié)議/版本
GET /login.html HTTP/1.1
請求方式:
HTTP協(xié)議有7中請求方式垢油,常用的有2種
GET:
請求參數(shù)在請求行中盆驹,在url后。
請求的url長度有限制的
不太安全
POST:
請求參數(shù)在請求體中
請求的url長度沒有限制的
相對安全
Request
1.request對象和response對象的原理
request和response對象是由服務(wù)器創(chuàng)建的滩愁。我們來使用它們
request對象是來獲取請求消息躯喇,response對象是來設(shè)置響應(yīng)消息
2. request對象繼承體系結(jié)構(gòu):
ServletRequest -- 接口
| 繼承
HttpServletRequest -- 接口
Request的基本請求
路徑:http://localhost/xiaojuan/D1?reason=aini
// 1.獲取請求方式: GET
String method = req.getMethod();
System.out.println("method:" +method);
// 2 獲取虛擬目錄
String contextPath = req.getContextPath();
System.out.println("contextPath:" +contextPath);
// 3.獲取servlet路徑
String servletPath = req.getServletPath();
System.out.println("servletPath:" +servletPath);
// 4. 獲取get方式的請求參數(shù)
String queryString = req.getQueryString();
System.out.println("queryString:" +queryString);
// 5. 獲取 URI
String requestURI = req.getRequestURI();
System.out.println("requestURI:" +requestURI);
//6.獲取URL
StringBuffer requestURL = req.getRequestURL();
System.out.println("requestURL:" +requestURL);
// 7.. 獲取協(xié)議版本
String protocol = req.getProtocol();
System.out.println("protocol:" +protocol);
// 8..獲取客戶機(jī)iP地址 0:0:0:0:0:0:0:1
String remoteAddr = req.getRemoteAddr();
System.out.println("remoteAddr" + remoteAddr);