您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > JSP >

JSP页面跳转方法荟萃

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 01:56 点击:

1. response.sendRedirct("跳转到页面");

该方法通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的,使浏览器显示重定向网页的内容.

request无法传值过去.

执行完该页所有代码,然后再跳转到页面.

跳转地址栏改变.

可以跳转到其他服务器上的页面response.sendRedirct(http://www.sun.com).


2.response.setHeader();

该方法和response.sendRedirect一样,通过修改HTTP协议的HEADER部分.


<%

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);

String newLocn="/index.html";

response.setHeader("Location",newLocn);

% >


3.<jsp:forward page="跳转页面"/>

该方法是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果 在<jsp:forward>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意.

request可以传值过去.

直接跳转到页面,后面的代码不执行.

跳转后地址栏不变.

无法跳转到其他服务器上的页面.

图片不是绝对路径无法显示.


例子1:

from.jsp

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page buffer="1kb"%>

<%

long i=0;

int j = 0;

for(i=0;i<60;i++)

{

       out.println(j++);

}

%>

<jsp:forward page="to.jsp"/>


结果: 跳到to.jsp上.


例子2

from.jsp

<%@ page contentType="text/html;charset=gb2312"%>

<%@page buffer="1kb"%>


<%

long i=0;

int j = 0;

for(i=0;i<600;i++)

{

       out.println(j++);

}

%>

<jsp:forward page="to.jsp"/>

 

报错:


java.lang.IllegalStateException: Error: Attempt to clear a buffer that's already been flushed

org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:648)

org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:637)

org.apache.jsp.forward.from02_jsp._jspService(from02_jsp.java:58)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.pcvit.pan.filter.EncodingFilter.doFilter(EncodingFilter.java:19)

 

例子3:

from.jsp

<%@ page contentType="text/html;charset=gb2312"%>

<%@page buffer="1kb"%>


<%

long i=0;

int j = 0;

for(i=0;i<6000;i++)

{

       out.println(j++);

}

%>

<jsp:forward page="to.jsp"/>

 

结果: 没有跳到to.jsp上. 但是却显示出了from.jsp页面的代码执行结果.


------------------------------------------------------------------------------


                ?


------------------------------------------------------------------------------

 

4.request.getRequestDispatcher("跳转页面");

request可以传值过去.

执行完该页所有代码,然后再跳转到页面.

跳转地址栏不变.

不可以跳转到其他服务器上的页面


<%

RequestDispatcher rd = request.getRequestDispatcher("to.jsp");

rd.forwar

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • JSP与Servlet
    • 自己动手写MiniBBS系列(基本篇)之用户登录
    • JSP取当前日期
    • JDBC 入门(一)
    • 打开一个jsp页面默认查询所有数据,调用action
    • 使用JSP标签库验证用户的输入(2)完
    • 自定义JSP标签(tag)浅议
    • WIN98/2000下的jsp服务器
    • JSP内建对象(二)
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1