zoukankan      html  css  js  c++  java
  • 重温Java EE

      Java EE应用概述

      今天我们说的Java EE应用,往往超出了Sun所提出的经典Java EE应用规范,而是一种更广泛的开发规范。

    1.1.1Java EE应用的分层模型

      Domain Object(领域对象)层:此层由系列的POJO(plain old java object)组成,这些对象是该系统的Domain Object,往往包含了各自所需实现的业务逻辑方法。

      DAO(数据访问对象)层:此层由系列的Dao组件组成,这些Dao实现了对数据库的创建、查询、更新和删除(CRUD)等原子操作。

      业务逻辑层:此层由系列的业务逻辑对象组成,这些业务逻辑对象实现了系统所需要的业务逻辑方法。这些业务逻辑对象实现了系统所需要的业务逻辑方法。这些业务逻辑方法可能仅仅用于暴露Domain Object对象所实现的业务逻辑方法,也可能是依赖Dao组件实现的业务逻辑方法。

      控制器层:此层由系列控制器组成,这些控制器用于拦截用户请求,并调用业务逻辑组件的业务逻辑方法,处理用户请求,并根据处理结果转发到不同的表现层组件。

      表现层:此层由系列的JSP页面、Velocity页面、PDF文档视图组件组成,负责收集用户请求,并将显示处理结果。

    1.1.2Java EE应用的组件

      表现层组件:主要负责收集用户输入数据,或者向客户显示系统状态。最常用的表现层技术是JSP,但JSP并不是唯一的表现层技术。表现层还可由Velocity、Freemarker和Tapestry等技术完成,或者使用普通的应用程序充当表现层组件,甚至可以是小型智能设备。

      控制层组件:对于Java EE的MVC框架而言,框架提供一个前端核心控制器,而核心控制器负责拦截用户请求,并将请求转发给用户实现的控制器组件。而这些用户实现的控制器则负责处理调用业务逻辑方法,处理用户请求。

      业务逻辑组件:是系统的核心组件,实现系统的业务逻辑。通常,一个业务逻辑方法对应一次用户操作。一个业务逻辑方法应该是一个整体的,因此我们要求对业务逻辑方法增加事务性。业务逻辑方法仅仅负责实现业务逻辑,不应该进行数据访问。因此,业务逻辑组件中不应该出现原始的Hibernate、JDBC等API。

      DAO组件:Data Access Object。这个类型的对象比较缺乏变化,每个DAO组件都提供Domain Object对象基本的创建、查询、更新、删除等操作,这些操作对应于数据表的CRUD的原子操作。当然,如果采取不同的持久层访问技术,DAO组件的实现会完全不同。为了业务逻辑组件的实现与DAO组件的实现分离,我们为每个DAO组件都提供接口,业务逻辑组件面向DAO接口编程,从而提供更好的解耦。

      领域对象组件:Domain Object抽象了系统的对象模型。通常而言,这些领域对象的状态都必须保存在数据库里。因此,每个领域对象通常对应一个或多个数据表,领域对象通常需要提供对数据记录访问方式。

      轻量级Java EE应用相关技术

      轻量级Java EE应用以传统的JSP作为表现层技术,以系列开源框架作为MVC层、中间层、持久层解决方案,并将这些开源框架有机的组合在一起,使得Java EE应用具有高度的可扩展性、可维护性。

    1.2.1 JSP、Servlet 3.0 和JavaBean及代替技术

      。。。。。。

    1.2.2 Struts2.2及替代技术

      Struts是全世界最早的MVC框架,其作者是JSP规范的制作者,并参与了Tomcat开发,所以Struts从诞生的第一天起,就备受Java EE应用者的青睐。多年来,Struts却是Java EE应用中使用最广泛的MVC框架,拥有广泛的市场支持。

      虽然Struts如此优秀,但在MVC框架领域还有另外两个代替者:JSF和Tapestry。  

    1.3 Tomcat

    1.3.2配置Tomcat的服务端口

      Tomcat的配置文件都放在conf目录下,控制端口的配置文件也放在该路径下。打开conf下的server.xml文件,务必使用记事本或vi等无格式的编辑器,不要使用如写字板等有格式的编辑器。地位于server.xml文件的68行处看到如下代码

    <Connector port="8080" protocol="HTTP/1.1"
        ConnectionTimeout="2000"
        redirectPort="8443"/>
    

      如果需要让Tomcat运行多个服务,只需要复制server.xml文件中的<Service>元素,并修改相应的参数便可以实现一个Tomcat运行多个服务,当然必须在不同的端口提供服务。

      在Web应用开发阶段,通常希望Tomcat能列出Web应用根路径下所有页面,这样能更方便地选择需要调试的Jsp页面。默认情况下,出于安全考虑,Tomcat并不会列出Web应用根路径下的所有页面,为了让Tomcat列出web应用根路径下的所有页面,可以打开Tomcat的conf目录下的web.xml文件,在该路径的104、105两行,看到一个listings参数,该参数的默认是false,将该参数改为true即可让Tomcat列出Web应用根路径下的所有页面。

    <init-param>
        <param-name>listings</param-name>
        <param-value>true</param-value>
    </init-param>
    

      Tomcat有三个控制台:一个是Server Status控制台,另一个是Manager App控制台,还有一个是Host Manager控制台。Status用于监控服务器状态,而Manager可以部署、监控Web应用,因此我们通常只使用Manager控制台即可。

    1.3.4 部署Web应用

      利用Tomcat的自动部署

      利用控制台部署

      增加自定义的Web部署文件

      修改server.xml文件部署Web应用

      利用Tomcat自动部署方式是最简单、最常用的方式。我们只要将一个Web应用复制到Tomcat的webapps下,系统将会把该应用部署到Tomcat中。

      利用控制台部署Web应用也很简单,只要我们在部署Web应用的控制台输入即可。

      第三种方式则无须将Web应用复制到Tomcat安装路径下,只是部署方式稍稍复杂一点,我们需要在conf目录下新建Catalina目录,再在Catalina目录下新建localhost目录,最后在该目录下新建一个名字任意的XML文件--该文件就是部署Web应用的配置文件,该文件的主文件名将作为Web应用的虚拟路径。

      

  • 相关阅读:
    编码的使用,编码与解码
    小数据池,is和==的区别,id()
    python的内置函数
    python基本数据类型
    组合模式学习
    访问者模式
    C++ primer Plus回顾
    命令模式学习
    策略模式学习(设计模式)
    python_xlrd模块学习
  • 原文地址:https://www.cnblogs.com/miffy/p/4995720.html
Copyright © 2011-2022 走看看