Forward与include的区别
<jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入。
<jsp:forward>从一个JSP文件传递request信息到另外一个JSP文件,<jsp:forward>后面的部分将不会被执行。
可以使用 <jsp:param> 传递参数。
<jsp:include>将包含的文件放在JSP中和其他一起执行。
<jsp:forward>标签用于把请求转发给另外一个资源。
语法:
<jsp:forward page="relativeURL | <%=expression%>" />
page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得
getRequestDispatcher后面的参数可以是一个servlet, jsp或者html页面 对于forward方法,本意是让第一个页面处理request,第二个页面处理response。如果第一个页面中已经使用response进行输出了,那么只要没有flush(),forward依然可以成功,并会自动清除刚才的输出内容,但是如果第一个页面调用了flush()方法,则会报错。值得注意的是执行了forward方法调用了第二个页面之后,程序还会返回第一个页面继续执行,但是此时再使用response输出已经没有作用了。建议可以在forward语句后面加上 if (true) return;避免无必要的执行后面的程序。 include方法则不同,它是服务器端的动态加载,执行完第二个页面的程序后可以回到第一个页面继续输出,只需要注意第二个页面不应当更改response的头部信息(改了也没用)。