日期:2014-05-17  浏览次数:20669 次

菜鸟问题之二: include 指令和 include 动作有啥区别?
<%@ include file="xxx.txt"%>
说是静态包含进来,如果被包含文件变化了,只有重新编译主文件才能看到变化,

<jsp:include page="xxx.txt"/>
一个是动态包含,只有主文件执行时才会包含进来,一旦被包含的变化了,主文件立即就能看到变化,不用从新编译,

可是我试了,两者都一样,不需要从新编译啊,子文件改了之后立即就看到变化了,

求解
------最佳解决方案--------------------
首先,楼主要明白,JSP其实是Servlet.
那么,楼主只需要找到这个JSP对应的Servlet类,看一下代码,比较一下就OK了。
------其他解决方案--------------------
静态包含中被包含的页面和主页面在编译期间就合成一个.class文件,所以其request是同一个。而动态包含仍然是编译成各自的.class文件,动态包含两个页面的request也是不一样的。需要注意的是,包含与被包含的页面编码要一
------其他解决方案--------------------
1、这里有篇文章讲的比较详细
http://meiowei.iteye.com/blog/413976

2、页面乱码问题可以检查下jsp文件编码和jsp页面制定的编码。
------其他解决方案--------------------
引用:
还有 include 指令和 动作 好像效果都一样,只要修改了被包含文件,再刷新主页面,那么变化立即就看到,并不是书上说的还要把主页面再保存一次,然后才能看到变化


你项目肯定是自动编译模式,修改之后,保存,相当于重新编译了。
------其他解决方案--------------------
补充一下:为什么 我的页面输出只要被包含文件内容是中文都会乱码?无论主页面是UTF 还是 GB2312 的编码
------其他解决方案--------------------
引用:
1、这里有篇文章讲的比较详细
http://meiowei.iteye.com/blog/413976

2、页面乱码问题可以检查下jsp文件编码和jsp页面制定的编码。



response.setContentType("text/html;charset=utf-8");
      pageContext = _jspxFactory.getPageContext(this, request, response,
       "", true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;

      out.write("\r\n");
      out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n");
      out.write("<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n");
      out.write("<head>\r\n");
      out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\n");

 servlet 里编码跟页面编码都是 utf-8 啊,可是为啥输出会乱码呢?
------其他解决方案--------------------
 out.write("<body>\r\n");
      out.write("\r\n");
      out.write("\r\n");
      out.write("è??é????ˉè¢??????????????-?");
      out.write("\r\n");
      out.write("\r\n");

servlet 这里输出语句为什么会是乱码呢? 搞不明白,已经设置了 
content-type:text/html;charset=utf-8 了啊
------其他解决方案--------------------
还有 include 指令和 动作 好像效果都一样,只要修改了被包含文件,再刷新主页面,那么变化立即就看到,并不是书上说的还要把主页面再保存一次,然后才能看到变化
------其他解决方案--------------------