请求转发,请求包含,url重定向,<jsp:include> ,<%@include>区别
2017-04-03 12:03
483 查看
请求转发:
RequestDispatcher getRequestDispatcher(String path);//获取请求分发器
void forward(ServletRequest request,ServletResponse response);//请求转发
一般写法:request.getRequestDispatcher("/路径").forward(request,response);
特点:
请求只有一次,且可以共享请求中的数据,因为是同一个request;url仍然是之前那个,但是页面显示的是转发之后的页面;可以访问WEF-INF中的资源;不能跨域访问(这里的跨域指的是当前项目,即不能访问其他域名的资源,举个例子就是不能通过forward访问到www.baidu.com)
注意:请求转发可能会使数据重复提交
相当于<jsp:forward>
请求包含:
void include(ServletRequest request, ServletResponse response);//请求包含
一般写法:request.getRequestDispatcher("/路径").include(request,response);
特点:
属于页面嵌套,即include的页面嵌到当前页面中显示,一个页面有来自其他页面的内容
<jsp:include>和<%@include>区别:
<jsp:include>是动态包含,用于包含动态页面,在运行阶段包含在一起,各自生产文件
<%@include>是静态包含,用于包含静态页面,在翻译阶段就已经包含在一起了,只生成一个合并后的文件
两者作用相同,只是要包含的页面状态不同
url重定向:
response.sendRedirect(url);
特点:
请求有两次,不能共享请求中的数据,因为是两个不同的request,请求的页面不同;url改变,页面显示的是转发之后的页面;不可以访问WEF-INF中的资源;能跨域访问
RequestDispatcher getRequestDispatcher(String path);//获取请求分发器
void forward(ServletRequest request,ServletResponse response);//请求转发
一般写法:request.getRequestDispatcher("/路径").forward(request,response);
特点:
请求只有一次,且可以共享请求中的数据,因为是同一个request;url仍然是之前那个,但是页面显示的是转发之后的页面;可以访问WEF-INF中的资源;不能跨域访问(这里的跨域指的是当前项目,即不能访问其他域名的资源,举个例子就是不能通过forward访问到www.baidu.com)
注意:请求转发可能会使数据重复提交
相当于<jsp:forward>
请求包含:
void include(ServletRequest request, ServletResponse response);//请求包含
一般写法:request.getRequestDispatcher("/路径").include(request,response);
特点:
属于页面嵌套,即include的页面嵌到当前页面中显示,一个页面有来自其他页面的内容
<jsp:include>和<%@include>区别:
<jsp:include>是动态包含,用于包含动态页面,在运行阶段包含在一起,各自生产文件
<%@include>是静态包含,用于包含静态页面,在翻译阶段就已经包含在一起了,只生成一个合并后的文件
两者作用相同,只是要包含的页面状态不同
url重定向:
response.sendRedirect(url);
特点:
请求有两次,不能共享请求中的数据,因为是两个不同的request,请求的页面不同;url改变,页面显示的是转发之后的页面;不可以访问WEF-INF中的资源;能跨域访问
相关文章推荐
- jsp的静态包含与动态包含:<%@ include file="" %>和<jsp:include page=""></jsp:include>区别与分析
- JSP 之 动态包含 <jsp:include />
- <%@include%> 和 jsp:include 区别
- <jsp:include> 嵌套Servlet请求,导致Stream closed异常
- jsp:include和<%@include%>的区别
- <%@include>和 <jsp:include>的区别
- <%@ include file=""%>与<jsp:include page=""/>区别
- <%@ include file=""%>与<jsp:include page=""/>区别
- <jsp:include> 和 <iframe src=""...>的区别
- <jsp:include>和<%@include file=""%> 有什么区别
- <%@ include file=""%>与<jsp:include page=""/>区别
- JSP 之 静态包含 <%@ include %>
- jsp动作元素<jsp:include page="">与指令元素<%include file=""%>的区别
- <jsp:include />和<%@ inclue %>之间的区别
- C++中#include包含头文件带 .h 和不带 .h 的区别,如<iostream>和<iostream.h>
- <%@ include file=""%>与<jsp:include page=""/>区别
- <jsp:include page="">和<%@ include file=""%>区别总结
- include指令与<jsp:include>动作的区别
- <jsp:include page=”XXX”>和<%@ include file=”XXX”%>有何区别
- <jsp:include>与include指令的区别