1.瀏覽器端:HTML沥割、CSS、JAVASCRIPT
默認(rèn)的WEB端口是:80
WEB狀態(tài)碼:200汇鞭、404凄敢、500碌冶、301、302
2.JVM端:JSP SERVLET JAVABEAN JAVA
JSP的基本運(yùn)行原理:https://zhuanlan.zhihu.com/p/61456562
JSP的特點(diǎn):
① 實(shí)現(xiàn)跨平臺(tái)操作
②可重復(fù)使用組件
③標(biāo)記簡(jiǎn)化的語言
④實(shí)現(xiàn)應(yīng)用程序與頁面顯示的分離化
JSP會(huì)在轉(zhuǎn)譯階段轉(zhuǎn)換為Servlet源代碼涝缝,JSP是JAVA針對(duì)WEB層的技術(shù)扑庞,只支持JAVA譬重。
可以處理靜態(tài)內(nèi)容:純前端腳本。
可以處理動(dòng)態(tài)內(nèi)容:EL表達(dá)式嫩挤,JSTL標(biāo)簽害幅,JSP腳本進(jìn)行的循環(huán)語句、條件語句等岂昭。
JSP的隱式對(duì)象:request以现、response、out约啊、session邑遏、application、config恰矩、pageContext记盒、page、exception
JSP的指令:
<%@ page %>
主要用于聲明頁面屬性contentType pageEncoding外傅,也用于 import 導(dǎo)入java包纪吮。
<%@ include file="..." %>
引入其他頁面
<%@ taglib uri="" %>
導(dǎo)入自定義標(biāo)簽,自定義標(biāo)簽的文件擴(kuò)展名:tld
H/C/J用PrintWriter對(duì)象寫入到瀏覽器端萎胰。
JSP的使用標(biāo)簽:
①<% ... %>:代碼塊碾盟,用于執(zhí)行代碼,每次訪問都會(huì)執(zhí)行技竟。
②<%! ... %>:定義代碼塊冰肴,用于定義函數(shù),變量榔组,只執(zhí)行一次熙尉。
③<%= ... %>:輸出代碼塊,等同于out.print();搓扯。
動(dòng)作元素:
<jsp:include page="...">
<jsp:param name="" value="" />
<jsp:param name="" value="" />
</jsp:include>
<jsp:forward page="...">
<jsp:param name="" value="" />
<jsp:param name="" value="" />
</jsp:forward>
<jsp:plugin type="applet">
<jsp:param name="" value="" />
</jsp:plugin>
EL表達(dá)式的用法:${JSP expression}
①在jsp頁面中讀取request.setAttribute()存儲(chǔ)的對(duì)象或值检痰。
②進(jìn)行簡(jiǎn)單的判斷。
③進(jìn)行簡(jiǎn)單的計(jì)算锨推。
④遵循java規(guī)則铅歼。注意1+1與1+“1”的區(qū)別。
Servlet:繼承于HttpServlet(抽象類)
優(yōu)點(diǎn):
①是mvc的基礎(chǔ)爱态,其他的框架比如struts1谭贪,struts2境钟,webwork都是從servlet基礎(chǔ)上發(fā)展過來的锦担。所以掌握servlet是掌握mvc的關(guān)鍵。
②Servlet把最底層的api暴漏給程序員慨削,使程序員更能清楚的了解mvc的各個(gè)特點(diǎn)洞渔。
③程序員可以對(duì)servlet進(jìn)行封裝套媚。Struts2就是從servlet中封裝以后得到的結(jié)果。
④市場(chǎng)上任何一個(gè)mvc的框架都是servlet發(fā)展過來的磁椒,所以要想學(xué)好struts2這個(gè)框架堤瘤,了解servlet的運(yùn)行機(jī)制很關(guān)鍵。
缺點(diǎn):
①每寫一個(gè)servlet在web.xml中都要做相應(yīng)的配置浆熔。如果有多很servlet本辐,會(huì)導(dǎo)致web.xml內(nèi)容過于繁多。
②這樣的結(jié)構(gòu)不利于分組開發(fā)医增。
③在servlet中慎皱,doGet方法和doPost方法有HttpServletRequest和HttpServletResponse參數(shù)。這兩個(gè)參數(shù)與容器相關(guān)叶骨,如果想在servlet中作單元測(cè)試茫多,則必須初始化這兩個(gè)參數(shù)。
④如果一個(gè)servlet中有很多個(gè)方法忽刽,則必須采用傳遞參數(shù)的形式天揖,分解到每一個(gè)方法中。
3.相互聯(lián)系:HTTP請(qǐng)求
request 無狀態(tài)請(qǐng)求跪帝,是瀏覽器端請(qǐng)求服務(wù)器端今膊。
請(qǐng)求方法:
POST:瀏覽器端響服務(wù)器端提交數(shù)據(jù),可以攜帶請(qǐng)求參數(shù)歉甚,參數(shù)不受限制万细。
GET:瀏覽器端請(qǐng)求服務(wù)器的數(shù)據(jù)返回:頁面,可以攜帶請(qǐng)求參數(shù)纸泄,但是參數(shù)的長(zhǎng)度受限赖钞。
注:請(qǐng)求參數(shù)是明文形式,一般不會(huì)用get請(qǐng)求傳遞敏感數(shù)據(jù)聘裁。
request.getParameter("paramName")
request.setAttribute() request.getAttribute()
用于request對(duì)象在servlet雪营、jsp之間流轉(zhuǎn)時(shí)進(jìn)行參數(shù)的存儲(chǔ)和獲取操作。
forward:進(jìn)行流轉(zhuǎn)衡便,此時(shí)不會(huì)響應(yīng)到瀏覽器献起,只在服務(wù)器中流轉(zhuǎn)。
response 被動(dòng)響應(yīng)镣陕,是服務(wù)器端響應(yīng)瀏覽器端谴餐。
sendRedirect(url) 重定向,告訴瀏覽器重新訪問一個(gè)網(wǎng)址呆抑。
PrintWriter writer = response.getWriter();
用于向?yàn)g覽器端寫入文本岂嗓。
cookie 保存在瀏覽器中,每一次request請(qǐng)求會(huì)攜帶cookie鹊碍。
Cookie[] cookies = request.getCookies();
session 保存在服務(wù)器中的會(huì)話信息厌殉,每個(gè)用戶的每個(gè)會(huì)話會(huì)創(chuàng)建一個(gè)session文件食绿。
識(shí)別方法是sessionid,sessionid由COOKIE攜帶。
Session session = request.getSession(); // 如果session不存在則會(huì)創(chuàng)建一個(gè)
Tomcat:默認(rèn)端口:8080
Tomcat的作用(與Apache對(duì)比):
①Tomcat是一個(gè)免費(fèi)的的Web 應(yīng)用服務(wù)器公罕,屬于輕量級(jí)應(yīng)用服務(wù)器器紧,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選楼眷。
②當(dāng)在一臺(tái)機(jī)器上配置好Apache服務(wù)器铲汪,可利用它響應(yīng)HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)應(yīng)用)頁面的訪問請(qǐng)求。實(shí)際上Tomcat部分是Apache服務(wù)器的擴(kuò)展罐柳,但它是獨(dú)立運(yùn)行的桥状,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的硝清。
③訣竅是辅斟,當(dāng)配置正確時(shí),Apache為HTML頁面服務(wù)芦拿,而Tomcat 實(shí)際上運(yùn)行JSP 頁面和Servlet士飒。
④另外,Tomcat和IIS等Web服務(wù)器一樣蔗崎,具有處理HTML頁面的功能酵幕,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式缓苛。
⑤不過芳撒,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。
JSP試題及答案:https://wenku.baidu.com/view/463d5e7131b765ce05081431.html
下載地址:https://share.weiyun.com/nFI35saJ