关于java wen开发MVC框架
这个只是最理想的情况。事实上现在的J2EE开发中,JavaBean只有代表现实数据的字段而已,比如Student,只有id,name,score什么的。至于他的逻辑方法,通常移除来单独放到另外Service层中的类里面,这儿放逻辑,再在Dao层的类中放访问数据库的方法,以用于给Service层调用。严格的说,Service层,Dao层以及Domain域对象都算是JavaBean,只不过其中原来意义上的JavaBean已经变样了。(就是一个bean中包含字段,以及逻辑方法)
这种开发模式,严格意义上说是面向过程的开发模式。但是纯粹的OO在开发中有许多问题不适用。这就扯远了,有兴趣可以看看《领域模型设计》这本书,其中有详细讲解。就是大名鼎鼎的Domain Model Design。
顺带一提……这跟MVC没啥关系
JSP+Servlet与JSP+Servlet+JavaBeans是一个意思吗?
不是一个意思,首先说下MVC吧。MVC是MODULE-VIEW-CONTROL的简写,从英文意思来看。就是模型-视图-控制既是我们开发所用到的三层开发,凡是三层架构的开发必然会有这三种形态的同时存在。在实际应用中LZ可以这样理解*.JSP,*.html属于视图层,servlet属于控制器层,Class类文件属于JAVABEAN。
上层的依赖下层的,servlet是用JAVA写的控制器层,其实开发一个小型的应用用JSP就可以了,网上所说的JSP+JAVABEANS,JSP+SERVLET,JSP+SERVLET+JAVABEANS这些开发模式无法是为了把大的应用结构层次更清晰,一般我们开发一个项目会大致分为几个层次,业务逻辑层,JAVABEAN层(保持数据和数据库同步信息),视图层。
javabean和ejb之间的区别
首先,EJB是指运行在EJB容器中的JavaBean。Tomcat是Web容器的参考实现。一个完整的JavaEE服务器应该包括Web容器和EJB容器。
其次,Web容器中无法运行EJB,同时所有的JavaBean都是在服务器端运行的。如果有在客户端的话,就变成C/S结构了。
目前来说除非需要分布式处理,不然基本上不需要考虑EJB。Spring能帮你处理好除分布计算之外的一切。
用JavaScript来进行服务器调用的话,属于Ajax的范围了。
至于购物车。一般来说有几种方法,一种是EJB中的有状态SessionBean。一种是使用HttpSession保存。还有就是自己建设一个对象池来处理。
JavaBean是领域模型的具体化类,保存了信息和业务。只有set、get方法的JavaBean是失血模型。现在来说一般多少不太欢迎这种东西。把本属于领域对象的业务逻辑都丢掉了。
实际上现在的JavaEE系统分这么几个层。
表现层(Struts、JSF等)+应用层(处理业务,可以是JavaBean也可以是EJB)+持久层(JDBC、Hibernate)。
不要在Struts的Action类中写业务代码,那是反模式。不然日后需要修改的时候很麻烦的。Action中只有流程指向和对应用层的调用。
领域模型分实体、值对象和服务三部分。一般实体里写业务代码、值对象显示、服务提供相对独立的业务。失血模型指一个对象中除了get和set方法外没有任何方法的类。现在不太推荐。addobject(objece **),delete(object **)…之类的方法就是业务。这些业务封进去后,失血模型就变成了缺血模型。充血模型把持久化服务等也包了,所以也不是很号。缺血比较推荐。
登录等流程其实是服务。推荐你去看看DDD设计的书也就是《领域驱动设计》。
JSP、JavaBeans和JavaServlet之间的关系
使用JSP和JavaBean, javaServlet。
javaServlet负责根据 URL的路径结构进行分析,而调用相应的JavaBean进行业务逻辑处理。结果交给JSP进行表示处理。
JSP文件中只使用到非常少量JavaScript.
javaServlets充当控制者的角色,负责管理对请求的处理,创建JSP页需要使用的javabean和对象,同时根据用户的动作决定把那个JSP页传给请求者。特别要注意,在JSP页内没有处理逻辑;它仅负责检索原先由javaServlets创建的对象或javaBeans,从javaServlet中提取动态内容插入静态模板。 这是一种有代表性的方法,它清晰地分离了表达和内容,明确了角色的定义以及开发者与网页设计者的分工。
请问java项目 里的DAO,model,service, IMPL 是什么意思,以及有什么关系
是SSH架构的工程吗?代表了三层吧,model是实例,service提供各种方法,dao实现各种方法,impl指implement,即实现,service和dao都需要impl,dao内部的方法一般是实现与数据库交互的,而model一般就是数据库中表的实例