Geronimo 叛逆者: 使用集成程序包:GlassFish JSTL 1.2 和 Apache Geronimo 2.0
2009-11-11 00:00:00 来源:WEB开发网显然,清单 2 中的代码在 servlet 的基础上得到了重大的改进。JSP 组件仍然要编译为 servlet,不过这需要通过 servlet 容器来完成(或者可以作为构建的一部分来完成)。因此,JSP 组件可以提供与 servlet 相同的性能。PHP 语法类似于 Active Server Page (ASP) 和 PHP 页面,但是编译为 servlet 使 JSP 组件相比其他技术拥有了显著的性能优势。
JSP Model 2
清单 2 中的代码仍然存在着一些不可忽视的问题。它在其中使用了一段 scriptlet,即一小段 Java 代码。无论是站在设计还是实际的角度,使用 scriptlet 都会带来一些问题。JSP 组件可以随意将业务逻辑(检索用户列表)与表示混合在一起。经过发展演化,JSP Model 2 架构解决了这个问题,使 servlet 可以与 JSP 组件结合在一起使用。请看清单 3。
清单 3. Model 2 样式的 servlet protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
UserDao dao = new UserDao();
List users = dao.getAllUsers();
request.setAttribute("users", users);
request.getRequestDispatcher("/user.jsp").forward(request, response);
}
servlet 可以首先处理请求和执行业务逻辑。然后可以将结果保存在 HttpServletRequest 对象中,并将其转发给 JSP 组件。这使得 JSP 组件得以简化,如清单 4 所示。
更多精彩
赞助商链接