国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

轉(zhuǎn)發(fā),重定向以及區(qū)別和簡單的session對象

2019-11-15 00:05:42
字體:
供稿:網(wǎng)友
轉(zhuǎn)發(fā),重定向以及區(qū)別和簡單的session對象

1.轉(zhuǎn)發(fā)作用:在多個頁面交互過程中實現(xiàn)請求數(shù)據(jù)的共享. 過程:Web服務(wù)器內(nèi)部將一個request請求的處理權(quán)交給另外一個資源,屬于同一個訪問請求和響應(yīng)過程,所以request對象的信息不會丟失.

2.重定向 重定向就是通過各種方法將各種網(wǎng)絡(luò)請求重新定個方向轉(zhuǎn)到其他位置(如:網(wǎng)頁重定向,域名重定向,路由選擇的變化也是對數(shù)據(jù)報文經(jīng)有路由的一種重定向.) 重定向使用的是response對象的sendRedirect()方法. 過程:Web服務(wù)器向瀏覽器返回的一個響應(yīng),瀏覽器接受此響應(yīng)后再發(fā)送一個新的http請求到服務(wù)器,這屬于兩次不同的請求,則上一次請求的request信息將丟失.

例:登錄頁面Login:<body>

<form name="form" method="post" action="control.jsp">

用戶名:<input type="text" name="username">

密碼:<input type="passWord" name="pwd">

<input type="submit" value="登錄">

</form>

</body>

welcome 頁面:<html>

<head><title>歡迎頁面</title></head>

<body>歡迎進入本頁面</body>

</html>

control.jsp頁面:<html>

     <head>登錄處理頁面</head>

    <body>

      <%request.setCharacterEncoding("UTF-8");

String name=request.geyParameter("userName");

    String pwd=request.geyParameter("pwd");

if(name.equals("admin")&&pwd.equals("123")){

request.getrequestDispatcher("welcome.jsp").forword(request,reponse);//轉(zhuǎn)發(fā)

}else{

reponse.sendRedirect("Login.jsp");//重定向

}

%> 

</body>

</html>

3.重定向和轉(zhuǎn)發(fā)的區(qū)別:<1>重定向和轉(zhuǎn)發(fā)有一個重要的不同:當使用轉(zhuǎn)發(fā)時,JSP容器將使用一個內(nèi)部的方法來調(diào)用目標頁面,新的頁面繼續(xù)處理同一個請求,而瀏覽器將不會知道這個過程。 與之相反,重定向方式的含義是第一個頁面通知瀏覽器發(fā)送一個新的頁面請求。因為,當你使用重定向時,瀏覽器中所顯示的URL會變成新頁面的URL, 而當使用轉(zhuǎn)發(fā)時,該URL會保持不變。重定向的速度比轉(zhuǎn)發(fā)慢,因為瀏覽器還得發(fā)出一個新的請求。同時,由于重定向方式產(chǎn)生了一個新的請求,所以經(jīng)過一次重定向后,request內(nèi)的對象將無法使用。 怎么選擇是重定向還是轉(zhuǎn)發(fā)呢?通常情況下轉(zhuǎn)發(fā)更快,而且能保持request內(nèi)的對象,所以他是第一選擇。但是由于在轉(zhuǎn)發(fā)之后,瀏覽器中URL仍然指向開始頁面,此時如果重載當前頁面,開始頁面將會被重新調(diào)用。如果你不想看到這樣的情況,則選擇轉(zhuǎn)發(fā)。 <2>不要僅僅為了把變量傳到下一個頁面而使用session作用域,那會無故增大變量的作用域,轉(zhuǎn)發(fā)也許可以幫助你解決這個問題。重定向:以前的request中存放的變量全部失效,并進入一個新的request作用域。轉(zhuǎn)發(fā):以前的request中存放的變量不會失效,就像把兩個頁面拼到了一起。<3>轉(zhuǎn)發(fā)是在服務(wù)器端發(fā)揮作用,通過RequestDispatcher對象的forword()方法將提交信息多個頁面間進行傳遞.重定向是在客戶端發(fā)揮作用,通過請求新的地址實現(xiàn)頁面轉(zhuǎn)向.

4.會話

一個會話就是用戶通過瀏覽器與服務(wù)器之間進行的一次通話.

session對象用于存儲特定的用戶會話所需的信息.session對象的引入是為了彌補http協(xié)議的不足,http協(xié)議是一種無狀態(tài)的協(xié)議.

session對象的失效方式:超時失效 手動實效

超時失效的實現(xiàn)方式:<1>在頁面中:通過setMaxInactiveInterval()方法設(shè)置session的非活動時間 例:<% session.setAttribute("Login","admin"); session.setMaxInactiveInterval(600); response.sendRedirect("admin.jsp"); %>

<2>在項目web.xml中設(shè)置. <session-config> <session-timeout>10<session-timeout> </session-config> 10的單位十分鐘,設(shè)置0,-1表示永不超時 <3>在應(yīng)用服務(wù)器中設(shè)置,在Tomcat目錄/conf/web.xml中找到<session-config>元素,其中<session-timeout>元素中的30就是默認的時間,單位是分鐘,可以修改其值. 手動實效:通過調(diào)用invalidate()方法實現(xiàn),主要應(yīng)用于用戶注銷場合.但若想清空session中的某個對象,則可以調(diào)用session.removeAttribute(String key)方法,將指定的對象從session中清除,session仍然有效.

session對象的常用方法:<1>void setAttribute(String key,Object value) 以key/value的形式將對象保留到session中

<2>Object getAttribute(String key) 通過key獲取session中保存的對象

<3>voidinvalidate() 設(shè)置session對象失效

<4>String getId() 獲取sessionid

            <5>void setMaxInactiveInterval(int interval) 設(shè)置session的非活動時間

           <6>int getMaxInactiveInterval() 獲取session的有效活動時間,以秒為單位

<7>void removeAttribute(String key) 從session中刪除指定名稱(key)所對應(yīng)的對象


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平和县| 龙山县| 建平县| 三穗县| 大埔县| 曲阳县| 邳州市| 革吉县| 海城市| 开远市| 云龙县| 许昌市| 锡林郭勒盟| 绵阳市| 四会市| 铜山县| 喀喇沁旗| 麻栗坡县| 保靖县| 含山县| 安远县| 荃湾区| 佛山市| 伊春市| 美姑县| 即墨市| 雷州市| 铜川市| 武清区| 康平县| 东港市| 黔南| 贡山| 阿鲁科尔沁旗| 屯昌县| 蒲江县| 临安市| 垦利县| 儋州市| 七台河市| 临澧县|