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到另外一个 ...
随机推荐
- 记一次使用getRequestDispatcher遇到的坑。。响应页面出现新建下载任务
getRequestDispatcher RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等. 此接口也可用于包括另一资源的内容.它是 ...
- Linux 打包压缩与搜索命令
1.tar 用于对文件进行打包压缩或解压,格式为tar[选项][文件],-f参数必须放到参数最后一位 tar -czvf etc.tar.gz /etc tar参数及作用 参数 作用 -c 创建压缩文 ...
- python yield 与 yield from转
python yield 与 yield from转 https://blog.csdn.net/chenbin520/article/details/78111399?locationNum=7&a ...
- 【手记】MTK之TASK创建及使用
首先来看看task的数据类型声明,在config\include\hal\task_config.h中对task和module类型进行了定义. /*************************** ...
- java过滤emoji表情
import java.util.regex.Matcher; import java.util.regex.Pattern; public class test { /** * 表情过滤 * */ ...
- springboot配置swagger
1,添加配置类 @Configuration @EnableSwagger2 @Profile({"default", "dev-online", " ...
- [SF] Symfony 标准 HttpFoundation\Request 实现分析
使用方式 /** * 如果直接示例化 Request 默认是没有参数的,可以自己传入 * 本方法将 PHP 超全局变量作为参数然后实例化自身(Request)进行初始化. */ $request = ...
- C# 异步示例代码
在 使用BackgroundWorker组件 一文中,阐述了在Winform编程中,使用BackgroundWorker组件实现异步调用,本文主要讲述利用委托实现异步. 以下描述摘抄于MSDN: 异步 ...
- 2016word多级列表 一级标题居中后偏左
一.如下图所示,定义好多级列表之后设置标题,但是发现标题居中后偏左. 二.选择多级列表,设置居左对齐
- 常用Macro
[enable_if] SFINAE是英文Substitution failure is not an error的缩写. 这句话什么意思呢?当调用模板函数时编译器会根据传入参数推导最合适的模板函数, ...