a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > JSP > 正文

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

2024-09-05 00:21:50
字體:
供稿:網(wǎng)友
最近做項目時遇到一個問題,明明加了response.sendRedirect() ,系統(tǒng)也執(zhí)行了,但是它就是不跳轉(zhuǎn),具體的原因如下,感興趣的各位可以參考下哈,希望對大家有所幫助

最近做項目時遇到一個問題,明明加了response.sendRedirect() ,系統(tǒng)也執(zhí)行了,但是它就是不跳轉(zhuǎn);最后在網(wǎng)上找到原因如下:

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

所以使用response.sendRedirect時就需要注意以下兩點:

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

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

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

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

<%@ include file="/page/checkLogin.jsp" %>這個放在要驗證的頁面的第一句。

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ā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 一级欧美片 | 日韩一区在线观看视频 | 国产精品中文字幕在线播放 | 国产精品久久久久久久久动漫 | 国产精品不卡一区 | 成人免费黄色小视频 | xvideos视频 | 国产在线一区二区 | 亚洲三级网 | av中文字幕在线播放 | 羞羞视频免费在线观看 | 高清av网址 | 日韩中文字幕一区二区 | av官网| 在线不卡一区二区 | 久久这里有精品 | 精品国产乱码久久久久久1区2区 | 欧美 日韩 高清 | 色站综合 | 不卡视频一区二区三区 | 精品一区二区网站 | 欧美一级免费看 | 午夜免费一区二区播放 | 亚洲一区二区三区四区五区午夜 | 亚洲九九九 | 中文字幕播放 | 99国产精品| 久久国产在线视频 | 午夜免 | 蜜臀av中文字幕 | 国产精品久久久久久一区二区三区 | 日韩欧美一区二区三区久久婷婷 | 欧美精品亚洲精品 | 成人黄色电影在线观看 | 国产成人精品亚洲7777 | 亚洲免费视频在线观看 | www.伊人| 国产第一区二区 | 青青草娱乐视频 | 国产福利在线免费 | 午夜电影网站 |