客户端跳转

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 页面跳转的实现方法的更多相关文章

  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. 关于全局变量,static,define和const

        其实按照现在主流的观点,应该尽量少用全局变量和define,尽量多用临时变量,并且用const替换值define,用短小精悍的函数替换函数define.     对这些我倒是也没有什么意见,只 ...

  2. Android APK反编译(二)

    参考:APK反编译 工具介绍 apktool 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar 作用:将apk反编译成java源码(classes.dex转化成jar文件) ...

  3. 分享自己用的php分页类实例源码

    分享一个我自己用着的php分页类实例源码,供大家参考,具体内容如下: <?php /** file: page.class.php 完美分页类 Page */ class Page { priv ...

  4. @PostConstruct注解小结

    1.在具体Bean的实例化过程中,@PostConstruct注解的方法,会在构造方法之后,init方法之前进行调用2.在项目中@PostConstruct主要应用场景是在初始化Servlet时加载一 ...

  5. js:一些基础

    JavaScript 基础(一)   JavaScript的引入方式 直接编写 <!DOCTYPE html> <html lang="en"> <h ...

  6. 使用Idea从github上获取项目

    转载自:https://www.cnblogs.com/30go/p/7909246.html 整体分三步: 下载和安装git 配置idea 从git获取项目 详细步骤: 1. 下载和安装git 下载 ...

  7. Django中ORM实际应用

    1. Django中ORM的使用 1. 手动新建一个数据库 2. 告诉Django连接哪个数据库 settings.py里面配置数据库连接信息: # 数据库相关的配置项 DATABASES = { ' ...

  8. Json、JavaBean、Map、XML之间的互转

    思路是JavaBean.Map.XML都可以用工具类很简单的转换为Json,进而实现互相转换 1.Map.XML与Json互转 mvn依赖 <dependency> <groupId ...

  9. (转)IIS7无法读取配置文件解决办法

    web.config 太大导致”出现无法读取配置文件,因为它超过了最大文件大小”错误问题的解决方法,如下:HKLM\SOFTWARE\Microsoft\InetStp\Configuration\M ...

  10. tensorflow_目标识别object_detection_api,RuntimeError: main thread is not in main loop,fig = plt.figure(frameon=False)_tkinter.TclError: no display name and no $DISPLAY environment variable

    最近在使用目标识别api,但是报错了: File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/script_o ...