style="WIDTH: 345px; HEIGHT: 285px" align="left" marginwidth="0" marginheight="0" src="http://www.ymfund.com/web/ad.html" frameborder="0" width="468" scrolling="no" height="60">
因为做的几个项目选择的WEB服务器都是BEA公司的webogic,从开发到生产用起来都还蛮方便的,总之对它的评价就是对机器要求不高,生产上配一台PC server就能跑得十分流畅了,是中小企业的首选.平时自己做开发也是在机器上搭一个weblgic服务器,用来调试非常方便。特别是相对比IBM的websphere,websphere对机器配置要求高,部署起来也是相当麻烦,记得以前在websphere上配置一个连接池,也花了好几天的时候才弄好。
但是今天在weblogic上部署了一个已经调试好了的应用程序却出现问题了,真让人纳闷啊,平时碰到的都是在weblogic上调试好的程序在websphere上跑不起来,原因大多都是websphere对程序代码要求比较高,都必须符合这个那个规范了。
错误提示是 weblogic.servlet.jsp.JspException page directive contentType at /head.jsp previously defined at /index.jsp:1,分析了一下,很明显问题出在 head.jsp这个页面,后来仔细想了想,在index.jsp页面中是用 <%@ include file="/head.jsp" %> 这种方式把 head.jsp引进来的。这里就涉及至 静态include和动态include的区别了。
动态INCLUDE用jsp:include动作实现:<jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态INCLUDE用include伪码实现,不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %>
很明显静态include是把head.jsp的内容直接添加到index.jsp里面,这样就会出现一个问题,就是<%@ page contentType="text/html;charset=GBK" %> 这段代码在head.jsp和index.jsp里面都有,这样就会造成重复了,所以报错了。呵呵,但是程序在webspher上能够成功的跑起来,看来这里websphere里的问题了。