JavaWeb(一)JSP原理,組成

來源:互聯網
上載者:User

標籤:錯誤   lang   oct   dtd   提醒   很多   效率   使用   .com   

JSP(Java sever pages):一種用於開發動態web頁面(資源)的技術。

jsp頁面是在伺服器上啟動並執行一個頁面,一個jsp頁面就是一個類。寫jsp就像在寫html,jsp允許在頁面中編寫java代碼,並允許開發人員在頁面中擷取request,response等web常用開發對象,實現與瀏覽器的互動。

JSP原理:

JSP 的執行過程:

(1) 用戶端發出Request (請求);
(2) JSP Container 將JSP 翻譯成Servlet 的原始碼;
(3) 將產生的Servlet 的原始碼經過編譯後,載入到記憶體執行;
(4) 把結果Response (響應)發送至用戶端。

JSP和Servlet的執行效率相差不大,只是第一次執行JSP頁面時需要進行編譯。
一般人都會以為JSP 的執行效能會和Servlet 相差很多,其實執行效能上的差別只在第一次的執行。因為JSP 在執行第一次後,會被編譯成Servlet 的類檔案,即為XXX.class,當再重複調用執行時,就直接執行第一次所產生的Servlet,而不用再重新把JSP編譯成Servlet。因此,除了第一次的編譯會花較久的時間之外,之後JSP 和Servlet 的執行速度就幾乎相同了。
在執行JSP 網頁時,通常可分為兩個時期:轉譯時期(Translation Time)和請求時期(Request Time) 。

1. JSP檔案先要被伺服器翻譯成Java檔案(Servlet),在tomcat中翻譯後的Java檔案在tomcat下的 work/Catalina /localhost 中相應名字的應用目錄裡。
2. 編譯成Java(Servlet)檔案
3. 運行.class檔案
Tomcat的全域設定檔$CATALINA_HOME/conf/web.xml
在Tomcat下的conf目錄中的web.xml是伺服器全域的設定檔,其中要想關閉列表顯示叫要把
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
修改為true

JSP的組成元素:

1, 指令
page指令

<%@ page ..........%> 

include指令靜態引入,引入其他的網頁,相當於將兩個頁面合成一個。公用一個request對象。

頁面跳轉可以直接在頁面後面加?變數名=值(test.jsp?name=admin) 的方式傳參數,這種靜態包含不可以。
taglib指令---標準標籤庫(JSTL),Taglib指令用於在JSP頁面中匯入標籤庫

errorPage---定義噹噹前頁面出錯時跳轉的頁面--如果當前頁面出錯則跳轉到該頁面,注意,需要在出現錯誤的提醒介面有   isErrorPage="true"

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8" errorPage="error.jsp"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8" isErrorPage="true"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><h1>出現錯誤的提醒頁面</h1><h3><%=exception.getMessage() %></h3></body></html>

2, 運算式
<%=變數名%>

<%=sum %>

3, 指令碼
<% 代碼內容 %>

<%        for(int i=1;i<=5;i++){        sum=sum*i;    }%>

單個指令碼片段的Java語句可以是不完整的,但是整個頁面中組合的Java語句必須是完整的。

4, 聲明
<%! 代碼聲明 %>

可用於定義jsp頁面轉換成servlet程式的靜態代碼塊,成員方法和變數。可以單獨定義在一個聲明中,也可以定義到同一個聲明中。聲明中不能使用九大內建對象。

<%!int sum=1;%>

5, 注釋

JSP注釋:<%-- … --%>,轉化階段消失,只能被開發人員看到

JAVA注釋://、/**/、/***/,編譯階段消失

HTML注釋:<!-- … -->, 不會消失,在頁面中也能看到

6, 一些靜態內容

jsp中html內容稱為模板元素,jsp模板元素定義了網頁基本骨架,即定義了頁面結構和外觀。

JavaWeb(一)JSP原理,組成

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.