使用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. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  2. EasyMesh - A Two-Dimensional Quality Mesh Generator

    EasyMesh - A Two-Dimensional Quality Mesh Generator eryar@163.com Abstract. EasyMesh is developed by ...

  3. 创建 OVS flat network - 每天5分钟玩转 OpenStack(134)

    上一节完成了 flat 的配置工作,今天创建 OVS flat network.Admin -> Networks,点击 "Create Network" 按钮. 显示创建页 ...

  4. SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]

    目录 SignalR系列目录 前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的 ...

  5. ASP.NET Core 1.1.0 Release Notes

    ASP.NET Core 1.1.0 Release Notes We are pleased to announce the release of ASP.NET Core 1.1.0! Antif ...

  6. js实现前端分页页码管理

    用JS实现前端分页页码管理,可以很美观的区分页码显示(这也是参考大多数网站的分页页码展示),能够有很好的用户体验,这也是有业务需要就写了一下,还是新手,经验不足,欢迎指出批评! 首先先看效果图: 这是 ...

  7. css实现单行,多行文本溢出显示省略号……

    1.单行文本溢出显示省略号我们可以直接用text-overflow: ellipsis 实现方法: <style> .div_text{width: 300px; padding:10px ...

  8. C#多线程之线程同步篇3

    在上一篇C#多线程之线程同步篇2中,我们主要学习了AutoResetEvent构造.ManualResetEventSlim构造和CountdownEvent构造,在这一篇中,我们将学习Barrier ...

  9. Android Studio —— 重装 HAXM

    Android Studio -- 重装 HAXM 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. Android SDK 自带模拟器一直以慢.卡 ...

  10. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...