请求转发,请求包含,url重定向,<jsp:include> ,<%@include>区别

请求转发:

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中的资源;能跨域访问



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值