JSP如何实现网页重定向

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP如何实现网页重定向相关的知识,希望对你有一定的参考价值。

重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL 而当使用转发时,该URL会保持不变。重定向的速度比转发慢,因为浏览仆饭得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内的对象将无法使用。转发和重定向的区别不要仅仅为了把变量传到下一个页面而使用session作用域,那会无故增大变量的作用域,转发也许可以帮助你解决这个问题。重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。正文开始:先是看上去不同,他们的调用分别如下:request.getRequestDispatcher("apage.jsp").forward(request response);//转发到apage.jspresponse.sendRedirect("apage.jsp");//重定向到apage.jsp在jsp页面中你也会看到通过下面的方式实现转发:提到转发和重定向就不得不提到request作用域。很多初学者都知道当我们提交一个表单时,就创建了一个新的请求。实际上,当我们点击一个链接时,也创建了一个新的请求。那么一个请求的作用于到底有多大呢?例如:在页面a.jsp中有一个链接这是指向b的一个链接,而且还带了一个参数。当我们点击这个连接的时候,就产生了一个请求,为了明确起见,我们把它叫做requestA->B。现在,在b.jsp页面中我们就可以从这个请求中获取信息了。在b.jsp中你可以写入out.println(request.getParameter("id"))进行测试。下面更复杂一点,我们在b.jsp页面中增加下面的语句:request.setAttribute("name""funcreal");out.println(request.getAttriblute("name"));//成功显示了name变量的值。现在在b.jsp中再增加一个链接:这是指向c的一个链接,而且还带了一个参数当我们点击这个连接的时候,将产生一个新的请求,这时requestA-B也就安息了,新的请求叫做requestB-C。同样的道理,在c.jsp中,我们可以访问到的变量只有age,因为id,name这两个变量都属于requestA-B,此时他已经不存在了。下面是源代码:a.jsp指向b.jsp,而且还带了一个参数id=1。requestA-B现在诞生了b.jsprequestA-B已经结束了。指向c.jsp,而且还带了一个参数age=23c.jspd.jsprequestB-C的魔爪已经伸到了d.jsp页面运行程序,你会发现c页面中的内容没有显示出来,因为forward是自动执行的,地址栏中虽然是c.jsp但实际上,但浏览器中显示的已经是d.jsp的内容了,而且看到了从b.jsp传过来的参数。你可以简单得这样理解:转发,就是延长了requestB-C的作用域,,这一句话实际上是把c.jsp和d.jsp粘到了一起,他们就像是在一个页面中。 参考技术A jsp实现页面的重定向,使用的是response.sendRedirect("a.jsp");实现页面重定向到a.jsp这个页面。
分为两种写法:

1、如果实在jsp页面中写代码的话,将response.sendRedirect("a.jsp");放在<%%>里面就行了,即:<%response.sendRedirect("a.jsp");%>
2、如果是在java文件(如servlet)中写代码的话,只需写response.sendRedirect("a.jsp");就行了。
接下来简单说说页面的转发(forward)与重定向(sendRedirect)的区别:
重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。

如何使用js 重定向到原来的页面

比如上传成功后,还定位的到原来的页面,大虾怎么写呀?
虾米谢了!

  在现行的网站应用中URL重定向的应用有很多:
  404页面处理、网址改变、多个网站地址等;
  本质上就是将当前使用者的网址从一个网址导向到另外的一个网址上面去;
  实现重定向的方式有很多种,有服务器端配置、后端程序重定向处理、前端js重定向;
  前端重定向的实现:
  在众多的BOM对象中,location算是最重要的对象之一了,使用location可以通过多种方式来改变浏览器的位置,如:
  location.assign("http://www.baidu.com");
  window.location="http://www.baidu.com";
  location.href="http://www.baidu.com";
  另外修改location对象的其他属性也可以改变当前加载的页面。
参考技术A 如果能保证该页不会被非法访问.用
history.back(-1);
就OK了.

或者你可以先判断该页的来源:
比如你原来的页面叫abc.aspx.
if(document.referrer.indexOf("abc.aspx")>0)
location.href=document.referrer;
本回答被提问者采纳
参考技术B Response.Write("<script>history.back(-1);</script>);
你试试看,,
这个就是返回上一页的js
参考技术C history.back();

以上是关于JSP如何实现网页重定向的主要内容,如果未能解决你的问题,请参考以下文章

SpringMVC框架如何实现请求转发和重定向呢?

Java Servlets / JSP-如何从Java页面将用户重定向到JSP网页?

如何使用modelandview进行重定向

如何使用HTTP重定向(在Django)来传递信息

会话超时后如何将用户重定向到自定义网页?

在 JSP 中重定向页面?