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到另外一个 ...
随机推荐
- 0 Python学习计划
每天一小节,坚持水滴石穿. 2019-4-1 景略
- [WSGI]WSGI的服务端怎么实现?
WSGI ( Python Web Server GateWay Interface) 是一个用在python web server 跟web application 之间的协议,遵从WSGI协议设计 ...
- docker php容器中简单添加seaslog拓展
最近有个项目用到了seaslog,因为之前调试php的容器已经搭好了,不想再通过dockerfile重新搭建了,搜了半天没有东西可以装,就仿照着安装redis拓展操作了一顿 1.wget http:/ ...
- nginx 的安装、启动、停止与重启
一.nginx 基本介绍 1.Nginx 是单进程单线程模型,也就是启动的工作进程只有一个线程响应客户端请求,而 apache 可以在一个进程内启动多个线程响应客户端请求.所以 nginx 的内存占用 ...
- 贝叶斯公式与最大后验估计(MAP)
1, 频率派思想 频率派思想认为概率乃事情发生的频率,概率是一固定常量,是固定不变的 2, 最大似然估计 假设有100个水果由苹果和梨混在一起,具体分配比例未知,于是你去随机抽取10次,抽到苹果标记为 ...
- 安装和使用Docker(Windows7)
1.Boot2Docker Boot2Docker是实现Docker的软件.Windows下的Docker只适合于开发测试(大部分人也就是干开发测试的..),不适合于生产环境. Boot2Docker ...
- Post返回json中文乱码
来源:http://blog.csdn.net/xiaoxuonl/article/details/54315612 服务器返回的是utf-8,jsp页面上也是utf-8,数据库也是utf-8怎么就是 ...
- UVALive 3942 Remember the Word
题意:给出一个由S个不同单词组成的字典和一个长字符串.把这个字符串分解成若干个单词的连接(单词可以重复 使用),有多少种方法? Sample Input abcd 4 a b cd ab Sample ...
- “AS3.0高级动画编程”学习:第一章高级碰撞检测
AdvancED ActionScript 3.0 Animation 是Keith Peters大师继"Make Things Move"之后的又一力作,网上已经有中文翻译版本了 ...
- Dubbo 的配置主要分为三大类
服务发现.服务治理和性能调优:这三类配置不是独立存在的,而是贯穿在所有配置项中的,比如dubbo:service 标签中的interface 是服务发现类, timeout是性能调优类, mock 是 ...