最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2013年07月08日 17:36:52   作者:  
最近做項(xiàng)目時(shí)遇到一個(gè)問(wèn)題,明明加了response.sendRedirect() ,系統(tǒng)也執(zhí)行了,但是它就是不跳轉(zhuǎn),具體的原因如下,感興趣的各位可以參考下哈,希望對(duì)大家有所幫助
最近做項(xiàng)目時(shí)遇到一個(gè)問(wèn)題,明明加了response.sendRedirect() ,系統(tǒng)也執(zhí)行了,但是它就是不跳轉(zhuǎn);最后在網(wǎng)上找到原因如下:

首先我們要明白用response.sendRedirect做轉(zhuǎn)向的原理,它其實(shí)是向?yàn)g覽器發(fā)送一個(gè)特殊的Header,然后由瀏覽器來(lái)做轉(zhuǎn)向,轉(zhuǎn)到指定的頁(yè)面,所以用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(我是說(shuō)JSP SERVER),這就意味著,除非你關(guān)閉了cache,或者你使用了out.flush()強(qiáng)制刷新,那么在使用sendRedirect之前,有少量的HTML輸出也是允許的。
如果報(bào)錯(cuò)說(shuō),“一些信息已經(jīng)被submitted”(原文忘了),那么,你就要注意看了,前面是不是有過(guò)多的HTML輸出了。

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

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

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

checkLogin.jsp 內(nèi)容是通過(guò)看session 里面有沒(méi)登陸用戶的內(nèi)容來(lái)判斷是否登錄, 如果沒(méi)有,那么跳轉(zhuǎn)到登陸頁(yè)面:
復(fù)制代碼 代碼如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
if (session.getAttribute("userinfo") == null) {

response.sendRedirect(url);

return;
}
%>

相關(guān)文章

最新評(píng)論

阜新市| 清镇市| 盐津县| 安化县| 凌源市| 丰县| 乡城县| 祥云县| 额济纳旗| 兴业县| 吉林省| 南充市| 长沙市| 清新县| 安乡县| 乐安县| 阿拉善盟| 黄浦区| 定安县| 岑溪市| 柳江县| 原平市| 赣榆县| 金堂县| 随州市| 佛山市| 元阳县| 云林县| 衢州市| 南投市| 上饶市| 津南区| 克东县| 济源市| 大邑县| 潜江市| 金塔县| 德化县| 蓬溪县| 察隅县| 镇沅|