隨筆-7  評論-24  文章-102  trackbacks-0

          以下文字皆是我閱讀《JSP2.0 技術手冊》1-7 章的心得&筆記,此書做為 JSP 入門參考手冊,值得推薦。


          1、JSP 的執行過程(1)客戶端發出 Request(請求);
          (2)JSP 容器將 .jsp 頁面轉譯成 Servlet 的 .java 源碼;
          (3)將產生的 Sevlet 源碼進行編譯,并加載的內存執行;
          (4)把結果 Response (響應)至客戶端。

          ps.更詳細的說明可以參考 IBM dW 社區的文章:Scott Johnson:JavaServer Pages 新手入門
          里面詳細的說明了 JSP 容器在處理階段(轉換和請求)實踐細節。

           

          2、JSP 語法

          JSP 頁具有元素和模板數據。
                元素是 JSP 容器已知的元素類型的實例。
                其他的都是模板數據,即所有 JSP 轉換器不知道的內容。

                HTML 是模板文本;JSP 技術并不知道如何解析或驗證 HTML 標記(如 codegen.jsp 中的 <html><head><title>)。這意味著可以將 HTML 嵌入到 JSP 頁,會在頁執行時直接將此內容發送到瀏覽器。

          元素 有四種類型:Directive ELements(指令元素)、Scripting ELements(腳本元素)、Action ELements(動作元素)和 EL表達式。


           

          3、指令元素        指令(Directives)主要用來提供整個 JSP 網頁相關的信息,并且用來設定 JSP 網頁的相關屬性,例如:網頁的編碼方式、語法、信息等。
                  <%@   directive   attribute1="value"    attribute2="value"   %>

          4 attribute指令 
          5 tag指令 
          6 variable指令 
          1 page指令 
          2 include指令
          3 taglib指令


            

          4、腳本元素        JSP 中的腳本元素包括聲明、scriptlet 和表達式,內放置的是 Java 代碼。

          聲明語法為 <%!... %>
                  ps.使用聲明將不加修改地放入 _codegen.java 中的頁實現類的類級別,而不是在服務方法內,即表示:若同時 n個用戶在執行此 JSP 網頁時,將會共享變量(類實例變量)。這樣當 JSP 在多用戶環境中執行時,一個特別重要的變量被一個用戶請求的線程更改了,將會出錯,這是非常危險的。(編譯為 Servlet 的時候將作為類的公共字段

          scriptlet 語法為 <% ...%>
                  ps.在 JSP 中嵌入 Java 是需要此類括號來讓 Java 代碼保持有效和完整。當 JSP 包含數百或數千行 HTML、JSP語法 和 JSP 腳本混合代碼時候,將使得 JSP 難以閱讀和調試。

          表達式語法為 <%= ... %>

                  綜上所述,建議不在 JSP 內使用 Java 代碼,改用 JSTL+EL 代替。

          附加:jspInit() 與 jspDestroy()



           

          5、動作元素http://chain99081.blog.163.com/blog/static/45898482008451023885/ 
                  動作元素在請求處理階段起作用。JSP 的動作元素是使用XML 語法寫成的,有以下兩種格式:
                  <prefix:tag attribute=value attribute-list…/>
                 或者<prefix:tag attribute=value attribute-list…</prefix:tag>
          常用動作元素


           


          6、EL 表達式Type text here...



          7、JSP 內置對象     http://riman.blogdriver.com/riman/1011608.html

          內置對象是不需要聲明,直接可以在JSP中使用的對象,JSP有以下幾種內置對象:

          JSP內置對象       Servlet子類                                                作用域

          request                javax.servlet.http.HttpServletRequest          Request
          response             javax.servlet.http.HttpServletResponse       Page
          session               javax.servlet.http.HttpSession                      Session            request.getSession().setAttribute("user", user)
          application          javax.servlet.ServletContext                         Application        servlet.getServletContext().getAttribute("userList")
          out                    javax.servlet.jsp.JSPWrite                            Page
          pageContext       javax.servlet.jsp.PageContext                      Page
          config               javax.servlet.ServletConfig                         Page
          page                  java.lang.Object                                          Page
          exception           java.lang.Throwable                                     Page



          HttpServletRequest request;
          HttpServletResponse response;
          Cookie[]  cookies = request.getCookies();
          HttpSession session = request.getSession();
          ServletContext context = servlet.getServletContext(); 
          PrintWrite out = response.getWriter();


          request:它包含了有關瀏覽器請求的信息,并且提供了幾個用于獲取cookie, header, 和session數據的有用的方法。
          response:提供了幾個用于設置送回瀏覽器的響應的方法(如cookies,頭信息等)
          out:提供了幾個方法使你能用于向瀏覽器回送輸出結果。
                      PrintWriter pw = response.getWriter();
                      pw.print("<script type='text/javascript'>alert('成功添加一個管理員。');history.go(-1);</script>");
                      pw.flush();
                      pw.close();

                       //獲得jsp頁面的輸入流
                      JspWrite out=pageContext.getOut();
                      out.println("<b>HelloWorld!</b>");

          pageContext:它是用于方便存取各種范圍的名字空間、servlet相關的對象的API,并且包裝了通用的servlet相關功能的方法。
          session:可以存貯用戶的狀態信息
          application:有助于查找有關servlet引擎和servlet環境的信息
          config:該對象用于存取servlet實例的初始化參數。
          page:表示從該頁面產生的一個servlet實例。

          Servlet API中的幾個對象
          request,response,session,application,out對象的常用調用的函數
          posted on 2008-08-09 10:12 黃小二 閱讀(235) 評論(0)  編輯  收藏 所屬分類: J2EE
          主站蜘蛛池模板: 区。| 田阳县| 铜鼓县| 翁牛特旗| 响水县| 景东| 蓬溪县| 兰坪| 呼伦贝尔市| 静安区| 西昌市| 文成县| 兖州市| 四川省| 桃园市| 道真| 洛阳市| 襄樊市| 深圳市| 沁阳市| 双峰县| 龙川县| 张家港市| 宿州市| 海兴县| 赫章县| 铅山县| 囊谦县| 会理县| 文成县| 青神县| 芜湖县| 岑溪市| 赞皇县| 南部县| 普洱| 达拉特旗| 衡阳市| 苗栗市| 清原| 库伦旗|