化,阅读代码和维护就会使得阅读代码对他人和编程人员自己变的容易一些。 Sun Microsytem 最近已经帮助一些组织来创建这样的规范,制定了
文档“Code Conventions for the
JavaServer Pages Technology Version 1.x Language”可以
免费获得, 参考
“Resources”(javaworld/javaworld/jw-07-2003/jw-0725-morejsp.html)。 如 果你的公司还没有遵循 JSP 编程规范的话, 我建议使用这个
文档作为一个起点。 你可 以完全的遵照该文档也可以在其基础上创建自己的规范。 为对象选择合适的 Scope JSP 规范支持四种 scope 应用 application,会话 session, ( 请求 request 和页面 page) , 在 JSPs 中你可以为创建的对象选择其中的一种,因为绑定到这些 scope 的对象消耗 内存,并且在有些时候需要释放,所以最好选择适当的 scope 来完成你的任务。 应用范围( 应用范围(Application scope) ) Application scope 是最为广泛的一个范围,应该在必要的时候才采用这种形式。你可 以在非会话相关(session-aware)的 JSPs 中创建绑定到 application 的对象(You can create objects bound at application level in JSPs that are not session-aware,)在这种类型 的 JSPs 中可以用应用范围来存储数据和信息。( so application scope is useful for storing information when using these types of JSPs)。你也可以使用绑定到 application 的对象用来在不同的会话(session)间共享数据。当你不需要 application 范围的对象 的时候一定要显式的删除它们以便释放内存。 会话范围( 会话范围(session scope) ) 在我的经验中, 会话范围要比应用范围用的多。 会话范围允许你创建并且将对象绑定 到一个会话上面。
你必须在 session-aware 的 JSPs 中创建绑定在会话的对象并且使在 同一个会话中所有的 JSP 和 servlet 能够访问到这些对象。会话范围常常用在管理安 全验证和管理多个页面的状态信息。 绑定在会话范围的对象在不需要的时候也要显示 的删除。当我计划将某个类的对象绑定到会话范围的时候我通常会使该类可串行化。 请求范围( 请求范围(request scope) ) 在绑定对象的时候,页面范围我用的最多。此类对象只在同一个请求的页面间有效。 在请求处理完成的时候这些对象将会自动的被释放。 因而不需要显式的释放它们, 这 样就没有了使
系统被一些不必要内存消耗而拖累的危险。 页面范围( 页面范围(page scope) ) 当你创建只对当前页面相关的对象的时候你需要选择页面范围。 和请求范围一样, 绑 定在页面范围的对象不要显式的删除。我很少在我的 JSP 应用中使用“页面范围”,但 是这是的默认范围。 选择哪种范围( 选择哪种范围(scope) ) 需要仔细的选择创建对象的范围来保证有效的利用内存, 通常我会在刚刚开始的时候 选择请求范围,然后在评估是否需要选择范围更大的范围。
仔细的管理会话范围 前面已经提到过, 只有在必要的时候才选择会话范围并且当这些对象不在需要会话级 访问的时候需要显式的去掉对象的其会话范围。 当不使用会话范围的对象的 JSP 中你 可以设置页面的 directive 的 session 属性为 false, 这样可以避免管理会话范围。 但是, 很少的
网络应用不需要会话范围的支持。 通常, 我使用会话来支持安全机制以及其他 的一些应用需求。 尽管一个会在一个可以由你配置的时间后过期, 但是在不需要对象 的会话范围的时候最好显式的取消它们,而不是依赖会话自动释放的功能。 采用 JSTL(标准标签库) (标准标签库) JSP 的引入和采纳已经成为 JSP 开发人员的一个最为重要的进步。JSTL 有时候也称 为“JSP Standard Tag Library”。在 JSTL 中的 T 代表的是标签(Tag)而不是模板 (Template)。 JSTL:背景与回顾 : 在我以前的文章里, 我提到过 JSP 开发人员采纳可以得到的