1.JSP注釋
1./........./ Java代碼注釋顶掉,頁面不顯示草娜,客戶端不可見
2<!-- ..... --> HTML注釋痒筒,頁面不顯示宰闰,但是會發(fā)送到客戶端
3.<%-- ..... --%> JSP注釋,頁面不顯示簿透,也不會發(fā)送到客戶端
2.JSP的腳本scriptlet
1.<%=...%>表示在頁面上打印數(shù)據(jù)
2.<%!...%>聲明移袍,全局變量
3.<%....%>局部變量,java語句
3.JSP的四個域?qū)ο?/strong>
1.pageContext:當(dāng)前頁面內(nèi)有效
2.request:當(dāng)前請求內(nèi)有效
3.session:當(dāng)前的會話內(nèi)有效(瀏覽器不關(guān)閉一直有效)
4.application:當(dāng)前服務(wù)器生命周期內(nèi)有效(項目不重啟一直有效)
4.JSP的@指令
1.page:contentType 設(shè)置頁面的編碼和格式
pageEncoding 設(shè)置頁面的編碼
import 引包
errorPage 當(dāng)前頁面出現(xiàn)錯誤跳轉(zhuǎn)的頁面
isErrorPage 這是一個錯誤頁面
2.include:包含頁面
3.taglib:引入第三方標(biāo)簽庫
5.動態(tài)標(biāo)簽
格式:<jsp: include..... >老充、<jsp:forword .........>
include:用于包含其他文件(同時存在)
forword:用于重定向文件葡盗、頁面跳轉(zhuǎn)(覆蓋)
Param:用于參數(shù)傳遞
useBean:用于調(diào)用JavaBean
setProperty:用于設(shè)置JavaBean的屬性值
getProPerty:用于訪問Bean的屬性
plugin:用于Applet的嵌入操作元素
6.九大內(nèi)置對象
*request 封裝用戶提交的消息
*response 向客戶端發(fā)送數(shù)據(jù)
*session 用來保存每一個用戶的信息
*application 表示所有用戶的共享信息
out 頁面輸出信息
page jsp頁面本身
*pageContext JSP的頁面容器
config 服務(wù)器配置信息,可以取得初始化參數(shù)
exception 顯示異常信息
7.修改代碼
一般而言啡浊,修改web.xml觅够、配置文件胶背、java需要重新啟動tomcat服務(wù)。
修改jsp喘先、html钳吟、css、js不需要重啟服務(wù)
8.內(nèi)置對象中的常用方法
request:
String GetParameter(String name):
根據(jù)請求的字段key窘拯,返回字段值value
String[ ] GetParameter(String name):
根據(jù)請求的字段key红且,返回多個字段值value(checkbox)
void setCharacterEncoding("編碼格式utf-8"):
設(shè)置請求編碼,不設(shè)置則默認(rèn)(tomcat以前默認(rèn)ISO-8859-1涤姊,tomcat8以后改為了utf-8)
getRequestDisPatcher("b.jsp"):請求轉(zhuǎn)發(fā)的方式跳轉(zhuǎn)頁面
getServiceContext():獲取項目的ServletContext對象
response:響應(yīng)對象
提供的方法:
void addCookie(Cookie cookie):服務(wù)端向客戶端增加cookie對象
void sendRedirect(String location) throw IOException:頁面跳轉(zhuǎn)的一種方式
void setContetType(String type):設(shè)置服務(wù)器響應(yīng)的編碼(設(shè)置服務(wù)器的contentType類型)
頁面重定向 response.sendRedirect("success.jsp");屬于跳轉(zhuǎn)頁面直焙,取不到數(shù)據(jù),而且地址會改變砂轻,重定向有兩次響應(yīng)
頁面請求轉(zhuǎn)發(fā)request.getRequestDispatcher("success.jsp").forward(request,response);能夠拿到數(shù)據(jù)蛾狗,而且地址不會變航邢,請求轉(zhuǎn)發(fā)只有一次響應(yīng)
session:(服務(wù)端)
Cookie(客戶端游盲,不是內(nèi)置對象):Cookie是由服務(wù)端生成的到逊,再發(fā)送給客戶端保存领猾。相當(dāng)于本地緩存应又。
作用:提高服務(wù)端的訪問效率鸯乃,但是安全性較差剖张。
服務(wù)端準(zhǔn)備Cookie:
response.addCookie(Cookie cookie)
頁面跳轉(zhuǎn)(轉(zhuǎn)發(fā)派阱、重定向)
客戶端獲取Cookie:
request.getCookie();
服務(wù)器增加Cookie:response對象诬留;
客戶端獲取對象:request對象
不能直接獲取一個單獨的對象,只能一次性將全部的cookie拿到
session機制:
客戶端第一次請求服務(wù)器時贫母,服務(wù)端會產(chǎn)生一個人session對象(用于保存該客戶的信息);
并且每個session對象文兑,都會有一個唯一的sessionId(用于區(qū)分其他session)
服務(wù)端又會產(chǎn)生一個cookie,并且該cookie的name=JSESSIONID腺劣,value=服務(wù)端sessionId的值绿贞;
然后服務(wù)端會在響應(yīng)客戶端的同時將該cookie發(fā)送給客戶端,至此橘原,客戶端就有了一個人cookie(JSESSIONID);
因此籍铁,客戶端的cookie就可以和服務(wù)端的session一一對應(yīng)(JSESSIONID---sessionID)
cookie保存在客戶端,session保存在服務(wù)端
session方法:
String getId():獲取sessionId
boolean inNew():判斷是否是新用戶(第一次訪問)
void invalidate():使session失效(退出登錄趾断、注銷)
void setMaxInactiveInterval(秒 ):設(shè)置最大有效非活動時間
appliation 全局對象
String getContextPath():虛擬路徑
String getRealPath(Strring name):絕對路徑
9.四大域?qū)ο?/strong>
小-->大
pageCOntext:當(dāng)前頁面有效(頁面跳轉(zhuǎn)后無效)
request:同一次請求有效拒名;其他請求無效(請求轉(zhuǎn)發(fā)后有效;重定向后無效)
session:同一次會話有效(無論怎么跳轉(zhuǎn)都有效芋酌;關(guān)閉/切換瀏覽器后無效增显;)
appliation:全局變量;整個項目運行期間都有效(切換瀏覽器任然有效)隔嫡;關(guān)閉服務(wù)甸怕、運行其他項目無效
以上4個對象共有的方法:
Object getAttribute(String name):根據(jù)屬性名甘穿,獲取屬性值
void setAttribute(String name,Object obj):設(shè)置屬性值(新建,修改)
setAttribute("a","b");
如果a對象之前不存在梢杭,則新建一個a對象温兼;如果a之前已經(jīng)存在,則將a的值改為b
void removeAttribute(String name):根據(jù)屬性名武契。刪除對象
多個項目共享募判、重啟后任然有效:JNDI技術(shù)
以上的4個范圍對象,通過setAttribute()復(fù)制咒唆,通過getAttribute()取值届垫;
以上范圍對象。盡量使用最小的范圍全释。因為對象的范圍越大装处,造成的性能損耗越多。