1、轉(zhuǎn)發(fā)
1)什么是轉(zhuǎn)發(fā)?
在同一個應(yīng)用的內(nèi)部,一個web組件將未完成的處理轉(zhuǎn)交給另外一個web組件繼續(xù)處理,我們把 這樣一個過程叫轉(zhuǎn)發(fā)。
轉(zhuǎn)發(fā)最常見的一種場合:
servlet獲得數(shù)據(jù)之后,轉(zhuǎn)發(fā)給一個jsp,由該jsp生成相應(yīng)的界面。
2)編程
首先綁訂數(shù)據(jù):
//在request對象上,以name為綁訂名,綁訂obj對象。
request.setAttribute(String name,Object obj);
//依據(jù)綁訂名name獲得綁訂值。如果name對應(yīng)的值不存在,返回null。
Object request.getAttribute(String name);
//解除綁訂
request.removeAttribute(String name);
接下來轉(zhuǎn)發(fā):
//獲得轉(zhuǎn)發(fā)器,url指的是轉(zhuǎn)發(fā)的目的地,一般是一個jsp
RequestDispatcher rd = request.getRequestDispatcher(String url);
//轉(zhuǎn)發(fā)
rd.forward(request,response);
3)轉(zhuǎn)發(fā)需要注意的問題
在轉(zhuǎn)發(fā)之前,不能夠有任何的輸出。在轉(zhuǎn)發(fā)之前,會先將response中緩存的數(shù)據(jù)先清空。
4)轉(zhuǎn)發(fā)的特點
a,轉(zhuǎn)發(fā)的目的地只能是同一個應(yīng)用內(nèi)部的各個組件之間。
b,轉(zhuǎn)發(fā)的各個組件之間,可以共享request、response對象。
2、include指令
<%@include file=''%>
作用是,告訴jsp引擎,在將.jsp文件轉(zhuǎn)換成.java文件時,在指令所在的位置插入某個文件的 內(nèi)容。
3、路徑問題
在使用鏈接、表單提交、重定向、轉(zhuǎn)發(fā)時,如何使用相對路徑與絕對路徑。
1)什么是相對路徑
不以'/'開頭的路徑
2)什么是絕對路徑
以'/'開頭的路徑
3)怎樣寫絕對路徑
鏈接、表單提交、重定向的絕對路徑從應(yīng)用名開始。轉(zhuǎn)發(fā)的絕對路徑從應(yīng)用名之 后開始。寫絕對路徑時,盡量避免直接寫應(yīng)用名,而應(yīng)該通過以下方法獲得。
//獲得 '/appname'。
String request.getContextPath();
練習(xí):
實現(xiàn)注冊與登錄
在注冊頁面當(dāng)中,添加表單驗證代碼(
要求用戶名、真實姓名、密碼必須填寫之后,
才能提交
)。
聯(lián)系客服