標籤:錯誤 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原理,組成