您的位置:首页 > Web前端 > JavaScript

请求转发,请求包含,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中的资源;能跨域访问
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息