JSP 页面跳转的实现方法
客户端跳转
1. 使用 href 超链接标记 <a href="new.jsp">跳转</a>
2. 使用表单提交完成跳转 <form action="new.jsp"> ... </form>
3. 使用 JavaScript
4. 使用 response.sendRedirect(String path) 重定向
服务器端跳转
5. 使用 request.getRequestDispatcher("目标页面").forward(request, response) 转发
6. <jsp:forward page="目标页面"> 该方法底层实现是通过request.getRequestDispatcher("目标页面").forward(request, response)
--------------------------------------------------------------------------------------------------------------------------------------------
1. 使用 href 超链接标记(客户端跳转)
这个比较简单,通常写到 <a> 标签中即可。
<a> 标签定义超链接,用于从一个页面链接到另一个页面
<a> 元素的最重要的属性是 href 属性,用于指定链接的目标
适用于完成指定位置的动态跳转
<a href="new.jsp">跳转</a>
<a href="http://www.runoob.com">访问菜鸟教程!</a>
2. 通过表单提交完成跳转(客户端跳转)
将整个 form 表单数据提交到方式
<form name="form1" method="POST" action="new.jsp">
<input type="text" name="name" />
<input type="text" name="pad" />
<input type="submit" value="提交" />
<input type="reset" value="重置">
</form>
3. 使用 JavaScript(客户端跳转)
1)可以在 JavaScript 代码里面写提交表单的写法
<script type="text/javascript">
function submit() {
with(document.getElementById("queryFunction")){
action="new.jsp";
method="post";
submit();
}
}
</script>
2)可以直接定位,给 window.location 赋值,而不是提交表单
使用 replace() 方法与定位 window.location 的差别是前者没有历史记录
<script type="text/javascript">
function go{
window.self.location="new.jsp";
}
</script>
<!-- 或者 -->
<script type="text/javascript">
window.location.replace("http://www.baidu.com");
</script>
3)使用 history 对象的 forword(),back(),go() 方法
其中 go() 方法需要一个整型入口参数
下面两句代码的功能相同
<a href="javascript:history.back()">返回上一步</a>
<a href="javascript:history.go(-1)">返回上一步</a>
4. 使用 JSP 的内置对象 response(客户端跳转)
1)直接使用 sendRedirct() 重定向,重定向后在浏览器地址栏上会出现重定向页面的 URL
sendRedicrect() 中的 URL 可以是带参数的,例如 response.sendRedirect("url?name=" + name),因此我们可以在跳转到时候传递参数。
一般 response.Redirect() 之后会紧跟一句 return; 我们已经知道 response.sendRedirect() 是通过浏览器来完成跳转的,所以在页面处理完成后才会有实际的动作。
既然已经跳转了,那么后面的输出就已经没有意义了,而且有可能会因为后面的输出导致跳转的失败。
<%
response.sendRedirect("http://www.baidu.com");
return;
%>
2)使用 setHeader() 方法,直接修改地址栏,同样可以实现页面的重定向
标准格式:response.setHeader("Refresh", "等待的秒数; url=绝对路劲或者相对路径");
<%
response.setHeader("refresh", "1;url=http://www.baidu.com");
%>
5. 使用 requestDispatcher 类(服务器端跳转)
Servlet 可以通过两种方式得到 RequestDispatcher 对象:
-- ServletContext 的 getRequestDispatcher(String path) path为绝对路径
-- ServletRequest 的 getRequestDispatcher(String path) path可以为绝对路径,也可以为相对路径
RequestDispatcher rd = request.getRequestDispatcher("目标页面");
rd.forward(request, response);
response.sendRedirect(String path) 重定向和 requestDispatcher.forward(request, response) 跳转的区别
response.sendRedirect(path) 重定向:
1)在浏览器中重定向
2)执行完所有的代码后再跳转到目标页面
3)跳转到目标页面后浏览器地址栏的URL会改变
4)可以跳转到其他服务器上的页面,如 “http://www.baidu.com”
5)通常和 return 配合使用
requestDispatcher.forward(request, response)
1)在服务器端转发
2)直接跳转到目标页面,其后的代码不再执行
3)跳转到目标页面后浏览器地址栏的URL不会改变
4)无法跳转到其他服务器的页面
5)当身处循环或者可能有多个 forword() 需要和 return 配合使用
JSP 页面跳转的实现方法的更多相关文章
- Jsp页面跳转和js控制页面跳转的几种方法
Jsp 页面跳转的几种方法 1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servle ...
- JSP 页面跳转中的参数传递
1. 从一个 JSP 页面跳转到另一个 JSP 页面时的参数传递 1)使用 request 内置对象获取客户端提交的信息 2)使用 session 对象获取客户端提交的信息 3)利用隐藏域传递数据 4 ...
- JSP页面跳转
JSP页面跳转 RequestDispatcher.forward() 服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到 ...
- JSP页面跳转方式
JSP页面跳转方式 1.利用按钮+javascript进行跳转 <input type="button" name="button2" value=&qu ...
- 网站开发进阶(三十七)JSP页面跳转问题解决
JSP页面跳转问题解决 PS:本篇博文质量欠佳,仅供个人学习之用. 前言 在做Web开发时,对别人的应用(jsp+servlet)进行服务器部署时出现了页面跳转无效的情况.但是项目在本地未出现此状况. ...
- ASP.NET页面跳转的三大方法详解
ASP.NET页面跳转有什么方法呢?,现在给大家介绍三种方法,他们的区别是什么呢?让我们开始吧: ASP.NET页面跳转1.response.redirect 这个跳转页面的方法跳转的速度不快,因为它 ...
- JSP页面之间传递参数的方法有哪些?
JSP页面之间传递参数的方法有哪些? 解答: 1)request 2)session 3)application 4)提交表单 5)超链接
- JSP页面跳转的几种实现方法
使用href超链接标记 客户端跳转 使用JavaScript 客户端跳转 提交表单 客户端跳转 使用response ...
- 五种JSP页面跳转方法详解
1. RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个 ...
随机推荐
- JAVA学习记录(二)————JAVA中的IO
Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列. 数据流是一串连续不断的数据的集合,就象水 ...
- Delphi中Inputbox 和Inputquery 函数的使用
原文转自:http://blog.csdn.net/zengcong2013/article/details/18355959 inputbox的返回值是,你在输入框中输入的文字.而inputquer ...
- centos7配置网易yum源
部分参考centos6: https://blog.csdn.net/jinzhencs/article/details/53673999 下载yum: https://www.cnblogs.co ...
- FPGA笔试必会知识点2—FPGA器件
FPGA 综合工具并不一定保证能够充分利用芯片结构特点以达到最优目的而且工具本身也不一定非常智能,因为设计本身是复杂多样的且一直在变化,问题总会越来越多,因此在这种情况下,我们必须了解我们的器件结构, ...
- tensorflow 如何读取npy文件里的参数
import numpy as npc = np.load( "vgg16.npy" ) #npy的文件名x = c.item() #此时,x的type是一个字典nam ...
- 2018-2019-2 网络对抗技术 20165304 Exp2 后门原理与实践
后门的基本概念及实验内容 常用后门工具 netcat Win获得Linux Shell Linux获得Win Shell Meterpreter 实验内容 任务一:使用netcat获取主机操作Shel ...
- scala 读取保存文件 去除字符特殊
/** * 读取文件 * @param filename * @return */ def readFormFile(filename: String) = { var ooop = "&q ...
- 尚硅谷springboot学习34-整合SpringData JPA
SpringData简介
- Java学习--数组--判断数组中是否包含某个元素的方法
package zaLearnpackage; import org.apache.commons.lang3.ArrayUtils; import java.util.Arrays; import ...
- MAC vim安装gruvbox主题
gruvbox是一款优秀的vim配色方案,但是却不是vim自带的配色方案,这里记录一下安装过程. gruvbox官网:https://github.com/morhetz/gruvbox gruvbo ...