一. 常見軟件系統(tǒng)體系結(jié)構(gòu)
1.C/S
- C/S結(jié)構(gòu)即客戶端/服務(wù)器(Client/Server)
- 缺點(diǎn):軟件更新時需要同時更新客戶端和服務(wù)器端兩端夺荒,比較麻煩
- 優(yōu)點(diǎn):安全性比較好
2.B/S
- B/S結(jié)構(gòu)即瀏覽器/服務(wù)器(Browser/Server)
- 優(yōu)點(diǎn):只需要編寫服務(wù)器端程序
- 缺點(diǎn):安全性較差摸恍。應(yīng)用服務(wù)器的負(fù)載過重
二.Tomcat
為什么要安裝tomcat ?
通過html可以制作一個網(wǎng)頁. 讓其他人訪問我們編寫的網(wǎng)頁
目錄結(jié)構(gòu)
三.http協(xié)議
HTTP(hypertext transport protocol)击喂,即超文本傳輸協(xié)議。這個協(xié)議詳細(xì)規(guī)定了瀏覽器和萬維網(wǎng)服務(wù)器之間互相通信的規(guī)則茄厘。
HTTP就是一個通信規(guī)則唐瀑,通信規(guī)則規(guī)定了客戶端發(fā)送給服務(wù)器的內(nèi)容格式宗雇,也規(guī)定了服務(wù)器發(fā)送給客戶端的內(nèi)容格式。其實(shí)我們要學(xué)習(xí)的就是這個兩個格式!客戶端發(fā)送給服務(wù)器的格式叫“請求協(xié)議”蹄衷;服務(wù)器發(fā)送給客戶端的格式叫“響應(yīng)協(xié)議”忧额。
http request + http response 構(gòu)成了一個完成http的請求和響應(yīng)過程。
瀏覽器通過發(fā)送http請求向服務(wù)器請求對資源的訪問宦芦,http請求可以使用多種請求方法:
方法 作用
GET 請求獲取所指定的資源
POST 請求服務(wù)器接收在請求中封裝的實(shí)體
HEAD 請求獲取所指定資源的響應(yīng)信息報頭
PUT 請求服務(wù)器存儲指定的資源
DELETE 請求服務(wù)器刪除指定的資源
TRACE 請求服務(wù)器回送收到的請求信息宙址,主要用于測試OPTIONS 請求服務(wù)器的性能或者查詢與資源相關(guān)的選項(xiàng)
三. Servlet
作用: 制作動態(tài)網(wǎng)頁的
所謂的動態(tài):將數(shù)據(jù)庫表中的數(shù)據(jù)查詢展示在html網(wǎng)頁中
可以通過網(wǎng)頁將頁面的數(shù)據(jù)提交到數(shù)據(jù)庫
其實(shí)就是讓普通用戶通過瀏覽器可以和服務(wù)器做交互
Servlet其實(shí)一個可以被瀏覽器請求執(zhí)行的Java代碼
當(dāng)然Java代碼本身是不能被瀏覽器請求執(zhí)行的,只不過這個事情已經(jīng)被tomcat底層幫助我們完成了调卑,我們只需要按照約定好的語法規(guī)則即可實(shí)現(xiàn)Java代碼被瀏覽器請求執(zhí)行
什么是Servlet
Servlet 是一個 Java程序抡砂,是在服務(wù)器上運(yùn)行以處理客戶端請求并做出響應(yīng)的程序
ServletContext
ServletContext對象 ,叫做Servlet的上下文對象。表示一個當(dāng)前的web應(yīng)用環(huán)境恬涧。
一個web應(yīng)用中只有一個ServletContext對象注益。
對象創(chuàng)建和得到
創(chuàng)建時機(jī):加載web應(yīng)用時創(chuàng)建ServletContext對象。
得到對象: 從ServletConfig對象的getServletContext方法得到
GET請求和POST請求的區(qū)別:
l GET請求:
? 請求參數(shù)會在瀏覽器的地址欄中顯示溯捆,所以不安全丑搔;
? 請求參數(shù)長度限制長度在1K之內(nèi);
? GET請求沒有請求體提揍,無法通過request.setCharacterEncoding()
來設(shè)置參數(shù)的編碼啤月;
l POST請求:
? 請求參數(shù)不會顯示瀏覽器的地址欄,相對安全劳跃;
? 請求參數(shù)長度沒有限制谎仲;
請求流程
1.瀏覽器發(fā)送url地址請求服務(wù)器,根據(jù)ip地址找到對應(yīng)的服務(wù)器
2.在服務(wù)器上找到tomcat以及對應(yīng)的項(xiàng)目
3.根據(jù)請求的url地址在web.xml文件中找到對應(yīng)的url-pattern
4.根據(jù)servlet-name找到對應(yīng)的Servlet類
5.自動執(zhí)行Servlet類中的service方法
四刨仑、HttpServletRequest對象和HttpServletResponse對象
request對象:請求對象 郑诺,處理和請求有關(guān)的操作
response對象:響應(yīng)對象,處理和響應(yīng)有關(guān)的操作
request對象:接收請求參數(shù)
response對象:向?yàn)g覽器客戶端輸出
亂碼問題
request接收的參數(shù)亂碼:
在tomcat中server.xml文件
response相應(yīng)的亂碼:
response.setContentType(“text/html;charset=UTF-8”);
注意事項(xiàng):這行代碼一定寫在獲取PrintWriter打印流之前