JSP页面跳转的几种实现方法
使用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页面跳转的几种实现方法的更多相关文章
- Jsp页面跳转和js控制页面跳转的几种方法
Jsp 页面跳转的几种方法 1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servle ...
- js 控制页面跳转的5种方法
js 控制页面跳转的5种方法 编程式导航: 点击跳转路由,称编程式导航,用js编写代码跳转. History是bom中的 History.back是回退一页 Histiory.go(1)前进一页 Hi ...
- Flex页面跳转的五种实现方式
Flex页面跳转有很多值得学习的地方,本文向大家介绍一下Flex页面跳转的几种方式,主要包括五种方式,这里为大家一一介绍. AD: 在学习Flex的过程中,你可能会遇到Flex页面跳转的概念,这里 ...
- JSP页面跳转方式
JSP页面跳转方式 1.利用按钮+javascript进行跳转 <input type="button" name="button2" value=&qu ...
- 实现网页页面跳转的几种方法(meta标签、js实现、php实现)
1.meta标签实现 只需在head里加上下面这一句就行了,在当前页面停留0.1秒后跳转到目标页面 代码如下 复制代码 1 <meta http-equiv="refresh&quo ...
- 网站开发进阶(三十七)JSP页面跳转问题解决
JSP页面跳转问题解决 PS:本篇博文质量欠佳,仅供个人学习之用. 前言 在做Web开发时,对别人的应用(jsp+servlet)进行服务器部署时出现了页面跳转无效的情况.但是项目在本地未出现此状况. ...
- JSP 页面跳转中的参数传递
1. 从一个 JSP 页面跳转到另一个 JSP 页面时的参数传递 1)使用 request 内置对象获取客户端提交的信息 2)使用 session 对象获取客户端提交的信息 3)利用隐藏域传递数据 4 ...
- js实现页面跳转的两种方式
CreateTime--2017年8月24日08:13:52Author:Marydon js实现页面跳转的两种方式 方式一: window.location.href = url 说明:我们常用 ...
- JSP页面跳转
JSP页面跳转 RequestDispatcher.forward() 服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到 ...
随机推荐
- [翻译]开发文档:android Bitmap的高效使用
内容概述 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently",包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存 ...
- JavaScript性能优化
如今主流浏览器都在比拼JavaScript引擎的执行速度,但最终都会达到一个理论极限,即无限接近编译后程序执行速度. 这种情况下决定程序速度的另一个重要因素就是代码本身. 在这里我们会分门别类的介绍J ...
- transtion:过渡动画
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px Monaco; color: #4f5d66 } p.p2 { margin: 0.0px 0 ...
- 07.LoT.UI 前后台通用框架分解系列之——强大的文本编辑器
LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(75)-微信公众平台开发-用户管理
系列目录 前言 本节主要是关注者(即用户)和用户组的管理,微信公众号提供了用户和用户组的管理,我们可以在微信公众号官方里面进行操作,添加备注和标签,以及移动用户组别,同时,微信公众号也提供了相应的接口 ...
- ASP.NET Core中如影随形的”依赖注入”[下]: 历数依赖注入的N种玩法
在对ASP.NET Core管道中关于依赖注入的两个核心对象(ServiceCollection和ServiceProvider)有了足够的认识之后,我们将关注的目光转移到编程层面.在ASP.NET ...
- 如何利用tcpdump对mysql进行抓包操作
命令如下: tcpdump -s -l -w - dst -i eno16777736 |strings 其中-i指定监听的网络接口,在RHEL 7下,网络接口名不再是之前的eth0,而是 eno16 ...
- 在jekyll模板博客中添加网易云模块
最近使用GitHub Pages + Jekyll 搭建了个人博客,作为一名重度音乐患者,博客里面可以不配图,但是不能不配音乐啊. 遂在博客里面引入了网易云模块,这里要感谢网易云的分享机制,对开发者非 ...
- Three.JS 从世界坐标系转换到屏幕坐标系
var projector = new THREE.Projector(); var world_vector = new THREE.Vector3(0,0,1); var vector = pro ...
- Tableau未必最佳,国内BI也能突破重围!
如今,百度一下商业智能或BI工具,总能看到Tableau的身影.并不是Tableau的营销做得好,而是国内对于商业智能工具的认知和选择似乎都落在了Tableau身上.导致不管业内业外都对商业智能的概念 ...