include

引入JSP有两种方式<%@ include file=“xxx.jsp” %><jsp:include page=“xxx.jsp” />,前者称为include指令,后者称为include动作,两者的区别是:

    include指令在JSP页面转换成Servlet之前,将JSP代码插入其中。所以只有一个Servlet

    include动作是在主页面被请求时,将次级页面的输出包含进来,所以有多个Servlet。这种方式与RequestDispatcher类的include方法一致。

    由此推测:

  1、因为include指令只生成一个Servlet,代码中没有include方法,所以<dispatcher>INCLUDE</dispatcher>不会起作用。

  2、因为include动作生成多个Servlet,代码中有include方法,所以<dispatcher>INCLUDE</dispatcher>会起作用。


include可以在JSP页面转换成Servlet之前,将JSP代码插入其中。它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如属性、方法的定义和文档类型的设定。它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为主页面不会自动地查看被包含的页面是否发生更改。

jsp:include动作是在主页面被请求时,将次级页面的输出包含进来。尽管被包含的页面的输出中不能含有JSP,但这些页面可以是其他资源所产生的结果。服务器按照正常的方式对指向被包含资源的URL进行解释,因而这个URL可以是ServletJSP页面。服务器以通常的方式运行被包含的页面,将产生的输出放到主页面中,这种方式与RequestDispatcher类的include方法一致。它的优点是在被包含的页面发生更改时,无须对主页面做出修改。它的缺点是所包含的是次级页面的输出,而非次级页面的实际代码,所以在被包含的页面中不能使用任何有可能在整体上影响主页面的JSP构造。

REQUEST

直接访问目标资源时执行过滤器。包括:在地址栏中直接访问、表单提交、超链接、重定向,只要在地址栏中可以看到目标资源的路径,就是REQUEST

FORWARD

转发访问执行过滤器。包括RequestDispatcher#forward()方法,<jsp:forward>标签都是转发访问;

INCLUDE

包含访问执行过滤器。包括RequestDispatcher#include()方法,<jsp:include>标签都是包含访问;

ERROR

当目标资源在web.xml中配置为<error-page>中时,并且真的出现了异常,转发到目标资源时,会执行过滤器。

注:forward方法是把请求的内容转发到另外的一个servlet.include是把另一个servlet处理过后的内容拿过来.include sendRediect 之后,后面的语句会继续执行,所以应该在合适的位置写上return;forward的不会)



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值