1. 程式人生 > >JSP(介紹,語法,指令)

JSP(介紹,語法,指令)

r.js err 種類型 編寫 只有一個 標簽庫 size 怎麽 內容

什麽是JSP

  JSP全名為Java Server Pages,java服務器頁面。JSP是一種基於文本的程序,其特點就是HTML和Java代碼共同存在!

JSP的工作原理

其實JSP在第一次被訪問的時候會被編譯為HttpJspPage類(該類是HttpServlet的一個子類)
編譯過程是這樣子的:瀏覽器第一次請求1.jsp時,Tomcat會將1.jsp轉化成1_jsp.java這麽一個類,並將該文件編譯成class文件。編譯完畢後再運行class文件來響應瀏覽器的請求。
以後訪問1.jsp就不再重新編譯jsp文件了,直接調用class文件來響應瀏覽器。當然了,如果Tomcat檢測到JSP頁面改動了的話,會重新編譯的。

  • 既然JSP是一個Servlet,那JSP頁面中的HTML排版標簽是怎麽樣被發送到瀏覽器的?我們來看下上面1_jsp.java的源碼就知道了。原來就是用write()出去的罷了。說到底,JSP就是封裝了Servlet的java程序罷了。
  • JSP頁面的代碼服務器是怎麽執行的?再看回1_jsp.java文件,java代碼就直接在類中的service()中。

JSP比Servlet更方便更簡單的一個重要原因就是:內置了9個對象!內置對象有:out、session、response、request、config、page、application、pageContext、exception

JSP生命周期

  JSP也是Servlet,運行時只有一個實例,JSP初始化和銷毀時也會調用Servlet的init()和destroy()方法。另外,JSP還有自己初始化和銷毀的方法

public void _jspInit() {
_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
}

public void _jspDestroy() { }

JSP的語法

JSP代碼可以分為兩部分:
   模板數據:就是HTML代碼
   元素:JSP頁面中的java代碼、JSP指令、JSP標簽

JSP腳本

JSP的腳本就是JSP頁面中的java代碼,也叫做scriptlet。JSP的腳本必須使用<%%>括起來,不然會被當成是模板數據的!
JSP腳本有三種方式
  <%%>【定義局部變量,編寫語句】---------------<jsp:scriptlet>行為代替
  <%!%>【定義類或方法,但是沒人這樣用!】
  <%=%>(也稱之為表達式輸出)【輸出各種類型的變量,int、double、String、Object等】

JSP註釋

<%--這是JSP註釋--%>
<%--%>

JSP指令

JSP指令用來聲明JSP頁面的相關屬性,例如編碼方式、文檔類型等等
JSP指令的語法
  <%@指令 屬性名="值" %>
    page指令
    page指令常見屬性

      • language="java"
      • extends="package.class"
      • import="{package.class | package.*}, …"
      • session="true | false"
      • buffer="none | 8kb | sizekb"
      • autoFlush="true | false"
      • isThreadSafe="true | false"
      • info="text"
      • errorPage="relative_url"
        • 錯誤跳轉友好頁面,屬於服務器跳轉
        • 可以在web.xml文件中全局設置錯誤頁,只要發生了404錯誤或者空指針異常的錯誤都會跳轉到error.jsp頁面上
        • <error-page>
              <error-code>404</error-code>
              <location>/error.jsp</location>
          </error-page>
          
          <error-page>
              <exception-type>java.lang.NullPointerException</exception-type>
              <location>/error.jsp</location>
          </error-page>
      • isErrorPage="true | false"
        • 錯誤頁面本誤
      • contentType="mimeType ;charset=characterSet " | "text/html ; charset=ISO-8859-1"
        • contentType 不僅僅可以指定以text/html的方式顯示,還可以使用其他的形式顯示出來。在conf/web.xml文件中可以查詢出來
      • pageEncoding="characterSet | ISO-8859-1"
      • isELIgnored="true | false"

  include指令
    include指令是靜態包含。靜態包含的意思就是:把文件的代碼內容都包含進來,再編譯!,看一下jsp的源代碼就知道了!
    <%@include file="head.jsp" %>
  taglib指令
    JSP支持標簽技術,要使用標簽技術就先得聲明標簽庫和標簽前綴。taglib指令就是用來指明JSP頁面內使用標簽庫技術。

JSP(介紹,語法,指令)