客户端跳转

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 属性,用于指定链接的目标

适用于完成指定位置的动态跳转

  1. <a href="new.jsp">跳转</a>
  2. <a href="http://www.runoob.com">访问菜鸟教程!</a>

2. 通过表单提交完成跳转(客户端跳转)

将整个 form 表单数据提交到方式

  1. <form name="form1" method="POST" action="new.jsp">
  2. <input type="text" name="name" />
  3. <input type="text" name="pad" />
  4. <input type="submit" value="提交" />
  5. <input type="reset" value="重置">
  6. </form>

3. 使用 JavaScript(客户端跳转)

1)可以在 JavaScript 代码里面写提交表单的写法

  1. <script type="text/javascript">
  2. function submit() {
  3. with(document.getElementById("queryFunction")){
  4. action="new.jsp";
  5. method="post";
  6. submit();
  7. }
  8. }
  9. </script>

2)可以直接定位,给 window.location 赋值,而不是提交表单

使用 replace() 方法与定位  window.location 的差别是前者没有历史记录

  1. <script type="text/javascript">
  2. function go{
  3. window.self.location="new.jsp";
  4. }
  5. </script>
  6. <!-- 或者 -->
  7. <script type="text/javascript">
  8. window.location.replace("http://www.baidu.com");
  9. </script>

3)使用 history 对象的 forword(),back(),go() 方法

其中 go() 方法需要一个整型入口参数

下面两句代码的功能相同

  1. <a href="javascript:history.back()">返回上一步</a>
  2. <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() 是通过浏览器来完成跳转的,所以在页面处理完成后才会有实际的动作。

既然已经跳转了,那么后面的输出就已经没有意义了,而且有可能会因为后面的输出导致跳转的失败。

  1. <%
  2. response.sendRedirect("http://www.baidu.com");
  3. return;
  4. %>

2)使用 setHeader() 方法,直接修改地址栏,同样可以实现页面的重定向

标准格式:response.setHeader("Refresh", "等待的秒数; url=绝对路劲或者相对路径");

  1. <%
  2. response.setHeader("refresh", "1;url=http://www.baidu.com");
  3. %>

5. 使用 requestDispatcher 类(服务器端跳转)

Servlet 可以通过两种方式得到 RequestDispatcher 对象:

-- ServletContext 的 getRequestDispatcher(String path)   path为绝对路径

-- ServletRequest 的 getRequestDispatcher(String path)    path可以为绝对路径,也可以为相对路径

  1. RequestDispatcher rd = request.getRequestDispatcher("目标页面");
  2. 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 页面跳转的实现方法的更多相关文章

  1. Jsp页面跳转和js控制页面跳转的几种方法

    Jsp 页面跳转的几种方法 1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servle ...

  2. JSP 页面跳转中的参数传递

    1. 从一个 JSP 页面跳转到另一个 JSP 页面时的参数传递 1)使用 request 内置对象获取客户端提交的信息 2)使用 session 对象获取客户端提交的信息 3)利用隐藏域传递数据 4 ...

  3. JSP页面跳转

    JSP页面跳转  RequestDispatcher.forward() 服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到 ...

  4. JSP页面跳转方式

    JSP页面跳转方式 1.利用按钮+javascript进行跳转 <input type="button" name="button2" value=&qu ...

  5. 网站开发进阶(三十七)JSP页面跳转问题解决

    JSP页面跳转问题解决 PS:本篇博文质量欠佳,仅供个人学习之用. 前言 在做Web开发时,对别人的应用(jsp+servlet)进行服务器部署时出现了页面跳转无效的情况.但是项目在本地未出现此状况. ...

  6. ASP.NET页面跳转的三大方法详解

    ASP.NET页面跳转有什么方法呢?,现在给大家介绍三种方法,他们的区别是什么呢?让我们开始吧: ASP.NET页面跳转1.response.redirect 这个跳转页面的方法跳转的速度不快,因为它 ...

  7. JSP页面之间传递参数的方法有哪些?

    JSP页面之间传递参数的方法有哪些? 解答: 1)request 2)session 3)application 4)提交表单 5)超链接

  8. JSP页面跳转的几种实现方法

    使用href超链接标记      客户端跳转 使用JavaScript               客户端跳转 提交表单                        客户端跳转 使用response ...

  9. 五种JSP页面跳转方法详解

    1. RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个 ...

随机推荐

  1. 记一次使用getRequestDispatcher遇到的坑。。响应页面出现新建下载任务

    getRequestDispatcher RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等. 此接口也可用于包括另一资源的内容.它是 ...

  2. Linux 打包压缩与搜索命令

    1.tar 用于对文件进行打包压缩或解压,格式为tar[选项][文件],-f参数必须放到参数最后一位 tar -czvf etc.tar.gz /etc tar参数及作用 参数 作用 -c 创建压缩文 ...

  3. python yield 与 yield from转

    python yield 与 yield from转 https://blog.csdn.net/chenbin520/article/details/78111399?locationNum=7&a ...

  4. 【手记】MTK之TASK创建及使用

    首先来看看task的数据类型声明,在config\include\hal\task_config.h中对task和module类型进行了定义. /*************************** ...

  5. java过滤emoji表情

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class test { /** * 表情过滤 * */ ...

  6. springboot配置swagger

    1,添加配置类 @Configuration @EnableSwagger2 @Profile({"default", "dev-online", " ...

  7. [SF] Symfony 标准 HttpFoundation\Request 实现分析

    使用方式 /** * 如果直接示例化 Request 默认是没有参数的,可以自己传入 * 本方法将 PHP 超全局变量作为参数然后实例化自身(Request)进行初始化. */ $request = ...

  8. C# 异步示例代码

    在 使用BackgroundWorker组件 一文中,阐述了在Winform编程中,使用BackgroundWorker组件实现异步调用,本文主要讲述利用委托实现异步. 以下描述摘抄于MSDN: 异步 ...

  9. 2016word多级列表 一级标题居中后偏左

    一.如下图所示,定义好多级列表之后设置标题,但是发现标题居中后偏左. 二.选择多级列表,设置居左对齐

  10. 常用Macro

    [enable_if] SFINAE是英文Substitution failure is not an error的缩写. 这句话什么意思呢?当调用模板函数时编译器会根据传入参数推导最合适的模板函数, ...