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