JSP基礎(chǔ)

Jsp基礎(chǔ)

1)Jsp的執(zhí)行過程 :

  • tomcat服務(wù)器完成 :
    • jsp文件->翻譯成java文件->編譯成class字節(jié)碼文件-> 構(gòu)造類對象-> 調(diào)用方法

2)Jsp語法

  • jsp表達式: <%=變量或表達式%> 向瀏覽器輸出變量或表達式計算的結(jié)果
  • jsp腳本: <% java代碼 %> 執(zhí)行java代碼 原理:翻譯到_jspService()方法中
  • jsp聲明: <%! 變量或方法 %> 聲明jsp的成員變量或成員方法
  • jsp注釋: <%!-- jsp注釋 --%> 用于注釋jsp代碼, 不會翻譯到j(luò)ava文件中, 也不會執(zhí)行
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>Jsp語法</title>  
  </head>

  <body>
    <!-- jsp表達式  -->
    <%
        //變量
        String name = "eric";
        int a = 10;
        int b =20;
     %>
    <%=name %>  
    <br/>
    <%=(a-b) %>  
    <hr/>
    <!-- jsp腳本  -->
    <%
        //生成隨機數(shù)
        Random ran = new Random();
        float num = ran.nextFloat();
     %>
     隨機小數(shù):<%=num %>
     <hr/>
     <!-- 穿插html代碼 -->
     <%
        for(int i=1;i<=6;i++){  
      %>
        <h<%=i %>>標題<%=i %></h<%=i %>>
     <%
      }
      %>
      <hr/>
      <!-- 練習(xí): 使用腳本和html代碼顯示99乘法表 -->
     <%
        for(int i=1;i<=9;i++){//行
            for(int j=1;j<=i;j++){//公式
     %>         
            <%=i %> x <%=j %>=<%=(i*j) %> 
        <%          
            }
        %>
           <br/>
        <%  
        }
      %>
      <%
        String age = "20";
        
        /* 腳本中不能聲明方法
        public String getAge(){
            return age;
        }
        */
       %>
      
      
      <!-- jsp聲明 -->
      <%!
       //變量
        String name = "jacky";
        
        public String getName(){
            return name;
        }
        
        /*jsp聲明中不能重復(fù)定義翻譯好的一些方法
        public void _jspInit(){
        
        }
        */
       %>
       <!-- html注釋 -->
      <%-- <jsp:forward page="/01.hello.jsp"></jsp:forward> --%>
       <%-- jsp注釋 --%>
       
  </body>
</html>

3)jsp的三大指令

  1. include指令 : 用于包含其他頁面 (原理: 先合并再翻譯, 叫靜態(tài)包含)
  <%@include file="common/header.jsp"%>
  1. page指令 : 告訴tomcat服務(wù)器如何把jsp文件翻譯成java文件
- language : 翻譯的動態(tài)語言
- import : 類導(dǎo)入
- jsp文件編碼問題:
   1. pageEncoding: 告訴tomcat服務(wù)器使用什么編碼翻譯jsp文件(jsp->java文件)
   2. contentType: tomcat服務(wù)器發(fā)送給瀏覽器的數(shù)據(jù)編碼(tomcat服務(wù)器->瀏覽器)
<%@ page 
              language="java" 
              import="java.util.*,java.text.*" 
              pageEncoding="utf-8"
    %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
            <head> 
                <title>page指令</title>  
            </head>
            <body>
                <%
                    new Date();
                    new SimpleDateFormat();
                %>
                老王
            </body>
</html>
- 異常錯誤相關(guān)的:
   1. errorPage:  指定當前jsp頁面的錯誤處理頁面
   2. isErorrPage:  指定當前頁面是否為錯誤處理頁面育拨。false->不是錯誤處理頁面,則不能使用exception內(nèi)置對象; true->錯誤處理頁面, 可以使用exception內(nèi)置對象
   - 配置全局的錯誤處理頁面 : 
<!-- 全局錯誤處理頁面配置 -->
  <error-page>
    <error-code>500</error-code>
    <location>/common/500.jsp</location>
  </error-page>
  <error-page>
    <error-code>404</error-code>
    <location>/common/404.html</location>
  </error-page>
- session : 是否開啟session功能。false->不能用session內(nèi)置對象;true->可以使用session內(nèi)置對象
- buffer : jsp頁面的緩存區(qū)大小
- isELIgnore : 是否忽略EL表達式
  1. taglib指令

Jsp最佳實踐

  • Servlet技術(shù): 開發(fā)動態(tài)資源劲适。是一個java類,最擅長寫java代碼
  • jsp技術(shù): 開發(fā)動態(tài)資源。通過java代碼最擅長輸出html代碼景鼠。
  • 在web項目中涉及到邏輯:
    1)接收參數(shù) servlet做
    2)處理業(yè)務(wù)邏輯,返回結(jié)果 servlet做
    3)顯示數(shù)據(jù)到瀏覽器 jsp做
    4)跳轉(zhuǎn)到其他頁面 servlet做
  • servlet+jsp模式 : servlet的數(shù)據(jù)->jsp頁面, 使用域?qū)ο?共享數(shù)據(jù)
    • servlet: 接收參數(shù); 處理業(yè)務(wù)邏輯; 把結(jié)果保存到域?qū)ο笾? 跳轉(zhuǎn)到j(luò)sp頁面
    • Jsp : 從域?qū)ο笕〕鰯?shù)據(jù), 把數(shù)據(jù)顯示到瀏覽器
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末一忱,一起剝皮案震驚了整個濱河市莲蜘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌帘营,老刑警劉巖票渠,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異芬迄,居然都是意外死亡问顷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門禀梳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杜窄,“玉大人,你說我怎么就攤上這事算途∪” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵嘴瓤,是天一觀的道長扫外。 經(jīng)常有香客問我,道長廓脆,這世上最難降的妖魔是什么筛谚? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮停忿,結(jié)果婚禮上驾讲,老公的妹妹穿的比我還像新娘。我一直安慰自己席赂,他們只是感情好吮铭,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著颅停,像睡著了一般沐兵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上便监,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天扎谎,我揣著相機與錄音碳想,去河邊找鬼。 笑死毁靶,一個胖子當著我的面吹牛胧奔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播预吆,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼龙填,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拐叉?” 一聲冷哼從身側(cè)響起岩遗,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凤瘦,沒想到半個月后宿礁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡蔬芥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年梆靖,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笔诵。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡返吻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乎婿,到底是詐尸還是另有隱情测僵,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布谢翎,位于F島的核電站捍靠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏岳服。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一希俩、第九天 我趴在偏房一處隱蔽的房頂上張望吊宋。 院中可真熱鬧,春花似錦颜武、人聲如沸璃搜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽这吻。三九已至,卻和暖如春篙议,著一層夾襖步出監(jiān)牢的瞬間唾糯,已是汗流浹背怠硼。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留移怯,地道東北人香璃。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像舟误,于是被迫代替她去往敵國和親葡秒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容