JSP页⾯跳转的⼏种实现⽅法
使⽤href超链接标记客户端跳转
使⽤客户端跳转
提交表单客户端跳转
使⽤response对象客户端跳转jsp页面输出的三种方式
使⽤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 = Parameter("name");
String psd = Parameter("psd");
if(name.equals("admin")&&psd.equals("123")){%>
<script type="text/javascript">
window.location="login03.jsp";
</script>
<% }
else{ %>
<script type="text/javascript">
window.location="www.baidu";
alert(window.location.href);
</script>
<% }%>
页⾯1提交到页⾯2之后代码负责判断然后通过js代码进⾏跳转
3、
<%response.setCharacterEncoding("utf-8");
response.setHeader("iso-8859-1","utf-8");
request.setCharacterEncoding("utf-8");
String name = Parameter("name");
String psd = Parameter("psd");
if(name.equals("admin")&&psd.equals("123")){
response.sendRedirect("www.baidu");//路径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 = Parameter("name");
String psd = Parameter("psd");
if(name.equals("admin")&&psd.equals("123")){
// response.sendRedirect("www.baidu");
// return;
response.setHeader("Refresh","1;url=www.baidu");
}
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 = RequestDispatcher("⽬标页⾯");
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⼊⼝。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论