没有必要重复发明轮子。又大量多种用途的标签库已经存在如jstl,Fals设置不会删除现有的会话,1始终把会话页面指令设置为Fals除非希望在JSP页面中使用会话信息。但是true设置将创建一个会话,但也许不是有意的解使用request.getSesstrue时警告,为了防止这种调用带来的平安问题,应该确保限制了带有页面指令sesion=trueJSP页面的使用。
对它进行修改,没有理由重头开始编写应用顺序组件。更好的方法是采用一个与计划开发的应用顺序相近的应用顺序。直到满足需要为止。设计 WebA uct应用顺序的目的就是如此,此外,sun公司发行的j2eeBlueprint为应用顺序开发提供了一个极好的起点。
但是true设置会创建一个会话(或许是无心的为了防止request.getSesstrue调用引入的平安问题,防弹的应用顺序使用页面指令重写Session和errorPag默认值。应始终把会话页面指令设为Fals除非希望在JSP页面中使用会话的信息。Fals设置不会删除任何现有的会话。应确保使用页面指令Session="true"限制了JSP页面的使用。只有在确认会话后,对这些受限制的页面的直接请求才确实存在可以限制对JSP访问,具体做法是把它放在web应用顺序的web-inf目录中。可以在web-inf目录中包括或转发资源,但是外部用户无法直接访问这些资源。此外,无法知道应用顺序何时会抛出异常。使用errorPag页面指令把这些失败的请求重定向到一个用户友好的错误页面。
最后却发现,xml编码格式的j2ee布置文件的出现意味着需要注意大写和空格。开发人员可能花费了大量时间来调试一个应用程序。原来是一个错误使用空格或括号导致了错误。
尽可能地少自傲JSP页面中使用Java代码,混合使用JSP和Java代码很可能导致二者都显示的晦涩。应利用JavaBean和定制标签库的优点。最理想的情况是完全不使用Java代码。业务逻辑可以在web应用顺序、服务器操作和Java客户端应用顺序中应用程序。可以在整个J2EE平台上广泛使用JavaBean所以JavaBean定义应用顺序业务逻辑的好地方。JSP设计的一个好处是能够防止把敏感的代码放在web页面中。
比如横跨web站点顶部的导航栏或标题,使用包括指令模块化页面。如果站点定期重用组件。考虑把用于生成这些组件的代码放入单独的JSP页面中。接着,使用JSP包括指令把上述代码包括到每个页面中。包括指令是一种高效的操作。如果又特殊的需要,想动态选择被包含的资源,或者需要对字符编码进行高级控制,就开一个使用包括动作。
允许使用JSP标签来替换表示层逻辑。然而,定制标签库提供了一种方式。标签库处置顺序类与JSP紧密相关,不能在其他上下文中被重用。同样,定制标签是定义表示逻辑的好地方,但是不适合定义业务逻辑。
9使用现有的标签库