JSP中的4个include

1:RequestDispatcher.include

通过GenericServlet.getServletContext方法获得一个ServletContext对象,然后通过ServletContext.getRequestDispatcher方法封装一个Servlet,并获得一个RequestDispatcher对象。

该方法封装的资源既可以是静态的,也可以是动态的。

RequestDispatcher  rd=getServletContext().
                                  getRequestDispatcher("/IncludedServlet");
rd.include(request,response);

rd=getServletContext().getRequestDispatcher("/includeHtml.html");
rd.include(request,response);

 注意:

1:
在使用include方法时,Servlet引擎并不会调整HttpServletRequest中的消息,调用include方法就相当于Servlet引擎在本Servlet的service方法中又调用了被包含的Servlet的service方法,并将本Servlet的service方法的2个参数传入了被调用者的service方法。

2:

被调用者中设置的响应消息头将被忽略。

 

2:PageContext.include

在PageContext类中引入了一个include方法来简化和替代RequestDispatcher.include方法的调用。

abstract  public  void  inclued (String  relativeUrlPath)  
                                            throws  ServletException , IOException;

该方法调用之前先将out对象缓冲区中的数据刷新。

abstract  public  void  include (String  relativeUrlPath , boolean  flush)
                                            throws  ServletException , IOException;

该方法提供一个flush参数。来控制在调用之前是否刷新out对象缓冲区。


include方法的relativeUrlPath参数必须是相对路径。

 

3:include指令

include指令用于将其他的文件静态的加入到当前的JSP程序中。

<%@ include  file="relativeUrl"  %>

include指令只有file一个属性,这个属性是一个相对路径。

注意
   1:被引入的文件可以是任何扩展名,JSP编译器会按处理JSP页面的方式处理被引入的文件。
   2:include指令是静态引入文件的,也就是说,被引入的文件内容将作为使用include指令的
      JSP所生成的servlet源代码的一部分而存在。
   3:如果当前的JSP程序中未通过contentType属性设置字符集编码,那么在被引入的JSP程序
      中通过 page指令设置的pageEncoding属性值将作为当前JSP页面的编码格式。
   4:被引入的JSP文件中如果含有中文字符,必须在被引用的JSP文件中使用page指令的
      conteType或pageEncding指定页面的字符集编码。在使用include指令的JSP文件中设置的
      字符集编码并不能代表被引用文件的字符集编码。

 

4:include标签

<jsp:include>标签用于将另一个静态或动态资源插入到当前的JSP页面中,插入的过程是动态的,也就是说,只有当JSP程序执行到该标签时才执行插入动作。

<jsp:inlcude page="relativeURL"  flush="true|false" />

<jsp:include page="relariveURL"  flush="true|false" >
    <jsp:param name="name"  value="value">
</jsp:include>

page属性表示一个相对路径
flush属性表示在插入资源之前是否清空out缓冲区,默认值是false
第2种语法格式可以向relativeURL所指定的web资源传递参数

 

 

 这4个include的区别

1:RequestDispatcher.include和pageContext.include在功能上是完全相同的,后者只是为了
   简化前者而存在的,因此这2个include可以看做一个,统称为include方法。
2:include方法和include标签都不能在被引入的页面中改变响应状态码,也不能改变http响应头,
   而include指令却可以改变这些信息。
3:include指令在引用JSP文件时,无论被引用的文件的扩展名是不是.jsp,都会将其按JSP页面来
   处理,而include方法和include标签所引用的JSP文件的扩展名必须是.jsp才可以,如果是其他
   的扩展名,就会将其当成静态文件处理。如将.jsp改成.myjsp后,只有include指令正常输出,
   include方法和include标签都将.myjsp中的内容按原样输出到了客户端。
4:当相对路径所指的资源不存在时,include指令会抛出异常,而include方法和include标签会向
   客户端输出一条提示信息后继续执行后面的代码。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值