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

首頁 > 編程 > JSP > 正文

jsp response.send、Redirect不跳轉(zhuǎn)的原因分析及解決

2019-11-02 15:23:04
字體:
供稿:網(wǎng)友

最近做項(xiàng)目時(shí)遇到一個(gè)問題,明

好看的爆笑圖片[www.62-6.com/1/baoxiaotupian]
明加了response.sendRedirect() ,系統(tǒng)也執(zhí)行了,但是它就是不跳轉(zhuǎn);最后在網(wǎng)上找到原因如下:

首先我們要明白用response.sendRedirect做轉(zhuǎn)向的原理,它其實(shí)是向瀏覽器發(fā)送一個(gè)特殊的Header,然后由瀏覽器來做轉(zhuǎn)向,轉(zhuǎn)到指定的頁面,所以用sendRedirect時(shí),瀏覽器的地址欄上可以看到地址的變化。
用<jsp:forward page=""/>則不同,它是直接在server做的,瀏覽器并不知道,也不和瀏覽器打交道,這從瀏覽器的地址并不變化可以看出。

所以使用response.sendRedirect時(shí)就需要注意以下兩點(diǎn):

1、在使用response.sendRedirect時(shí),前面不能有HTML輸出。

這 并不是絕對(duì)的,不能有HTML輸出其實(shí)是指不能有HTML被送到了瀏覽器。事實(shí)上現(xiàn)在的server都有cache機(jī)制,一般在8K(我是說JSP  SERVER),這就意味著,除非你關(guān)閉了cache,或者你使用了out.flush()強(qiáng)制刷新,那么在使用sendRedirect之前,有少量的 HTML輸出也是允許的。
如果報(bào)錯(cuò)說,“一些信息已經(jīng)被submitted”(原文忘了),那么,你就要注意看了,前面是不是有過多的HTML輸出了。

2、在response.sendRedirect之后,應(yīng)該緊跟一句return;

我們已經(jīng)知道response.sendRedirect是通過瀏覽器來做轉(zhuǎn)向的,所以只有在頁面處理完成后,才會(huì)有實(shí)際的動(dòng)作。既然你已經(jīng)要做轉(zhuǎn)向了,那么后的輸出還有什么意義呢?而且有可能會(huì)因?yàn)楹竺娴妮敵鰧?dǎo)致轉(zhuǎn)向失敗。

<%@ include file="/page/checkLogin.jsp" %>這個(gè)放在要驗(yàn)證的頁面的第一句。

checkLogin.jsp 內(nèi)容是通過看session 里面有沒登陸用戶的內(nèi)容來判斷是否登錄, 如果沒有,那么跳轉(zhuǎn)到登陸頁面:

復(fù)制代碼 代碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
if (session.getAttribute("userinfo") == null) {

response.sendRedirect(url);

return;
}
%>  
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 靖宇县| 安国市| 明星| 肥东县| 革吉县| 徐汇区| 新龙县| 星座| 壶关县| 偃师市| 达孜县| 松原市| 定结县| 武穴市| 盐城市| 温宿县| 水富县| 成武县| 长泰县| 双城市| 茂名市| 桂阳县| 壶关县| 吉水县| 玛沁县| 五大连池市| 乃东县| 福州市| 三河市| 广德县| 洮南市| 公主岭市| 汤阴县| 谢通门县| 星子县| 观塘区| 黄冈市| 桑植县| 开远市| 息烽县| 和田县|