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