jsp:forward response.sendRedirect
jsp中<jsp:forward page=""/>和response.sendRedirect("")两种跳转的区别
一、response.sendRedirect("")
始终要记住一点就是这种跳转是让客户端浏览器自己去访问指定的页面,这个指定页面的地址就是sendRedirect("")参数的内容。如果跳转的页面是webapp里面的页面,客户端需要两层访问服务器。如果是其他网址的话,客户端则不再访问此服务器,转而访问其他的服务器。是服务器端与客户端的两次往返。速度还是慢些。
(1)地址栏内容有变化。
(2)sendRedirect("")后的语句依旧执行,所以在此语句后面的有向客户端传送信息的语句时候会出现闪烁现象,一般情况下可以做个判断来,如果怎么样则转向指定的页面,否则执行其他的代码。
(3)sendRedirect("")里的参数可以是网页也可以是jsp页面等。
如sendRedirect(“http://www.baidu.com”)//转到webapp外面去。
sendRedirect(“a.jsp”) //转到webapp里面的其他页面去。
(4)如果写成sendRedirect(“/a.jsp”)此时的/代表的是http://127.0.0.1/,它并不包含这个页面所在的webapp。所以要在/后面加上a.jsp的路径。
(5)它们不共用一个request对象。而且跳转页面a.jsp是接收不到传递给包含此跳转指令的页面的参数的。但是包含此跳转指令的页面可以向跳转页面中传递参数,此时跳转页面a.jsp能够接收到传递的参数。如sendRedirect(“a.jsp?name=123”),所以说用此种跳转的话可以让包含此跳转指令的页面接收到参数,然后将参数再往跳转页面中传递。
二、<jsp:forward page= ""/>
始终要记住一点就是这种跳转是让服务器端内部进行跳转。而且只能在服务器的内部转换,并将跳转到最后一个页面的执行结果返回给客户端,速度快。
(1) 地址栏内容没有变化。
(2) <jsp:forward page=""/>后面的语句不会被执行的。
(3)如果写成<jsp:forward page=“/a.jsp”/>,此时的/代表的是http://127.0.0.1/工程名,此时在后面要跟上a.jsp的路径。
(4)跳转页面a.jsp和包含跳转页面不共用一个request对象。但是跳转页面可以访问到传递给包含此跳转指令的页面的参数的, 跳转的页面的request包含的参数比包含跳转指令的页面的参数要大。这种情况和静态包含和动态包含相似。
(5)包含此跳转指令的页面可以向要跳转到的页面传递参数。
传参方式一:<jsp:forward page=“a.jsp?param=123”/>时被包含的jsp页面是可以访问该参数的。
传参方式二:
<jsp:forward page=“a.jsp”>
<jsp:param name=“” value=“”/>
</ jsp:include >
jsp:forward response.sendRedirect的更多相关文章
- 关于jsp中response.sendRedirect显示错误
今天在jsp中作判断时,当不同条件时利用response.sendRedirect(“url”)来转向不同的页面,首先是判断验证码,当错误时就转向错误页面:当正确时,才进行用户名和密码的判断,同样也r ...
- 转response.sendRedirect()与request.getRequestDispatcher().forward()区别
JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...
- 让你明白response.sendRedirect()与request.getRequestDispatcher().forward()区别
JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...
- Jsp重定向(response.sendRedirect())和转发(request.getRequestDispatcher().forward(request,r)的差别
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...
- response.sendRedirect跳转 jsp:forward跳转
response.sendRedirect跳转 <% response.sendRedirect("online.jsp"); %> jsp:forward跳转 < ...
- jsp/servlet 中sendRedirect,include,forward区别
1 sendRedirect response.sendRedirect(); 服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求新的地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以sess ...
- response.sendRedirect()与request.getRequestDispatcher().forward()区别
Servlet中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳 ...
- <jsp:forward>、requestDispatcher和sendRedirect()的区别
1.会话信息保存在服务器内存上,可以断续访问,和cookie相比,其保存在服务器上. 2.男人就像蓝牙:只有在你接近时,他才会找上你.当你离开后,他便又去找其他的"设备"了.女人就 ...
- javaweb中重定向和请求转发(response.sendRedirect()和request.getRequestDispatcher(rul).forward(request,response)))的区别
先来两张图,方便理解: 可以看出,重定向时,是服务器向游览器重新发送了一个response命令,让游览器再次向url2发送请求,以获取url2的资源 而请求转发时,类似于是服务器自己向自己发了一个跳转 ...
随机推荐
- MySQL关键性能监控(QPS/TPS)
原文链接:http://www.cnblogs.com/chenty/p/5191777.html 工作中尝尝会遇到各种数据库性能调优,除了查看某条SQL执行时间长短外,还需要对系统的整体处理能力有更 ...
- 在Linux中让打印带颜色的字
echo显示带颜色,需要使用参数-e 格式如下: echo -e "\033[字背景颜色;文字颜色m字符串\033[0m" 例如: echo -e "\033[41;37 ...
- Java 字符串用逗号并接
for (int t = 0; t < memberLen; t++) { memTemp = stafferMap.get(strMember[t]); if(memTemp != nul ...
- Git命令行初体验
1. git 版本控制系统 ==============运行环境======== 系统:windows git : Git-1.7.3.1-preview20101002.rar 下载地址:http ...
- 10个超级有用、必须收藏的PHP代码样例
在PHP的流行普及中,网上总结出了很多实用的PHP代码片段,这些代码片段在当你遇到类似的问题时,粘贴过去就可以使用,非常的高效,非常的省时省力.将这些程序员前辈总结出的优秀代码放到自己的知识库中,是一 ...
- (转)EntityFrameword “Reverse Engineer Code First” 连接 MySql
转自:http://stackoverflow.com/questions/19676624/error-trying-to-reverse-engineer-code-first-mysql-dat ...
- Hibernate配置文件与映射文件的创建
1. config文件的创建: 内容: <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hib ...
- crontab计划任务
编辑crontab文件:crontab -e 查看crontab日志: tail -100f /var/log/cron 编辑格式: 基本格式 : * * * * * command 分 时 日 月 ...
- 用c#开发微信(3)基于Senparc.Weixin框架的接收普通消息处理 (源码下载)
本文讲述使用Senparc.Weixin框架来快速处理各种接收的普通消息.这里的消息指的是传统的微信公众平台消息交互,微信用户向公众号发送消息后,公众号回复消息给微信用户.包括以下7种类型: 1 文本 ...
- C++ WIN32控制台异常关闭回调函数
/* This is an example of the SetConsoleCtrlHandler function that is used to install a control handle ...