HTML 是动态的
这种纯 servlet 方法非常简单。它涉及一个 servlet 基类和一个定制的写出器对象,servlet 子类使用这个对象产生输出。代码很简洁,因为大多数 HTML 封装在 helper 对象的方法中,都可以按需重写。代码重用总是令人愉快,而且大多数 Web 站点的页面共享许多 HTML,所以重用应该是个重要的考虑因素。HTML 输出方法产生直观紧凑的 servlet 代码,因此可维护性很高,这使代码的维护成本差不多直接与代码规模成正比。通过将 JSP 界面重写成纯 servlet,可以将代码缩减三分之二。
例如,要根据用户权限输出一个链接,就需要下面这样冗长的构造代码:
<c:if test="${user.permission[ sessionScope.ConstantMap[ EDIT_WIDGET ] ] != 0}"> <c:url var="editUrl" value="/EditWidget.jsp"/> <div class="navigation"><a href="<c:out value="${editUrl}"/>">Edit this widget</a></div> </c:if> |
通过使用 Java 语法,代码就简洁多了:
if (user.getPermission(Constants.EDIT_WIDGET) != 0) out.printNavlinkDIV("/EditWidget.jsp", "Edit this widget"); |