客户端跳转

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. 11. java中路径/和\的区别

    一般可以认为是"/"的作用等同于"\\"在java中路径一般用"/"windows中的路径一般用"\"linux.uni ...

  2. python Excel数据导出

    import pymysql,os,time,xlwtpymysql.install_as_MySQLdb() try: #创建一个excel工作簿,编码utf-8,表格中支持中文 wb=xlwt.W ...

  3. python web编程之网络基础

    1.TCP/IP协议 1)分层 应用层,传输层,网络层,接口层 2)Ip地址 3)域名 4)URL统一资源定位符 格式:    [协议]://[主机]:[端口]/[路径]?[参数] 协议是HTTP,F ...

  4. 第五篇、Python之迭代器与生成器

    1.迭代和递归等概念 循环(loop):指的是在满足条件的情况下,重复执行同一段代码.比如,while语句,for循环. 迭代(iterate):指的是按照某种顺序逐个访问列表中的每一项.比如,for ...

  5. MM-移动类型

    链接:SAP移动类型   移动类型 备注 业务类型 SAP中事务代码 备注 101 采购订单收货.生产订单收货 收货 migo CO11N顶层处理移动类型\跨工厂收货 102 采购订单收货冲销 收货 ...

  6. JPA报错问题修改小结

    项目中在使用线程跑定时任务时,遇到报错,"Could not open JPA EntityManager for transaction Caused by: org.hibernate. ...

  7. css样式基础详解

    一.字体属性:(font) 1.大小 {font-size: x-large;}(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX.PD 2.样式 {font-styl ...

  8. 同时安装 Python 2 与Python 3 的方法及pip模块的下载安装

    Python虽然功能强大,上手容易,但版本问题却是个烦人的问题. Python 2.x 和 Python 3.x 版本之间存在很大的不兼容. 同时安装Python2.x和Python3.x 1. 在P ...

  9. 图论.DP

    见题: 看一眼,就知道是个依赖性背包,于是乎就草草的打了树上DP,一交发现才20,仔细检查也没错呀,忍不住点了题解,只喵一眼看到了强联通缩点等的字样,又重新审了一遍题,发现这句话理解有偏差:软件i只有 ...

  10. maven的pom.xml文件详解

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...