`
lncygyh
  • 浏览: 46037 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类

JSP页面跳转的几个方法

    博客分类:
  • JSP
阅读更多
1. RequestDispatcher.forward()
在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet或者是JSP到另外的一个Servlet、JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同时forward()无法在后面带参数传递,比如servlet?name=frank,这样不行,可以程序内通过response.setAttribute("name",name)来传至下一个页面。
   重定向后浏览器地址栏URL不变。
  例:在servlet中进行重定向
  public void doPost(HttpServletRequest request,HttpServletResponse response)
                                throws ServletException,IOException{
  response.setContentType("text/html; charset=gb2312");
  ServletContext sc = getServletContext();
  RequestDispatcher rd = null;
  rd = sc.getRequestDispatcher("/index.jsp"); //定向的页面
  rd.forward(request, response);
  }
  通常在servlet中使用,不在jsp中使用。


2. response.sendRedirect()
  在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,同时它可以重定向至不同的主机上,sendRedirect()可以重定向有frame.的jsp文件.
  重定向后在浏览器地址栏上会出现重定向页面的URL。
  例:在servlet中重定向
  public void doPost(HttpServletRequest request,HttpServletResponse response)
                                throws ServletException,IOException{
  response.setContentType("text/html; charset=gb2312");
  response.sendRedirect("/index.jsp");
  }
   由于response是jsp页面的隐含对象,故在jsp页面中可用response.sendRedirect()直接实现重定位。
  注意:
  (1) 使用response.sendRedirect时,前面不能有HTML输出;
这并不是绝对的,不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制,一般在8K(我是说 JSP SERVER),这就意味着,除非你关闭了cache,或者你使用了out.flush()强制刷新,那么在使用sendRedirect之前,有少量的HTML输出也是允许的。
  (2) response.sendRedirect之后,应该紧跟一句return。
  我们已经知道response.sendRedirect是通过浏览器来做转向的,所以只有在页面处理完成后,才会有实际的动作。既然你已经要做转向了,那么后的输出还有什么意义呢?而且有可能会因为后面的输出导致转向失败。
  比较:
  (1) Dispatcher.forward()是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;
  (2) response.sendRedirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。
  前者更加高效,在前者可以满足需要时,尽量使用RequestDispatcher.forward()方法。
  在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使HttpServletResponse.sendRequest()方法。


3. <jsp:forward page="" />
  它的底层部分是由RequestDispatcher来实现的,因此它带有RequestDispatcher.forward()方法的印记。
  如果在之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意。
  注意:它不能改变浏览器地址,刷新的话会导致重复提交


4. 修改HTTP header的Location属性来重定向
  通过设置直接修改地址栏来实现页面的重定向。
  jsp文件代码如下:
  <%
  response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
  String newLocn = "/newpath/jsa.jsp";
  response.setHeader("Location",newLocn);
  %>


5. JSP中实现在某页面停留若干秒后,自动重定向到另一页面
  在html文件中,下面的代码:
  <meta http-equiv="refresh" content="300; url=target.jsp">
  它的含义:在5分钟之后正在浏览的页面将会自动变为target.html这一页。代码中300为刷新的延迟时间,以秒为单位。targer.html为你想转向的目标页,若为本页则为自动刷新本页。
  由上可知,可以通过setHeader来实现某页面停留若干秒后,自动重定向到另一页面。代码:
  String content=stayTime+";URL="+URL;
  response.setHeader("REFRESH",content);

分享到:
评论

相关推荐

    JSP页面跳转方法大全

    先来介绍一下在服务端JSP脚本中跳转页面的几种方法: 1. response.sendRedirct(“跳转到页面”); 该方法通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的,使浏览器显示重定向网页的内容. request无法传值过去...

    jsp中几个页面之间跳转

    认清什么是绝对路径,什么是相对路径的问题

    关于JSP页面间的传参问题

    平时在项目过程中总结了几点关于jsp页面间的传值方法 之前也上传过这样的资源,但其中有些小问题,呵呵,这是经过自己修改过的,想和朋友们一起分享下,也许还有问题,希望朋友们指点噢。

    jsp下页面跳转的几种方法小结

    1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet或者是JSP到另外的一个Servlet、JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了...

    JavaScript实现x秒后自动跳转到一个页面

    在网上搜了一下,关于这个技术处理有多种方法,我只记下我在视频里学到的三种: 1、用一个response.sendRedirect(“目标页面.jsp\.htm”);实现直接跳转; 2、有时我们需要有点提示,比如“x秒后自动跳转,若没有跳转...

    android:多个Activity跳转的小结

    在android开发中Activity相当于web开发的页面,或者说如j2ee开发中对应的jsp页面。在开发jsp时,经常会遇到页面跳转的问题,在android也同样会遇到。以下的几个例子是我对android的Activity跳转的小结。

    js页面跳转常用的几种方式

    第一种: 代码如下: [removed] [removed].href=”jb51.jsp?backurl=”+[removed].href; [removed] 第二种: 代码如下: [removed] alert(“返回”); window.history.back(-1); [removed] 第三种: 代码如下: ...

    jsp分页插件带演示实例说明

    2、接口里面包含四个方法 (1)、public List doSelect(int recordStart,int sizePage),参数recordStart表示从第几条 记录开始查询。参数sizePage表示一次查几条记录。返回一个list对象(该list对象可以是 一个记录集...

    JavaScript实现页面跳转的几种常用方式

    本文实例讲述了JavaScript实现页面跳转的几种常用方式。分享给大家供大家参考,具体如下: 第一种: [removed] [removed].href="login.jsp?backurl="+[removed].href; [removed] 第二种: [removed] alert&#...

    jsp 分页代码大全

    有上一页、下一页、首页、尾页、第几页、还有带数字和点的分页。可以说是非常好的分页代码。想要的朋友自己处下载 ; charset=GB2312" language="java" import="java.sql.*" errorPage="" %> *" %> *" %> java.sql...

    jsp 连接mysql数据库的操作

    内容介绍:实现页面的跳转;注册登录时实现读取数据库,并对数据库实现插入(insert)和查询(select)功能。 几点注意:sqljdbc.jar包的导入和环境变量;数据库的登录读取,可以参考数据库的测试。

    基于JSP+JavaBean+Servlet三层架构员工考勤管理系统源码+数据库+项目说明.zip

    1. 软件开发流程(可说明软件的开发流程包括几个阶段,每个阶段做什么任务,出什么文档)z 1) 分析理解前端页面,将前端的html页面改成Jsp页面,JSP页面加入page标签 2) 将JSP页面中的静态数据 修改为从数据库查询到...

    JSP中的include有几种形式?都有什么区别?

    JSP中的include有哪些?有什么区别? 1、JSP中的include有哪些 ... 您可能感兴趣的文章:springMVC几种页面跳转方式小结JSP中include指令和include行为的区别springMVC使用jsp:include嵌入页面的两种方法(推荐)

    毕业设计-基于JSP的中华美食网-设计与实现(源码+论文+视频).zip

    订餐系统首页设计采用CSS,DIV和HTML排版文件模块的调用,页面分成上下左右几个部分。首页面运行如下: 图4.1系统首页 4.2注册页面设计 会员注册页面设计,用户注册需要填写相关的注册资料,填写完成后,提交给...

    struts1流程和原理

    struts1的几个核心组件是值得我们注意的: 1 、ActionServlet(核心控制器)。 2、RequestProcessor类(处理... 5、ActionForward(页面跳转,跳转到jsp组件)。  6、ActionMapping(配置每个Action所对应的映射关系)。

    基于ssm+jsp的水果商城系统(源码+LW+PPT).zip

    水果商城系统需要满足的需求有以下几个: 1.水果库管理,在水果库管理页面中可以查看商品编号、商品名称、图片、产地、简介、积分、价格等信息,并可根据需要对已有水果库管理进行修改或删除。 2.用户管理,在用户...

    jspPageControlor分页插件11.2版

    2、接口里面包含四个方法 (1)、public List doSelect(int recordStart,int sizePage),参数recordStart表示从第几条记录开始查询。参数sizePage表示一次查几条记录。返回一个list对象(该list对象可以是 一个记录集...

    基于SSM+vue社区文化宣传网站+jsp(源码+部署说明+演示视频+源码介绍).zip

    功能模块:该网站主要包括以下几个功能模块:首页、活动列表、活动详情、活动报名、个人中心等。用户可以通过这些模块了解社区的活动信息、报名参加活动以及查看个人信息等。 技术栈:前端采用Vue.js框架,实现了...

    Java毕业设计:基于ssm+jsp的水果商城系统(源码+文档+PPT+录像演示).zip

    水果商城系统需要满足的需求有以下几个: 1.水果库管理,在水果库管理页面中可以查看商品编号、商品名称、图片、产地、简介、积分、价格等信息,并可根据需要对已有水果库管理进行修改或删除。 2.用户管理,在用户...

    SpringMVCStudy:在SpringMVC中学习的一些记录,先学习jsp语法

    SpringMVCStudy在这个项目中,SpringMVC中学习的一些记录,先学习jsp语法项目启动后,默认浏览器输入访问:此外还有几个controller定义几个类访问。仅仅作为HelloWorld的demo使用,暂无后续学习内容的更新,只是用来...

Global site tag (gtag.js) - Google Analytics