1. 程式人生 > >談談request和response的頁面跳轉

談談request和response的頁面跳轉

jsp或Servlet都會用到頁面跳轉,可以用
request.getRequestDispatcher("p3.jsp").forward(request,response);這種方法稱為轉發,位址列上的URL不會改變;
response.sendRedirect("p3.jsp");這種方法稱為重定向,位址列的URL會改變;
這樣實現跳轉到p3.jsp;可是這兩種方法有著本質的不同,requset是請求,是在伺服器端執行的,response是相應,是在客戶端執行的;
例如:
有3個頁面p1.jsp,p2.jsp,p3.jsp;
p1.jsp提交給p2.jsp,p2.jsp在轉發給p3.jsp
如果在p2用第一種方法發到到p3,由於是瀏覽器請求的是p2,請求的一些引數被封裝在request中,發給伺服器,伺服器用request.getRequestDispatcher("p3.jsp").forward(request,response);轉到p3,把p3發給瀏覽器,瀏覽器不知道被偷樑換柱了,所以URL還是p2.jsp;也完全可以用request.getParameter("name");得到p1.jsp中的表單控制元件的值,因為在這裡用了forward()把request傳了下去

如用第二種方法,這是瀏覽器主動請求了p3,所以瀏覽器知道請求的地址,所以URL變了,
而又一次請求,產生了另外一個request,這個和請求p2的request不同,所以在p3中用request.getParameter("name");得不到p1.jsp中的表單控制元件的值

相關推薦

談談requestresponse頁面

jsp或Servlet都會用到頁面跳轉,可以用request.getRequestDispatcher("p3.jsp").forward(request,response);這種方法稱為轉發,位址列上的URL不會改變;response.sendRedirect("p3.js

iframeresponse.sendRedirect()到父頁面的問題----已解決

在專案中,因為為了給頁面分層次,就使用了 內嵌iframe 的分了三個框。在子頁面進行操作的時候,如果session超時,就要被攔截器攔截重新回到首頁進行登入,但是在sub頁 面 ,進行操作的時候,如果session超時,需要跳轉到首頁進行登入的話,首頁的頁面就嵌在sub頁

JSP中頁面response.sendRedirect()request.getRequestDispatcher()的區別

Java Web開發中,採用MVC模式的時候,在控制器完成模型的呼叫之後會選擇介面對使用者響應,用常有2種方式 1,通過response物件的sendRedirect方法重定向: response.

Request作為域物件存取資料 Request作為域物件;請求轉發重定向都可以完成頁面

Request作為域物件存取資料 Request作為域物件 Request作為域物件的API Attribute:屬性 標誌的意思 向Request域中儲存資料:setAttribute(Stri

頁面添加返回動畫(仿app) 只對單頁面有用,我用的是angualr,有不會的可以私信問我。

hist page func margin consola color -s tar pla p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; color: #596972 } p.p2 { mar

微信小程序頁面方法攜帶參數詳解

nload 使用 名稱 屬性 這一 模板語言 UNC 方法 rec 1.頁面跳轉方式 (1)標簽跳轉 open-type的屬性值對應api裏的用法即wx.的用法 1 <navigator url="/page/navigate/navigate?t

返回 字符串的 formjs組合讓頁面

back ucc mes reac mount new eth ons result router.get("/wy/jhy").handler(ctx->{ ctx.request().response().setChunk

(五)flask框架使用教程系列——頁面重定向

一、頁面跳轉和重定向用處       在使用者訪問一些需要登入的頁面的時候,如果使用者沒有登入,那麼可以讓他重定向到登入頁面。 二、程式碼實現 # encoding:utf-8 from flask import Fla

META JS自動頁面

1.利用<META標籤實現web頁面的跳轉: <meta http-equiv="refresh" content="X; url=* .* "> X是重新整理的時間,單位是秒。  *.*是你要重新整理的檔案。  2,.JS方法跳轉頁面: <script t

【黑帽SEO系列】網頁劫持頁面

網頁劫持是目前黑帽SEO或者說黑產最喜歡的一種網頁引流方式,此手法往往通過入侵政府、教育機構網站(權重高),修改網站原始碼、放寄生蟲程式、設定二級目錄反向代理等實現。網頁劫持可以分為服務端劫持、客戶端劫持、百度快照劫持、百度搜索劫持等等;表現形式可以是劫持跳轉,也可以是劫持呈現的網頁內容,目

Java Web jsp中有關頁面轉發與重定向的區別

響應頭 通過設定響應頭實現頁面跳轉,並且在面試中也會問及是否是重定向還是轉發 最後給大家簡單介紹轉發和重定向的區別 Location Location需要與狀態碼302配合使用,完成頁面重定向 Location: http://www.banma.com 指定頁面要

小程式頁面傳參-thisthat的區別-登入流程-下拉選單-實現畫布自適應各種手機尺寸

小程式頁面跳轉傳參 根目錄下的 app.json 檔案 頁面檔案的路徑、視窗表現、設定網路超時時間、設定多 tab { "pages": [ "pages/index/index", "pages/logs/index" ], "window":

yii2的請求(request)、響應與(response)、快取(session)常用操作

一、yii2 request操作Yii::$app->request->get();//等價於:$_GET;Yii::$app->request->post();//等價於:$_POST;Yii::$app->request->get('id'); //等價於:isset(

yii2的請求(request)、響應與(response)、緩存(session)常用操作

rect() sse response 其他 agent 終端 str accep n) 一、yii2 request操作Yii::$app->request->get();//等價於:$_GET;Yii::$app->request->post()

頁面Ajax常用操作

 常用跳轉 <a href="${pageContext.request.contextPath }/logout.action"> <form action="${pageContext.request.contextPath }/list.actio

Android中使用Intent實現一般頁面帶引數頁面

一、Intent介紹 Intent的理解       Intent, 直譯為意圖, 也就是你想要做什麼或想要去哪?       Intent是Activity, Service和BroadcastReceiver這三個應用元

apicloud與vue實現app首頁頁面

<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="maximum-scale=1.0,m

thinkphp 中定製successerror提示頁面

在thinkphp中用到$this->success()和$this->error()函式,但是這兩個頁面太醜,所以需要自定義一下 首先要修改配置 'TMPL_ACTI

JS彈出框、對話方塊、提示框,JS關閉視窗、關閉頁面JS控制頁面

1. RequestDispatcher.forward() 在伺服器端起作用,當使用forward()時,Servlet engine傳遞HTTP請求從當前的Servlet或者是JSP到另外的一個Servlet、JSP 或普通HTML檔案,也即你的form提交至a.jsp,在a.jsp用到了forw

react-native最新的ES6基於頁面傳值

引導頁面:最新的react-native頁面跳轉和傳值 /** * Sample React Native App * https://github.com/facebook/react-native */ import React, { Ap