javascript
jsp需要多少java基础_Java基础——JSP(一)
注意:訪(fǎng)問(wèn)JSP的過(guò)程
如果是第一次訪(fǎng)問(wèn)服務(wù)器,則翻譯成一個(gè)對(duì)應(yīng)的java文件(Servlet)。然后,再被編成 .class 文件并加載到內(nèi)存中。
如果是以后訪(fǎng)問(wèn),則直接調(diào)用內(nèi)存中的jsp實(shí)例,所以第一次訪(fǎng)問(wèn)慢,以后訪(fǎng)問(wèn)會(huì)更加快。
四、3種JSP注釋
1.
//this is
/*this
is*/
%>
2.
這是被注起來(lái)的內(nèi)容
這是注起來(lái)的
--%>
3.
//這里的內(nèi)容會(huì)發(fā)送到客戶(hù)端,但瀏覽器不會(huì)顯示
五、JSP腳本元素(3種)
1.
1) 代碼段 它要嚴(yán)格遵守java語(yǔ)言規(guī)范,需要導(dǎo)包的要導(dǎo)包 和 之間的java代碼是可以互相訪(fǎng)問(wèn)的,相當(dāng)于寫(xiě)在一個(gè) 里
2.
2) 聲明 //注意
}%>
3.
3) 表達(dá)式 //注意
例子: //和下面的寫(xiě)法等價(jià)
附:myeclipse 生成的jsp頁(yè)面,解說(shuō):
(在實(shí)際應(yīng)用中,不需要的我們可以刪除它)
//解說(shuō):page指令,import用來(lái)導(dǎo)包的,pageEncoding指當(dāng)前頁(yè)面編碼方式
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";//上下對(duì)齊解說(shuō)://http//localhost//8080//shop-admin//上面最后生成的結(jié)果:->http://localhost:8080/shop-admin/
%>
//解說(shuō):言檔類(lèi)型聲明
//解說(shuō):
My JSP 'test.jsp' starting page//解說(shuō):不緩存
//解說(shuō):不緩存
//解說(shuō):不緩存
//解說(shuō):給網(wǎng)絡(luò)機(jī)器人用來(lái)搜索的關(guān)鍵字
六、JSP版本的計(jì)算器(代碼示例)
//接收參數(shù)
String num1 =request.getParameter("num1");
String num2=request.getParameter("num2");
String flag=request.getParameter("flag");int n_num1=0;int n_num2=0;int result=0;if(num1!=null&&num2!=null&&flag!=null){//計(jì)算
n_num1=Integer.parseInt(num1);
n_num2=Integer.parseInt(num2);if(flag.equals("+")){
result=n_num1+n_num2;
}else if(flag.equals("-")){
result=n_num1-n_num2;
}else if(flag.equals("*")){
result=n_num1*n_num2;
}else if(flag.equals("/")){
result=n_num1/n_num2;
}
out.print("
計(jì)算結(jié)果是 "+result+"
");}//輸出結(jié)果
%>
請(qǐng)輸入第一個(gè)數(shù):>+
>-
>*
>/
請(qǐng)輸入第二個(gè)數(shù):
七、MVC模式
M? ->mode 模型層 -> javaBeen? (比如 UserDao,UserInfo)
V? ->view 視圖層? -> html , jsp
C? ->controller 控制層? ->由Servlet擔(dān)當(dāng)
八、JSP指令
指令是為JSP引擎而設(shè)計(jì)的,它不直接產(chǎn)生任何輸出,只是告訴引擎如何處理JSP頁(yè)中的其余部分。指令必須嵌套在 中,其本語(yǔ)法如下
,其中屬性名是大小寫(xiě)敏感的
//例子
* JSP中的指令一共有三種
-- page?? //
-- include?? // 用來(lái)包含別的頁(yè)面
-- tablib ? // ? 用來(lái)指定標(biāo)簽庫(kù)
* page 指令
-- Page 用來(lái)定義jsp頁(yè)面的各屬性,幾乎所有的頁(yè)面都會(huì)出現(xiàn)page屬性
-- 無(wú)論page屬性出現(xiàn)在什么位置,它的作用都是整個(gè)jsp頁(yè)面
-- 一個(gè)頁(yè)面可以包含多任意數(shù)量的page指令
* page 指令的屬性
--language :jsp頁(yè)面采用的語(yǔ)言,默認(rèn)的是”java”
--contentType: 用于設(shè)置響應(yīng)正文的 mime 類(lèi)型(即指定Content-Type響應(yīng)頭字段的值),和說(shuō)明
JSP文件中的文本內(nèi)容的字符集編碼. content-Type? 默認(rèn)的mime 類(lèi)型是 text/html,字符集是”iso8859-1”
JSP引擎會(huì)根據(jù)page指令的contentType 屬性生成相應(yīng)調(diào)用ServletRresponse.setContentType 方法的語(yǔ)句
--extends:在當(dāng)前的jsp頁(yè)面中所用到的類(lèi)的基類(lèi)。(一般不使用)
--import:當(dāng)前jsp頁(yè)面所用到的java類(lèi)。
--session:當(dāng)前的jsp頁(yè)面是否使用會(huì)話(huà)。默認(rèn)的是true.(不要修改它)
如果將其設(shè)為false,則JSP翻譯成的Servlet將不自動(dòng)預(yù)先創(chuàng)建好Session隱式對(duì)象
--buffer:指定了out 變量所使用的緩存的大小。默認(rèn)的是8K.
--autoFlush :當(dāng)緩沖區(qū)滿(mǎn)的時(shí)候,是否自動(dòng)將值輸出至jsp頁(yè)面。默認(rèn)的是true.
--errorPage:用來(lái)處理已經(jīng)發(fā)生的,但當(dāng)前頁(yè)面沒(méi)有捕獲的異常。例如要求有輸入?yún)?shù),但是沒(méi)有輸入.
它的屬性值必須使用相對(duì)路徑,如果以/開(kāi)頭,表示想對(duì)于當(dāng)前web應(yīng)用程序的根目錄,而不是站點(diǎn)根目錄
--isErrorPage: 設(shè)置當(dāng)前頁(yè)面是否是專(zhuān)門(mén)用于處理其他頁(yè)面未捕異常的頁(yè)面,默認(rèn)值為false
只有明確的將 isErrorPage 設(shè)為true,當(dāng)前頁(yè)面才能用做異常處理,才能拿到exception隱式對(duì)象
==小例子: errorPage 指令 的應(yīng)用
在要捕捉異常的頁(yè)面中:
-- 在異常處理頁(yè)面中
--
--
--pageEncoding :指定jsp源文件中的字符所使用的字符集編碼
pageEncoding 指jsp文件本身的編碼
contentType="text/html;charset=gkb" 這里的charset 指的是服務(wù)器發(fā)送給客戶(hù)端時(shí)的內(nèi)容編碼
注意:JSP要經(jīng)過(guò)兩次編碼
==第一階段,將jsp編譯成 .java 它會(huì)根據(jù)pageEncoding來(lái)讀取jsp 結(jié)果是由指定的編碼方案翻譯成統(tǒng)一的UTF-8 的java源碼(即.java)
如果pageEncoding設(shè)定錯(cuò)的話(huà),將會(huì)出現(xiàn)中文亂碼
==第二階段 就是由java源碼到j(luò)ava的字節(jié)碼的編譯,不管JSP文件在編寫(xiě)的時(shí)候用的是什么編碼,最后這個(gè)階段的結(jié)果全是UTF-8 java源碼
* include 指令
include 指令? 是靜態(tài)導(dǎo)入
用于通知JSP引警在翻譯當(dāng)前JSP頁(yè)面時(shí)將其他文件中的內(nèi)容合并進(jìn)當(dāng)前JSP頁(yè)面轉(zhuǎn)換成的Servlet源文件中,這種在源文件級(jí)別進(jìn)行的引入稱(chēng)為靜態(tài)引入,當(dāng)前JSP頁(yè)面和靜態(tài)引入的頁(yè)面緊密結(jié)合成一個(gè)Servlet。
1 被引入的文件必須尊循JSP語(yǔ)法,可以包含靜態(tài)HTML,JSP腳本元素,JSP指令 和 jsp行為元素等普通JSP頁(yè)面所具有的一切內(nèi)容
2 被引入的文件可以使用任意擴(kuò)展名,(就是叫.html也行), 為了見(jiàn)名知義,jsp規(guī)范建議使用.jspf (jsp fragments) 作為靜態(tài)引入文件的擴(kuò)展名
3 在將JSP文件翻譯成Servlet 源文件時(shí),JSP引擎將合并被引入的文件與當(dāng)前JSP頁(yè)面中的指令元素,所以,除了pageEncoding? 和 import ,page指令的其他屬性不能在這兩個(gè)頁(yè)面中有不同的設(shè)置
4 除了指令元素外,要引入的文件中的所有其他元素都被轉(zhuǎn)換成相應(yīng)的java代碼,然后插入進(jìn)當(dāng)前
JSP 頁(yè)面所翻譯成的Servlet文件中,插入的位置和 include 指令 在當(dāng)前jsp 頁(yè)面中的位置保持一致
5 兩者是在 JSP引擎翻譯成Servlet的過(guò)程中進(jìn)行合并的,而不是先合并成源文件再翻譯
6 file 屬性設(shè)置的路徑必須是相對(duì)路徑,如果以 / 開(kāi)頭,指的是相對(duì)于當(dāng)前web應(yīng)用程序的根目錄,而不是 站點(diǎn)根目錄
7 出現(xiàn)在一個(gè) JSP 頁(yè)面中的 include 指令的數(shù)量不受限制
| bbb | |
| 數(shù)據(jù) |
* taglib 指令
通知 JSP 容器,頁(yè)面依賴(lài)于自定義標(biāo)記庫(kù)
總結(jié)
以上是生活随笔為你收集整理的jsp需要多少java基础_Java基础——JSP(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何批量删除文件名称中相同的部分批量删掉
- 下一篇: json.net java_java解析