01 j2ee 企业应用和开发环境

本文介绍J2EE架构的分层模型,并详细阐述Tomcat服务器的安装配置过程,包括修改服务端口、配置Manager应用及数据源等。

j2ee的分层模型

不管是经典的J2ee架构, 还是轻量级的, 大致分为如下层次:

  • Domain Object, 此层由系列的POJO(Plain Old Java Object, 普通的, 传统的java对象)组成, 这些对象是该系统的Domain Object, 往往包含了各自所需要实现业务流程.
  • DAO(Data Access Object, 数据访问对象) 层, 此层由系列的 DAO 组件组成, 这些 DAO 实现了对数据库的创建, 查询, 更新和删除(CRUD)等原子操作.
  • 业务逻辑层: 此层由系列的业务逻辑对象组成, 这些业务逻辑对象实现了系统所需要的业务逻辑方法, 这些业务逻辑方法可能仅仅用于暴露Domain Object对象所实现的业务逻辑方法, 也可能依赖DAO组件实现的业务逻辑方法.
  • 控制器层: 此层由系列控制器组成, 这些控制器用于拦截用户请求, 并调用业务逻辑组件的业务逻辑方法, 处理用户请求, 并根据处理结果转发到不同的表现层组件.
  • 表现层: 此层由系列的JSP页面, Velocity页面, PDF文档视图组件组成, 负责收集用户请求, 并显示处理结果.

以上组件, 基本上还是围绕 MVC

tomcat 安装

下载解压

bin 目录: 存放启动和关闭Tomcat 的命令的路径

conf 目录: 存放Tomcat配置, 所有的 Tomcat的配置都应该在该路径下

lib: 存放着 tomcat 服务器的核心类库(jar文件), 如果需要扩展tomcat功能, 也可以将第三方类库复制到该路径下

logs: 空路径, 该路径用户保存 tomcat 每次运行后产生的日志

temp: 保存web应用运行过程中生成的临时文件

webapps: 该路径用于自动部署web应用, 将web应用复制在该路径下, tomcat 会讲该应用自动部署到容器中.

work: 保存web应用运行过程中, 编译生成的class文件, 该文件夹可以删除, 但每次启动tomcat服务器时, 系统将再次建立该路径.

LICENSE 等相关文档.

配置 tomcat 服务端口

默认的服务端口是8080, tomcat的配置文件都在conf目录下, 控制端口的配置文件也放在该路径下, 打开conf下得server.xml文件, 务必使用 vi 等无格式编辑器.

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

修改这个地方的 8080 端口, 将端口设置到1024以上, 比如这里修改成 8888.

进入控制台

在tomcat页面显示有3个控制台:

server status: 用于监控服务器状态

Manager App: 可以部署监控web应用, 我们通常使用这个.

Host Manager:

这个控制台必须输入用户名和密码才可以登录, (向后主要说明 Manager App的使用), webapps 路径是web应用存放位置, 而manager 控制台对应的web应用也使放在该路径下, 进入 webapps/manager/WEB-INF路径下, 该路径存放了Manager应用的配置文件, 用无格式编辑器打开 web.xml. 该文件最后部分, 存在:

 

 <!-- Define a Security Constraint on this Application -->
  <!-- NOTE:  None of these roles are present in the default users file -->
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>HTML Manager interface (for humans)</web-resource-name>
      <url-pattern>/html/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-gui</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Text Manager interface (for scripts)</web-resource-name>
      <url-pattern>/text/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-script</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>JMX Proxy interface</web-resource-name>
      <url-pattern>/jmxproxy/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-jmx</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Status interface</web-resource-name>
      <url-pattern>/status/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-gui</role-name>
       <role-name>manager-script</role-name>
       <role-name>manager-jmx</role-name>
       <role-name>manager-status</role-name>
    </auth-constraint>
  </security-constraint>

  <!-- Define the Login Configuration for this Application -->
  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Tomcat Manager Application</realm-name>
  </login-config>

  <!-- Security roles referenced by this web application -->
  <security-role>
    <description>
      The role that is required to access the HTML Manager pages
    </description>
    <role-name>manager-gui</role-name>
  </security-role>
  <security-role>
    <description>
      The role that is required to access the text Manager pages
    </description>
    <role-name>manager-script</role-name>
  </security-role>
  <security-role>
    <description>
      The role that is required to access the HTML JMX Proxy
    </description>
    <role-name>manager-jmx</role-name>
  </security-role>
  <security-role>
    <description>
      The role that is required to access to the Manager Status pages
    </description>
    <role-name>manager-status</role-name>
  </security-role>

通过上面的配置文件, 可以知道, 登录 Manager 控制台可能需要不同的 manager 角色, 对于普通开发者来说, 通常需要配置 /text/*, /status/* 的资源, 因此为该用户分配一个 manager-gui 角色即可.

tomcat 默认采用文件安全域, 即以文件存放用户名和密码, tomcat 的用户由 conf 路径下得 tomcat-users.xml 文件控制, 打开该文件, 将 tomcat-users.xml 文件内容修改如下:

<tomcat-users>
    <!-- 增加一个角色, 指定角色名即可 -->
    <role rolename="manager-gui" />
    <!-- 增加一个用户, 指定用户名, 密码和角色 -->
    <user username="manager" password="manager" roles="manager-gui" />
<!--

增加以上内容

然后就可以登录了, 登录后的画面:

 

部署web应用

在 tomcat 中部署web应用主要有以下几种方式:

  • 利用 tomcat 的自动部署
  • 利用控制台部署
  • 增加自定义的web部署文件
  • 修改server.xml文件部署web应用

利用 tomcat 自动部署方式最简单, 最常用, 我们只要将一个 web 应用复制到 tomcat 的 webapps 下, 系统会把该应用部署到 tomcat 中. (就是我以前的部署方式)

配置 tomcat 数据源

tomcat 两种方式配置数据源, 一种是所有的web应用都能访问, 称为全局数据源, 另一种是只能单个web应用中访问, 称为局部数据源. 不管配置哪种数据源, 实现都需要JDBC驱动, 读者必须将对应数据库(mysql, oracle等)得JDBC驱动程序复制到tomcat的 lib 目录下.

个人使用局部数据源.

局部数据源无需修改系统配置文件, 只需修改用户自己的web部署文件, 局部数据源只与特定的web应用相关, 因此在该web应用对应的部署文件中配置.

补充: JNDI 的全称是 java naming directory interface, 即 java 命名与目录接口, 挺起来非常专业, 其实很简单, 就是为某个 java 对象起一个名字.

Eclipse 的安装与使用

eclipse j2ee 版, 是在"纯净" 的eclipse 版基础上增加的插件. (eclispe 都是硬盘版的, 不需要安装)

eclipse 插件安装

在线安装eclipse 插件 (Help菜单-> Install New Software..-> )

使用 Eclipse 开发 JavaEE 应用

为了开发web应用, 必须先在 Eclipse 中配置 web 服务器, 单击 eclipse 下方面板的 "servers", 在空白处右键, 在弹出的快捷菜单中选择 new->server菜单, 选择 apache->Tomcat v7.0->next, 填写tomcat的安装详细情况, 路径,JRE路径, 然后 Finish.

建立一个web应用的简单步骤

1) Eclipse "File"菜单-> new-> other菜单项.

2) web文件夹里的 Dynamic Web Project点next->"project name"输入, 然后点 finish.

3) 左边导航树 "WebContent->New->Jsp File" 创建一个jsp页面

4) 编辑jsp页面, eclipse提供了一个简单的"所见即所得"的jsp编辑环境

5) web 应用开发完成后, 应将web应用部署到 tomcat 中进行测试. 部署web应用可通过单击eclipse左边项目导航树 "Run As->Run on Server"

个人感觉, 一般会有个开发环境和实际运行环境, 实际运行环境还是需要手动部署(copy文件等)

使用 cvs 进行协作开发

目前使用 svn 的也很多, svn 是 cvs 的升级版, 用法很像, 而且 svn 更简单.

安装 cvs 服务器

cvs 是基于 c/s 架构的程序, cvs 包含客户端和服务器两个部分, 其中服务器通常由 CVSNT 充当, 而客户端则通常使用WinCvs.

 

 

根据原作 https://pan.quark.cn/s/0ed355622f0f 的源码改编 野火IM解决方案 野火IM是专业级即时通讯实时音视频整体解决方案,由北京野火无限网络科技有限公司维护支持。 主要特性有:私有部署安全可靠,性能强大,功能齐全,全平台支持,开源率高,部署运维简单,二次开发友好,方便与第三方系统对接或者嵌入现有系统中。 详细情况请参考在线文档。 主要包括一下项目: 野火IM Vue Electron Demo,演示如何将野火IM的能力集成到Vue Electron项目。 前置说明 本项目所使用的是需要付费的,价格请参考费用详情 支持试用,具体请看试用说明 本项目默认只能连接到官方服务,购买或申请试用之后,替换,即可连到自行部署的服务 分支说明 :基于开发,是未来的开发重心 :基于开发,进入维护模式,不再开发新功能,鉴于已经终止支持且不再维护,建议客户升级到版本 环境依赖 mac系统 最新版本的Xcode nodejs v18.19.0 npm v10.2.3 python 2.7.x git npm install -g node-gyp@8.3.0 windows系统 nodejs v18.19.0 python 2.7.x git npm 6.14.15 npm install --global --vs2019 --production windows-build-tools 本步安装windows开发环境的安装内容较多,如果网络情况不好可能需要等较长时间,选择早上网络较好时安装是个好的选择 或参考手动安装 windows-build-tools进行安装 npm install -g node-gyp@8.3.0 linux系统 nodej...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值