J2EE初步知识 MVC概念

来源:互联网 发布:ptc画图软件 编辑:程序博客网 时间:2024/05/16 14:56

J2EE 是神马概念?

标准:J2EE 是一种利用Java 2平台来简化企业解决方案、部署和管理相关的复杂问题的体系结构。

个人理解:Java 企业级应用,以J2SE为核心,即标准jdk为核心,同时,融合了EJB、Servlet、JSP 以及 XML技术的全面支持。

 

MVC

使用 JSP 存在的问题:经常要被大量的<% %>分割到七零八落(深有体会啊~~)。大量的业务逻辑和代码直接暴露于页面只上。比如各种跳转可以看到的一清二楚。

第一次修正:<jsp: useBean> 等动作来将这些类引入到页面并加以调用,从而极大减少页面上动态语言的出现。

Model 1 华丽诞生!! JSP + JAVABEAN 最佳拍档~ (本人所在阶段,nice~)

Model 1 存在的问题:对于业务逻辑的控制,仍然放在页面中进行,对于软件的维护和修改,改动最频繁的就是业务的逻辑!
MCV目的,就是将页面显示、业务逻辑和基础的业务操作三者有效区分开。(好理想化的东东。。。/(^o^)/~)


--------------------- 传说中的Model 2 -------------------------

视图由JSP承担,控制器由Servlet承担,模型部分由JavaBean承担。

例如实现一个拥有加、减、乘、除的计算器:
显示(V)Jsp页面 ----index.jsp   result.jsp   
JavaBean类(M)----Calculator.java 
Servlet类(C) ----computeServlet.java

貌似已经很完美了。页面表现在jsp中,逻辑处理在javabean中,流程控制在servlet中。
假如需要增加的运算越来越多,要如何做?
doPost方法会越来越大,不可避免成为一个巨型的方法。要对处罚增加判断除数是否为0,为0跳转到错误页面。是不是Servlet要跟着改?

------------------------ 虚幻的 OCP 原则 ?-----------------------------------
Open Close Principle!
对扩展开放、对修改关闭。可以对软件进行功能扩展,在引进这些扩展的同时,不需要改变原来的程序进行修改!

这个其实基本不可能完全做到!虚无幻境而已么??
我们能做的是找出系统中哪些部分进行扩展、哪些部分要保持相对稳定的封闭。

找出扩展点,进行工厂化!

最新的类设计如下:
jsp ------- index.jsp   result.jsp  error.jsp
javabean ------ class: CalFactory
servlet --------  class: computeServlet.java, DivAction.java, AddAction.java, SubAction, MulAction  interface: Action

Action中定义 execute 方法。
public String execute(HttpServletRequest request, HttpServletResponse response);

子类中进行了model逻辑运算,同时又完成了servlet的流程控制。

只能说太强大了!