WEB层应该是一个很干净的层和很薄的层。控制流和业务调用与视图显示必须分离出来。Java类用来控制流程和进行业务调用,不应该在Java类中生成HTML等视图标签。JSP页面等视图仅包含显示标签和简单的显示逻辑。
其一,WEB层应该只含有需要的控制逻辑,而不应该有业务逻辑。因为WEB依赖于Servlet API。Servlet 是很难以进行单元测试的,而WEB层含有业务逻辑,所以业务逻辑依赖于Servlet API,业务逻辑就很难以进行测试。对比之下,如果由一个普通的JAVA对象来实现业务逻辑,则十分容易进行单元测试。
其二,降低了代码的可重用性。Servlet的代码是很难以进行重用的,即使是使用委托对象进行流程控制的WEB层,如果一个普通Java对象的业务对象去调用一个依赖于Servlet 的控制类,就对原本干净的业务对象深度侵入而破坏业务接口。
其三,WEB层的变化是频繁的,而业务层的则是相对稳定的。通常业务对象是面向接口的。可能WEB层的修改而导致业务逻辑的错误。
其四,无法进行统一的事务处理。如果业务对象是普通的JAVA对象,则可以通过AOP等来进行声明式事务管理,从而进行统一的事务处理。
以上就是我的WEB学习经历,也是最重要的一段经历。可在这里为什么不提 SPRING MVC,WEBWORK和将会流行的JSF呢?其实它们都是基于JSP及Servlet的运用,相信有扎实的JAVA基础,深入的理解JSP,Servlet,HTML比学习任何框架都要重要。我在这里并不是反对学习WEB框架或者是反对运用框架进行开发,而是说这些基础的学习可以让你能够更快的掌握一个新的WEB框架。理解WEB 开发及WEB层的特点,可以让你更好的进行WEB开发。
就算是像ASP.NET和JSF号称的事件驱动模型,最终它也没有脱离开WEB应用的特点,它们仍然是请求响应模式。它们只是通过提供丰富的WEB组件及可视化的IDE使得WEB开发像桌面应用开发一样。总之,掌握Web开发的关键是掌握Web应用的特点及Web应用的关键技术,而不是掌握一两个框架。所以花费些力气去学习Java基础,学习Jsp,Servlet,甚于学习HTML,Javascript对进行Web开发都是十分必要的,因为磨刀不误砍柴功。
理解WEB层
最新推荐文章于 2023-12-28 14:20:42 发布