JSP-页面跳转大全
转自:http://blog.sina.com.cn/s/blog_8c38b8b701013zzz.html
(1). forward()方法
使用到javax.servlet.RequestDispatcher类
RequestDispatcher rd = getServletContext().getRequestDispatcher("url");
rd.forward(requestVar,requestVar); //传递servlet的入口参数
即:
getServletContext().getRequestDispatcher("url").forward(requestVar,responseVar);
服务器端Servlet进行转向的4种方法:
1.ServletContext的getRequestDispatcher()
2.ServletContext的getNamedDispatcher()
3.ServletRequest的getRequestDispatcher()
4.ServletResponse的sendredirect()进行转向。
forward方法,因为这些这样比较高效。只有在forward方法不能使用时,再使用servletresponse的sendredirect()方法。
(2).response.sendRedirect(url);
其实是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,所以用sendRedirect时,浏览器的地址栏上可以看到地址的变化。新页面不能处理旧页面的pagecontext(request,response,...)对象.
在response.sendRedirect之后,应该紧跟一句return;
(3).HTML语言的自动跳转
<html>
<head>
<meta http-equiv="refresh" content="0;url="http://www.baidu.com">
0是等待时间,如果设置为5表示等待5s后开始跳转
</head>
…………
(4).JavaScript跳转
A:
<script languate="javascript">
window.location.replace("http://www.baidu.com");
</script>
B:也可以直接给window.location属性赋值,window.location="url",与A不同的是有历史记录
C:
<script languate="javascript">
document.location.href("http://www.google.com");
</script>
对于document,location不是不是对象,document.location=document.url
D:history对象的forward(),back(),go()方法.go()方法需要一个整形入口参数
<a href="javascript:history.go(-1)">返回上一步</a>
等价于<a href="javascript:history.back()">返回上一步</a>
E:
document.formName.action="test.jsp";
document.formName.submit(); //使用JS提交的方式
第一种:
<script language="javascript" type="text/javascript">
window.location.href="login.jsp?backurl="+window.location.href;
</script>
第二种:
<script language="javascript">
alert("返回");
window.history.back(-1);
</script>
第三种:
<script language="javascript">
window.navigate("top.jsp");
</script>
第四种:
<script language="JavaScript">
self.location='top.htm';
</script>
第五种:
<script language="javascript">
alert("非法访问!");
top.location='xx.jsp';
</script>
(5).<jsp:forward page="nextpage.jsp"/>
如:
<jsp:forward page="/servlet/login" />
<jsp:forward page="/servlet/login">
<jsp:param name="username" value="jsmith" />
</jsp:forward>
<jsp:forward>标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象.
<jsp:forward>标签以下的代码,将不能执行.
可使用了<jsp:param>标签的话向目标文件传送参数和值,目标文件必须是一个动态的文件,能够处理参数.
如果你使用了非缓冲输出的话,那么使用<jsp:forward>时就要小心。如果在你使用<jsp:forward>之前,jsp文件已经有了数据,那么文件执行就会出错.
JSP页面跳转方法荟萃
1. response.sendRedirct("跳转到页面");
该方法通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的,使浏览器显示重定向网页的内容. request无法传值过去.
执行完该页所有代码,然后再跳转到页面. 跳转地址栏改变.
可以跳转到其他服务器上的页面response.sendRedirct(http://www.sun.com).
2.response.setHeader(); 该方法和response.sendRedirect一样,通过修改HTTP协议的HEADER部分.
<% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); String
newLocn="/index.html"; response.setHeader("Location",newLocn); % >
3.<jsp:forward page="跳转页面"/>
该方法是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果在<jsp:forward>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意.
request可以传值过去. 直接跳转到页面,后面的代码不执行. 跳转后地址栏不变. 无法跳转到其他服务器上的页面. 图片不是绝对路径无法显示.
4.request.getRequestDispatcher("跳转页面"); request可以传值过去. 执行完该页所有代码,然后再跳转到页面.
跳转地址栏不变. 不可以跳转到其他服务器上的页面 <% RequestDispatcher rd = request.getRequestDispatcher("to.jsp"); rd.forward(request,response); %>有以下3种方法可以做到输出重定向: RESPONSE.SETREDERECT("URL")该方法通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的,使浏览器显示重定向网页的内容.
response.sendRedirect("http://localhost:7001/index.html");
下面的方法也能改变HTTP HEADER属性,它的原理和 1 是一样的. <%response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); String newLocn="/index.html"; response.setHeader("Location",newLocn); % >
采用<JSP:FORWORD>
该方法是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果在<JSP:FORWORD>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意.
自己现在知道的在一个jsp页面中嵌套另外一个jsp页面,有三种方法:
1、通过<%@ include file="header.jsp"%>这种方法只能实现静态页面的加载,最常用是在一个项目中实现通用页头header.jsp和footer.jsp的加载。
2、通过<%@ include page="tt.jsp"%>这种做法可以实现动态页面的加载,但其需要向页面传递参数;
3、通过<iframe src="jsp的路径">来向页面加载另一个jsp页面,是一个内联框架。用forward传参数的, 要这样写: <%String str="你已经登陆!"; %>
<jsp:forward page="index.jsp>
<jsp:param name="name" value= <%=str%>/>
</jsp:forward>
JSP-页面跳转大全的更多相关文章
- JSP页面跳转方式
JSP页面跳转方式 1.利用按钮+javascript进行跳转 <input type="button" name="button2" value=&qu ...
- 网站开发进阶(三十七)JSP页面跳转问题解决
JSP页面跳转问题解决 PS:本篇博文质量欠佳,仅供个人学习之用. 前言 在做Web开发时,对别人的应用(jsp+servlet)进行服务器部署时出现了页面跳转无效的情况.但是项目在本地未出现此状况. ...
- JSP 页面跳转中的参数传递
1. 从一个 JSP 页面跳转到另一个 JSP 页面时的参数传递 1)使用 request 内置对象获取客户端提交的信息 2)使用 session 对象获取客户端提交的信息 3)利用隐藏域传递数据 4 ...
- Jsp页面跳转和js控制页面跳转的几种方法
Jsp 页面跳转的几种方法 1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servle ...
- JSP页面跳转
JSP页面跳转 RequestDispatcher.forward() 服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到 ...
- JSP页面跳转的几种实现方法
使用href超链接标记 客户端跳转 使用JavaScript 客户端跳转 提交表单 客户端跳转 使用response ...
- 异常之JSP页面跳转出错
今天在开发过程中发现一个问题:在页面中使用了<jsp:forward>抛错Attempt to clear a buffer that's already been flushed!! 百 ...
- 五种JSP页面跳转方法详解
1. RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个 ...
- Springboot+MyBatis+mysql+jsp页面跳转详细示例
SpringBoot与MyBatis搭建环境,底层数据库为mysql,页面使用JSP(官网上不推荐使用jsp),完成从数据库中查询出数据,在jsp页面中显示,并且实现页面的跳转功能. 项 ...
- JS页面跳转大全
所谓的js页面跳转就是利用javesrcipt对打开的页面ULR进行跳转,如我们打开的是A页面,通过javsrcipt脚本就会跳转到B页面.目前很多垃圾站经常用js跳转将正常页面跳转到广告页面,当然也 ...
随机推荐
- You don't know js
"Give me a chance to know you. " 更多内容: 移步这里 1. 作用域 1.1. 编译原理 尽管通常将 JavaScript 归类为"动态& ...
- git 简易使用说明
背景 代码用git管理,所以需要大家熟悉git工具的一些操作 目前我们自动化在develop分支上进行编写 前言 安装git,https://git-scm.com/ 可视化工具推荐,sourcetr ...
- 【Ubuntu16]】ufw
Usage: ufw COMMAND Commands: enable enables the firewall 开启ufw防火墙 disable disables the firewall 禁用防火 ...
- Oozie调用Spark实例
oozie调用spark有三样是必须有的: workflow.xml(不可改名) , job.properties(可改名) , jar包(自备). 1.workflow.xml workflow.x ...
- 最大流isap模板
isap+bfs初始化+栈优化,点的编号从0开始: ; ; const int INF = 0x3f3f3f3f; struct Edge { int to, next, cap, flow; }ed ...
- class对象详解
我们知道,对于java语言,我们一般先写一个类对象,表示对某一类对象概述,其中包括属性,方法等.我们在对类对象编译时,会产生一个.class对象,jvm在加载类对象时,是加载.class 对象文件,我 ...
- CSS基础用法
[CSS常用选择器] 标签选择器 写法: HTML标签名{}作用: 可以选中页面中,所有与选择器同名的HTML标签. 类选择器(class选择器)写法: .class名{}调用: 在需要调用选择器样式 ...
- .Netcore之日志组件Log4net、Nlog性能比较
转载请注明出处http://www.cnblogs.com/supernebula/p/7506993.html .Netcore之Log4net.Nlog性能比较 最近在写一个开源.netcore ...
- Cetnos搭建vsftp服务器
1.首先yum安装vsftp server 以3.0.2为例 命令:yum -y install vsftpd 2.配置文件 vsftp.conf 具体配置内容如下: anonymous_ena ...
- datable 翻页事件处理
JQuery datatable插件,点下一页在点击事件无效问题 (2013-10-16 16:01:54) 转载▼ 分类: C# 在MVC的项目中,我利用jquery datatable 来实现 ...