JSP页面跳转大全

(1). forward()方法

使用到javax.servlet.RequestDispatcher类

RequestDispatcherrd=getServletContext().getRequestDispatcher("url");

rd.forward(requestVar,requestVar);//传递servlet的入口参数

/*forward函数已经把原页面的request,response对象传入新的页面,因此这新旧页面拥有相同的request,response对象。request.getparameter("var")就可以得到相应的值.*/

/*forward()是直接在server做的,浏览器并不知道,也不和浏览器打交道,浏览器的地址不变化。*/

即:

getServletContext().getRequestDispatcher("url").forward(requestVar,responseVar);

服务器端Servlet进行转向的4种方法:

1.ServletContext的getRequestDispatcher()

2.ServletContext的getNamedDispatcher()

3.ServletRequest的getRequestDispatcher()

4.ServletResponse的sendredirect()进行转向。

forward方法,因为这些这样比较高效。只有在forward方法不能使用时,再使用servletresponse的sendredirect()方法。

(2).response.sendRedirect(url);

其实是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,所以用sendRedirect时,浏览器的地址栏上可以看到地址的变化。新页面不能处理旧页面的pagecontext(request,response,...)对象.

在response.sendRedirect之后,应该紧跟一句return;

(3).HTML语言的自动跳转

<html>

<head>

<metahttp-equiv="refresh"content="0;url="http://www.baidu.com">

0是等待时间,如果设置为5表示等待5s后开始跳转

</head>

…………

(4).JavaScript跳转

A:<scriptlanguate="javascript">

window.location.replace("http://www.baidu.com");

</script>

B:也可以直接给window.location属性赋值,window.location="url",与A不同的是有历史记录

C:<scriptlanguate="javascript">

document.location.href("http://www.google.com");

</script>

对于document,location不是不是对象,document.location=document.url

D:history对象的forward(),back(),go()方法.go()方法需要一个整形入口参数

<ahref="javascript:history.go(-1)">返回上一步</a>

等价于<ahref="javascript:history.back()">返回上一步</a>

E:document.formName.action="test.jsp";

document.formName.submit();//使用JS提交的方式

第一种:

<scriptlanguage="javascript"type="text/javascript">

window.location.href="login.jsp?backurl="+window.location.href;

</script>

第二种:

<scriptlanguage="javascript">

alert("返回");

window.history.back(-1);

</script>

第三种:

<scriptlanguage="javascript">

window.navigate("top.jsp");

</script>

第四种:

<scriptlanguage="JavaScript">

self.location='top.htm';

</script>

第五种:

<scriptlanguage="javascript">

alert("非法访问!");

top.location='xx.jsp';

</script>

(5).<jsp:forwardpage="nextpage.jsp"/>

如:

<jsp:forwardpage="/servlet/login"/>

<jsp:forwardpage="/servlet/login">

<jsp:paramname="username"value="jsmith"/>

</jsp:forward>

<jsp:forward>标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象.<jsp:forward>标签以下的代码,将不能执行.

可使用了<jsp:param>标签的话向目标文件传送参数和值,目标文件必须是一个动态的文件,能够处理参数.

如果你使用了非缓冲输出的话,那么使用<jsp:forward>时就要小心。如果在你使用<jsp:forward>之前,jsp文件已经有了数据,那么文件执行就会出错.

JSP页面跳转方法荟萃

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:forwardpage="跳转页面"/>

该方法是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果

在<jsp:forward>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意.

request可以传值过去.直接跳转到页面,后面的代码不执行.跳转后地址栏不变.无法跳转到其他服务器上的页面.图片不是绝对路径无法显示.

4.request.getRequestDispatcher("跳转页面");request可以传值过去.执行完该页所有代码,然后再跳转到页面.

跳转地址栏不变.不可以跳转到其他服务器上的页面<%RequestDispatcherrd=

request.getRequestDispatcher("to.jsp");rd.forward(request,response);%>

有以下3种方法可以做到输出重定向:RESPONSE.SETREDERECT("URL")

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

response.sendRedirect("http://localhost:7001/index.html");

下面的方法也能改变HTTP

HEADER属性,它的原理和1是一样的

.<%response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);StringnewLocn="/index.html";response.setHeader("Location",newLocn);%>

采用<JSP:FORWORD>

该方法是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果在<JSP:

FORWORD>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意.

自己现在知道的在一个jsp页面中嵌套另外一个jsp页面,有三种方法:1、通过<%@include

file="header.jsp"%>这种方法只能实现静态页面的加载,最常用是在一个项目中实现通用页头header.jsp和footer.jsp的加载。

2、通过<%@includepage="tt.jsp"%>这种做法可以实现动态页面的加载,但其需要向页面传递参数;3、通过<iframe

src="jsp的路径">来向页面加载另一个jsp页面,是一个内联框架。

用forward传参数的,要这样写:<%Stringstr="你已经登陆!";%>

<jsp:forwardpage="index.jsp><jsp:paramname="name"value=<%=str%>/>

</jsp:forward>

相关推荐