JSP页面的跳转方式汇总
1、使用超级链接跳转 示例: <a href=http://www.baidu.com?s=”XX”></a> 这种跳转方式是基于浏览器的,跳转过程中可以传递参数。缺点是不能保持请求状态,而且浏览器在跳转页面的时候会显示后面的查询字符串的信息,安全性得不到保证。一般用于页面的静态跳转和一些需要传递不重要的数据的时候。
2、使用表单提交的方式跳转页面 示例: <form action=”url” method=”post/get”> <input type=”submit” value=”submit”> </form> 这种跳转方式也是基于浏览器的,我们可以设定跳转的目标页面,也可以设定跳转的方法,还可以设定跳转的过程中提交数据的方式。如果使用get方式提交数据的话,功能类似于超级链接。如果使用post方式提交数据的话,数据会被隐藏,数据的安全性也能够得到保证,所以在提交数据的时候我们一般都会去使用post方式提交。一般用于收集客户端用户的数据,特殊情况还能够完成页面的跳转。
3、修改HTTP header的Location属性来重定向
4、JSP中实现在某页面停留若干秒后,自动重定向到另一页面
5、jsp标签跳转:<jsp:forward page=“url” /> 它的底层部分是由RequestDispatcher来实现的。注意:它不能改变浏览器地址,刷新的话会导致重复提交。 我们可以使用它在跳转的时候给目标页面传递参数,并且这样的提交方式能够保证请求的连续性,不管中间跳转了多少次页面,他们都属于同一次请求。注意:不管你跳转了多少次页面,地址栏都是不会改变的(由第一次请求的地址决定)。
6、RequestDispatcher.forword() 我们通过RequestDispatcher接口的forword()方法,实现页面的重定向。 具体使用方式如下: ServletContext sc = getServletContext(); RequestDispatcher rd = null; rd = sc.getRequestDispatcher(“/index1.jsp”); //重定向的页面 rd.forward(request, response); 注意:这种跳转方式能够传递resquest和response对象,通过这种方式跳转的页面不会更改页面的地址栏。一般在servlet中使用。
7、response.sendRedirect(“url”) 在用户的浏览器端工作,sendRedirect()可以带参数传递,它还可以重定向至不同的主机上。sendRedirect() 在重定向后地址栏会变成重定向之后的URL。 response.sendRedirect("index.jsp?name=value"); 在目标页面获得参数值 request. getParameter(“name”); request.getParameterNames(); request.getParameterValues(“name”); 这种跳转方式在客户端和服务端都会经常用到,不足的是对于需要大量传值的跳转来说,使用这种跳转方式会显得很吃力。 |
|