使用href超链接标记      客户端跳转

使用JavaScript               客户端跳转

提交表单                        客户端跳转

使用response对象      客户端跳转

使用forward总做标记  服务器跳转

使用requestDispatcher类 服务器跳转

1、

<form name="form1" method="POST" action="login02.jsp">
<input type="text" name="name">
<input type="text" name="psd">
<input type="submit" value="提交">
<input type="reset" value="重置">

2、

<%response.setCharacterEncoding("utf-8");
response.setHeader("iso-8859-1","utf-8");
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String psd = request.getParameter("psd");
if(name.equals("admin")&&psd.equals("123")){%>
<script type="text/javascript">
window.location="login03.jsp";
</script>
<% }
else{ %>
<script type="text/javascript">
window.location="http://www.baidu.com";
alert(window.location.href);
</script>
<% }%>

页面1提交到页面2之后 Java代码负责判断 然后通过js代码进行跳转

3、

<%response.setCharacterEncoding("utf-8");
response.setHeader("iso-8859-1","utf-8");
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String psd = request.getParameter("psd");
if(name.equals("admin")&&psd.equals("123")){
response.sendRedirect("http://www.baidu.com");//路径001
return;
}
else{
response.sendRedirect("login01.jsp");
return;
}
%>

页面1提交到页面3之后通过 response对象的sendredirect()方法 重定向

在上段代码的路径001中说明一点 sendredirect()中的URL是可以带参数 eg sendredirect("url?name="+name);

重定向 顺便传递参数 sendredirect注意的第二点:一般此句之后紧跟一句 return;(原因:通过sendredirect方法做重定向是在页面处理完之后才会有实际动作的,譬如上个例子里 页面的用户名 密码输入完毕 点击提交 然后后一个页面判断 判断完即处理完 页面3是不需要输出的 也是输不出来东西的 没有return再有别的输出是没有意义的 而且有的时候芳儿因为无意义的输出而报错)

使用 response对象实现页面的跳转有2中方法 上面是一种 下面这种是是利用 setHeader()方法

还是页面1提交 把页面3的代码修改一下就可以了:

<%response.setCharacterEncoding("utf-8");
response.setHeader("iso-8859-1","utf-8");
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String psd = request.getParameter("psd");
if(name.equals("admin")&&psd.equals("123")){
// response.sendRedirect("http://www.baidu.com");
// return;
response.setHeader("Refresh","1;url=http://www.baidu.com");
}
else{
// response.sendRedirect("login01.jsp");
// return;
response.setHeader("Refresh","1;url=login01.jsp");
}
%>

response.setHeader("Refresh","等待的秒数;url=绝对路径或者相对路径"); 路径问题sendredirect也一样 绝对路径相对路径都没意见 上例都是等待1秒之后跳转

response重定向和forward跳转的区别

response:1执行完所有的代码再跳转到目标页 2跳转到目标页后浏览器的URL会改变 3在浏览器中重定向 4可以跳转到其他服务器上的页面 eg:百度。

forward跳转:1直接跳转到目标网页 其后的代码不再执行 2跳转到目标页后URL不变 虽然URL显示的是index1.jsp 但其实你看的index2。jsp的内容 3在服务器端重定向 4无法跳转到其他服务器上的页面

RequestDispatcher类

基本方法

RequestDispatcher  rd = request.getRequestDispatcher("目标页面");

rd.forward(response,request);

使用 RequestDispatcher跳转与forward动作标记实现页面跳转的基本原理是一样的。

RequestDispatcher与response重定向跳转的区别:1执行完所有代码再跳转到目标页 2跳转到目标页后URL不变 虽然URL显示的是index1.jsp 但其实你看的index2.jsp的内容 3在服务器端重定向 4无法跳转到其他服务器上的页面

RequestDispatcher与forward动作标记跳转的区别:forward 1 forward动作标记之后的代码不再执行 立即跳转到目标页面 2指定目标页面时既可以用绝对路径也可以用相对路径

RequestDispatcher跳转 1执行完所有代码 包括RequestDispatcher之后的所有代码再跳转到目标页面 2指定目标页面时只能用绝对路径

Servlet可通过两种方式得到RequestDispatcher对象:调用ServletContext的getRequestDispatcher(String path)方法,path参数指定目标组件的路径。调用ServletRequest的getRequestDispatcher(String path)方法以上两种方式的区别在于,前者的path参数必须是绝对路径,而后者的path参数可以是绝对路径,也可以是相对路径。所谓绝对路径,就是指以符号"/"开头的路径,"/"表示当前web应用的URL入口。

JSP页面跳转的几种实现方法的更多相关文章

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

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

  2. js 控制页面跳转的5种方法

    js 控制页面跳转的5种方法 编程式导航: 点击跳转路由,称编程式导航,用js编写代码跳转. History是bom中的 History.back是回退一页 Histiory.go(1)前进一页 Hi ...

  3. Flex页面跳转的五种实现方式

    Flex页面跳转有很多值得学习的地方,本文向大家介绍一下Flex页面跳转的几种方式,主要包括五种方式,这里为大家一一介绍. AD:   在学习Flex的过程中,你可能会遇到Flex页面跳转的概念,这里 ...

  4. JSP页面跳转方式

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

  5. 实现网页页面跳转的几种方法(meta标签、js实现、php实现)

    1.meta标签实现 只需在head里加上下面这一句就行了,在当前页面停留0.1秒后跳转到目标页面  代码如下 复制代码 1 <meta http-equiv="refresh&quo ...

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

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

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

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

  8. js实现页面跳转的两种方式

      CreateTime--2017年8月24日08:13:52Author:Marydon js实现页面跳转的两种方式 方式一: window.location.href = url 说明:我们常用 ...

  9. JSP页面跳转

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

随机推荐

  1. C语言 · 高精度加法

    问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储.对于这种问题,一般使用数组来处理. 定义一个数组A ...

  2. Shell特殊变量

    $ 表示当前Shell进程的ID,即pid $echo $$ 运行结果 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数 ...

  3. Dapper where Id in的解决方案

    简单记一下,一会出去有点事情~ 我们一般写sql都是==>update NoteInfo set NDataStatus=@NDataStatus where NId in (@NIds) Da ...

  4. HTML文档头部

    前面的话   在声明文档类型之后,HTML文档的下一部分为<html>标签,告知浏览器应将括在<html>...</html>内的所有内容解析为HTML.然后是HT ...

  5. 用神奇的currentColor制作简洁的颜色动画效果

    先上一个兼容性总结图:老版本ie可以直接用复杂方法了,套用某表情包的话:  2016年了,做前端你还考虑兼容IE6?你这简直是自暴自弃! 好了,知道了兼容性,我们可以放心的使用了. 在CSS3中扩展了 ...

  6. .Net Core上也可以使用的二维码组件

    我Fork了QRCoder,并且兼容了.Net Core,图形库用的是ZKWeb.System.Drawing Github: https://github.com/zkweb-framework/Q ...

  7. Java消息队列--ActiveMq 实战

    1.下载安装ActiveMQ ActiveMQ官网下载地址:http://activemq.apache.org/download.html ActiveMQ 提供了Windows 和Linux.Un ...

  8. [原] KVM 环境下MySQL性能对比

    KVM 环境下MySQL性能对比 标签(空格分隔): Cloud2.0 [TOC] 测试目的 对比MySQL在物理机和KVM环境下性能情况 压测标准 压测遵循单一变量原则,所有的对比都是只改变一个变量 ...

  9. js参数arguments的理解

    原文地址:js参数arguments的理解 对于函数的参数而言,如下例子 function say(name, msg){ alert(name + 'say' + msg); } say('xiao ...

  10. iosselect:一个js picker项目,在H5中实现IOS的select下拉框效果

    具体文档和demo可以访问github:https://github.com/zhoushengmufc/iosselect 移动端浏览器对于select的展示样式是不一致的,ios下是类似原生的pi ...