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到另外一个 ...
随机推荐
- mysql python 交互
一.安装 sudo apt-get install pymysql sudo pip3 install pymysql Connection对象 用于建立与数据库的连接 创建对象:调用connect( ...
- PG数据库基本命令——查询(笔记)
1.插入数据(insert 语句) 语法: INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1, ...
- DOM编程艺术章12:一个简单的Ajax例子
大概入了JavaScript的门,现在要回过头恶补Ajax和json了,随手翻到dom编程艺术发现有一个适合回忆的例子,先抄录下来,引入对Ajax作用的大概印象,再去掰开了研究. <!DOCTY ...
- 在Kali Linux中下载工具Stegsolve
关键字:Java,Stegsolve,Write Up 一.首先需要配置Java环境. 1.下载最新的Java JDK. 注意选择Accept License Agreement,并下载.tar.gz ...
- vue-Swiper-awsome
<swiper :options="swiperOption"> <swiper-slide><img src="static/images ...
- django后台admin csv 格式表格导出
1.在app下新建一个.py文件 此例commen.py commen.py (内容)(具体怎么导出的也不知道这么写就对了) import csv from django.http import H ...
- ServerSocket详解及线程阻塞_03
ServerSocket详解构造方法ServerSocket()ServerSocket(int port)ServerSocket(int port ,int backlog)serverSocke ...
- redis 安装启动
1.解压 tar -zxvf redis文件 2. make 3. cp redis-server redis-cli /usr/local/redis cp redis.conf /usr/loca ...
- UICollectionView didSelectItemAtIndexPath实现方法
didSelectItemAtIndexPath是通过UIResponder的四个touch方法实现的(touchBegan, touchMove, touchEnd, touchCancel),因此 ...
- JS数据类型之String类型
转换为字符串 var num = 10 num.toString(); //"10" 转换为字符串-参数表示几进制的字符串 var stringValue = "hell ...