pageContext對象提供了訪問其他隱含對象的方法。在pageContext對象中,可以使用下面兩個方法來儲存和擷取屬性:setAttribute(String name,Object value)getAttribute(String name)在pageContext對象中儲存的屬性,只能在當前頁面中擷取。也就是說,pageContext對象具有頁面範圍。papgeContext對象,還可以設定和得到其他範圍對象中儲存的屬性。使用另外兩個方法:setAttribute(String
對於一個Web應用,的發布過程
轉自:http://blog.sina.com.cn/s/blog_5990faac0100dnfx.htmlCookie:伺服器在一個應答首部傳遞給瀏覽器的名稱/值對。瀏覽器儲存的時間由cookie的到期時間屬性來指定。當瀏覽器向某個伺服器發送一個請求時,它會檢查其儲存的cookie,並在請求首部中包含從同一台伺服器上接收到的所有cookie。 Session tracking:在瀏覽器和伺服器之間不直接傳送所有的狀態資訊,而只是傳遞表示符(session
允許在運行時將當前的請求轉寄給一個靜態資源、JSP頁面或者servlet,請求被轉向到的資源必須位於同JSP發送請求相同的上下文環境中。這個動作會終止當前葉密昂的執行,如果頁面輸出使用了緩衝,在轉寄請求前,緩衝區將被清除,如果在轉寄之前緩衝區已經重新整理,將拋出IllegalStateException。如果頁面輸出沒有使用緩衝,而某些輸出已經發送,那麼調用將拋出IllegalStateException。只有一個屬性page。
1. Tomcat 不但支援運行Servlet和JSP,而且還具備了作為商業Java Web應用程式容器的特徵.Tomcat已經成為目前開發企業Java Web應用的最佳選擇之一. 2.Tomcat 結構 Tomcat伺服器由一系列可配置的組件構成,其中核心組件是Catalina Servlet容器,它是所有其它Tomcat組件的頂層容器。Tomcat組件可以在server.xml中配置。XML形式的Tomcat組件之間的關係: <Server>
這個動作用於動態定義一個XML的標籤。在<jsp:element>中可以包含<jsp:attributee>和<jsp:body>。它只有一個屬性name。例如: <jsp:element name="football" /> 執行後產生一個空元素: <football/> <jsp:element name="employee"> <jsp:attribute
在server.xml檔案中的元素分為4類。1.頂層類元素 包括<Server>、<Service>,他們位於整個設定檔的頂層。2.連接器類元素 代表了介於客戶與服務之間的通訊介面,負責將客戶的請求發送給伺服器,並將伺服器的響應結果傳送給客戶。3.容器類元素 代表處理客戶請求並產生響應結果的組件。有3中容器類元素,他們是Engine、Host和Context。4.嵌套類元素 代表了可以加入到容器中的組件。 一些基本的Tomcat元素:
Tomcat 的目錄結構 需要注意的地方:lib目錄是存放jar檔案的,其中:server/lib : 目錄中的jar檔案只可被Tomcat伺服器訪問shared/lib : 可被所有Web應用訪問common/lib :
<jsp:include> 用於在當前頁面中包含靜態和動態資源,一旦被包含的頁面執行完畢,請求處理將在調用頁面中繼續進行.被包含的頁面不能改變響應的狀態碼或者設定前序,這防止了對類似setCookie()這樣的方法的調用,任何對這些方法的調用都將被忽略.這個約束和在javax.servlet.Request的Dispatcher 類的include()方法上所施加的約束是一樣的.<jsp:include >有兩個屬性page和flush:page:
再看下面文字時,首先我們要將上面的圖搞清楚,這樣在編碼的時候就會根據不同的需求去繼承不同的類了Servlet
如果你使用的是符合JSP 1.2/Servlet 2.3 的容器,比如Tomcat 4.x 或者更高,你就可以在JSP頁面的taglib指令中使用絕對路徑而不必在web.xml中指定taglib元素。 對於早於Servlet 2.3 規範的情況,你仍然需要在web.xml中聲明所有你所使用的JSP 標籤。下面摘自web.xml部署描述符中的代碼片斷展示了用於Struts應用的典型taglib聲明: <!-- Struts
JSP一般的運行方式為:當伺服器啟動後,當Web瀏覽器端發送過來一個頁面請求時,Web伺服器先判斷是否是JSP頁面請求。如果該頁面只是一般的HTML/XML頁面請求,則直接將HTML/XML頁面代碼傳給Web瀏覽器端。如果請求的頁面是JSP頁面,則由JSP引擎檢查該JSP頁面,如果該頁面是第一次被請求、或不是第一次被請求但已被修改,則JSP引擎將此JSP頁面代碼轉換成Servlet代碼,然後JSP引擎調用伺服器端的Java編譯器javac.exe對Servlet代碼進行編譯,把它變成位元組碼
(1)前言:解決web程式的國際化問題,必須在任何地方使用UTF-8對字元進行編碼。(包括:資料庫設定為:UTF-8,web頁面也要設定為:UTF-8)這樣做的好處在於可以解決在web上不止中文字元編碼問題,所有的字元編碼都統一使用UTF-8,實現了語言的國際化。同時在儲存資料到資料庫時候也省去了編碼轉換的問題。在JSP或JSF應用中使用到Servlet,我們通過使用Servlet過濾器進行編碼轉換,也就是制定編碼轉換為UFT-8。(2)Servlet和JSP過濾器Filter簡介:servle
<jsp:forward>從一個JSP檔案傳遞request資訊到另外一個JSP檔案,<jsp:forward>後面的部分將不會被執行。可以使用 <jsp:param> 傳遞參數。<jsp:include>將包含的檔案放在JSP中和其他一起執行。 在JSP中,跳轉頁面有兩種方式:1.forward跳轉:<jsp:forward page="跳轉頁面地址"
幾點小結:(1)使用form表單提交資料,提交後的資料將會在另一個jsp頁面進行處理。也可以實現不跳轉,同時使用ajax進行局部更新,這裡暫不進行說明。(2)提交表單前需要進行資料驗證時,響應在form中onsubmit事件,資料合法則返回true,然後實現頁面跳轉;資料不合要求則返回false,頁面便不會跳轉。(3)要考慮中文參數的傳遞。由於瀏覽器,web伺服器,資料庫等的預設編碼不一致,很容易出現中文亂碼(參考:解決jsp中文亂碼,修改mysql編碼)。以下是一個簡單的表單提交與表單驗證的例
JSP技術在Wap中的應用的基本原則: 1.WML的標籤和語句均可直接寫在JSP程式中。 2.如果想使用JSP來處理WML的標籤和語句,則需要使用“<%”和“%>”引起來,格式為: <% ......(JSP編寫的WML語句行); %>例如,以下幾行語句就是利用JSP的out.println來輸出WML的標籤和語句: <% out.println("<p>
<?xml version="1.0"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd" version="2.4"> <description>
這裡淺談JSP與Servlet,不涉及struts、hibernate、Spring,EJB等架構。 說到JSP和servlet,都知道是java的web技術,這兩種技術都能用來產生HTML頁面,也能被java虛擬機器解析。簡單的說,JSP就是嵌入了JAVA代碼的HTML,Servlet是嵌入了HTML代碼的JAVA,或者這樣說才更形象。 什麼時候該用JSP?什麼時候該用Servlet?好像沒有一個明確的界限,相對來說,JSP做顯示更優雅,Servlet做邏輯更容易。順便說一下,JSP是被編譯成
產生有4個隨機數字和雜亂背景的圖片,數字和背景顏色會改變,伺服器端重新整理(用history.go(-1)也會變)原型參考ALIBABA http://china.alibaba.com/member/showimage產生驗證碼圖片的檔案-----image.jsp<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"
jsp頁面元素:----靜態部分-----HTML靜態文本----指令-----------以“<%@”開始,以“%>”結束----運算式--------<%=java運算式%>----指令碼-----------<%java代碼%>----聲明-----------<%!函數或方法%>----動作-----------以“<jsp:動作名”開始,以“<jsp:動作名>”結束----注釋-----------<!--注釋,用