感受jsp

大家都知道,有两种引用页面的方法,一种是指示标签 “<%@ include file=""%>”,一种是动作标签“ ”。两种方法使用起来,乍一看效果相差一样,但还是一定区别的, 使用不当会出现错误.

比如我有两个jsp,分别是a和b, 两个页面上都定义了一个“String path = request.getContextPath()”。现在我使用a页面用“ <%@ include file=""%>”引入b页面, 结果最后访问a页面时报错了,说path这个变量被重复定义了。咱们再设一个c.jsp,用 “” 引入b页面,却运行正常。

回想书上说,说明标签是静态引入,动作标签是动态,当初不太明白,现在我的粗浅理解是这样的:“<%@ include file=""%>”是把b页面的源代码拼接到a页面中,再一块编译,所以“path”变量就形成了重复定义;而“”则是分开编译两个页面,把它们生成的html加到一起。这应该是两者最大的不同。


再证实一下:在用“<%@ include ”时 ,把b页面的“path”变量定义去掉,结果它就可以使用a页面定义的“path”变量,没有错误;而用“

你可能感兴趣的:(感受jsp)