Java学习总结15——Servlet中forward、include、redirect区别
2014-06-21 21:18
555 查看
出处:http://blog.sina.com.cn/s/blog_62a04f5d0100gxqd.html
forward,include,redirect是servlet中web页面的三种不同的跳转关系,三个貌似相同,其实还是有许多 差别的,而了解这些细微的差别,在web开发中是很重要的。
说明:
一、forward、include由 javax.servlet.RequestDispatcher来封装,由包容器container提供RequestDispatcher接口的实 现,其中声明如下:
void forward(ServletRequest req,ServletResponse res)
void include(ServeltRequest req,ServletResponse res)
可以通过两种方式得到 RequestDispatcher:
1、ServletContext.getRequestDispatcher(String path),其中这里的path必须开始为"/",即这里的path必须相对于context的root.
2、ServeltRequest.getRequestDispatcher(String path),这里的path可以为相对路径,如果
path开始为"/",则也认为是从context的root开 始的。
二、Redirect由 HttpServletResponse.sendRedirect(String location)来支持
差别:三个都可以对用户的 request进行转发,但是还是有许多的不同,差别最主要集中在如下几个方面:
1、forward与include共亨Request范围内的 对象,而redirect则不行,即:如果一个javabean被声明为request范围的话,则被forward到的资 源也可以访问这个 javabean,而redriect则不行。
2、forward与include基本上都是转发到context内部的资源,而 redirect可以重定向到外部的资源,如:
req.sendRedriect("http://www.mocuai.com");
forward,include,redirect是servlet中web页面的三种不同的跳转关系,三个貌似相同,其实还是有许多 差别的,而了解这些细微的差别,在web开发中是很重要的。
说明:
一、forward、include由 javax.servlet.RequestDispatcher来封装,由包容器container提供RequestDispatcher接口的实 现,其中声明如下:
void forward(ServletRequest req,ServletResponse res)
void include(ServeltRequest req,ServletResponse res)
可以通过两种方式得到 RequestDispatcher:
1、ServletContext.getRequestDispatcher(String path),其中这里的path必须开始为"/",即这里的path必须相对于context的root.
2、ServeltRequest.getRequestDispatcher(String path),这里的path可以为相对路径,如果
path开始为"/",则也认为是从context的root开 始的。
二、Redirect由 HttpServletResponse.sendRedirect(String location)来支持
差别:三个都可以对用户的 request进行转发,但是还是有许多的不同,差别最主要集中在如下几个方面:
1、forward与include共亨Request范围内的 对象,而redirect则不行,即:如果一个javabean被声明为request范围的话,则被forward到的资 源也可以访问这个 javabean,而redriect则不行。
2、forward与include基本上都是转发到context内部的资源,而 redirect可以重定向到外部的资源,如:
req.sendRedriect("http://www.mocuai.com");
相关文章推荐
- jsp/servlet中 forward, 4000 include, reDirect 之间的区别
- Servlet/JSP服务器端的重定向(forward,include,redirect区别)
- Java学习总结15——实现SingleThreadModel,容器不为servlet创建新的实例的问题
- jsp/servlet中 forward, include, reDirect 之间的区别
- Java学习总结15——Servlet详解
- servlet中 redirect ,forward区别
- JSP下动态INCLUDE与静态INCLUDE的区别,Forward和Redirect的区别分析
- java web(jsp + servlet + javabean)学习心得总结
- java正则表达式学习总结,以及和javascript正则表达式的区别
- Servlet中forward和redirect的区别
- Servlet API中forward() 与redirect()的区别
- Zend Framework 跳转方法(render, forward, redirect)区别与总结 ...
- java正则表达式学习总结,以及和javascript正则表达式的区别
- Servlet 跳转 redirect与forward跳转的区别
- 转发(forward)、包含(include)及转向(redirect)的区别与联系
- forward,include,redirect区别。
- java 中 forward 和 redirect 区别
- Servlet中forward和redirect的区别(转)
- java学习-servlet/filter/listener/interceptor区别与联系(转)
- 转发(forward)、包含(include)及转向(redirect)的区别与联系