JavaEE & Tomcat 介绍
阅读原文时间:2021年10月02日阅读:1

目录

企业开发介绍

JavaEE规范是J2EE规范的新名称,早期被称为 J2EE 规范,其全称是 Java 2 Platform Enterprise Edition,是由 SUN 公司领导、各厂家共同制定并得到广泛认可的工业标准(JCP 组织成员)。

其中,JCP 组织(官网)的全称是 Java Community Process,是一个开放的国际组织,主要由 Java 开发者以及被授权者组成,职能是发展和更新,成立于 1998 年。

JavaEE 规范是众多 Java 开发技术的总称。这些技术规范都是沿用自 J2EE 的,一共包括了 13 个技术规范,如jsp/servlet、jndi、jaxp、jdbc、jni、jaxb、jmf、jta、jpa、EJB 等。

JavaEE 的版本是延续了 J2EE 的版本,但是没有继续采用其命名规则。J2EE 的版本从 1.0 开始到 1.4 结束,而 JavaEE 版本是从 JavaEE 5 版本开始的,详情请参考:JavaEE8 规范概览

Web 在英文中的含义是网状物、网络。在计算机领域,它通常指的是后者,即网络

WWW 是由 3 个单词组成的,即World Wide Web,中文含义是万维网;而 HTML、CSS 和 JS 的参考文档《W3School 全套教程》中的W3C就是万维网联盟

他们的出现都是为了让我们在网络的世界中获取资源,这些资源的存放之处,我们称之为网站。我们通过输入网站的地址(即网址),就可以访问网站中提供的资源。

在网上我们能访问到的内容全是资源(不区分局域网还是广域网)。只不过,不同类型的资源展示的效果不一样。资源可以分为静态资源和动态资源:

  • 静态资源指的是,网站中提供给人们展示的资源是一成不变的,也就是说不同人或者在不同时间,看到的内容都是一样的。例如:我们看到的新闻,网站的使用手册,网站功能说明文档等等。而作为开发者,我们编写的 html、css、js、图片、多媒体等,都可以称为静态资源。

  • 动态资源指的是,网站中提供给人们展示的资源是由程序产生的,在不同的时间或者用不同的人员由于身份的不同,所看到的内容是不一样的。例如:我们在12306上购买火车票,火车票的余票数由于时间的变化,会逐渐的减少,直到最后没有余票。还有,我们在 CSDN 上下载资料,只有登录成功后,且积分足够时才能下载。否则就不能下载,这就是访客身份和会员身份的区别。作为开发人员,我们编写的 JSP、servlet、php、ASP 等都是动态资源。

关于广域网和局域网的划分,广域网指的就是万维网,也就是我们说的互联网;局域网是指的是在一定范围之内可以访问的网络,出了这个范围,就不能再使用的网络。

  • 根据基础结构划分:C/S 结构,B/S 结构两类。
  • 根据技术选型划分:Model1 模型,Model2 模型,MVC 模型、三层架构 + MVC 模型。
  • 根据部署方式划分:一体化架构,垂直拆分架构,分布式架构,流动计算架构,微服务架构。

C/S 结构

它指的是客户端——服务器的方式,其中 C 代表着 Client,S 代表着服务器。

C/S 结构的系统设计图如下:

B/S 结构

它指的是浏览器——服务器的方式,其中 B 代表着 Browser,S 代表着服务器。

B/S 结构的系统设计图如下:

两种结构的区别及优略

两种结构的区别

  1. 硬件环境不同:C/S 通常是建立在专用的网络或小范围的网络环境上(即局域网),且必须要安装客户端;而 B/S 是建立在广域网上的,适应范围强,通常有操作系统和浏览器就行。

  2. C/S 结构比 B/S 结构更安全,因为用户群相对固定,对信息的保护更强。

  3. B/S 结构维护升级比较简单,而 C/S 结构维护升级相对困难。

优势

  1. C/S:是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。

  2. B/S:总体拥有成本低、维护方便、分布性强、开发简单,可以不用安装任何专门的软件就能 实现在任何地方进行操作,客户端零维护,系统的扩展非常容易,只要有一台能上网的电脑就能使用。

Tomcat

关于服务器

服务器的概念非常的广泛,它可以指代一台特殊的计算机(相比普通计算机运行更快、负载更高、价格更贵),也可以指代用于部署网站的应用。

以下说的服务器,其实是 Web 服务器,或者应用服务器,它本质就是一个软件,一个应用。作用就是发布我们的应用(工程),让用户可以通过浏览器访问我们的应用。

常见的应用服务器:

服务器名称

说明

weblogic

实现了 javaEE 规范,重量级服务器,又称为 javaEE 容器

websphereAS

实现了 javaEE 规范,重量级服务器

JBOSSAS

实现了 JavaEE 规范,重量级服务器,免费

Tomcat

实现了 jsp/servlet 规范,是一个轻量级服务器,开源免费

Tomcat下载与安装

Tomcat 官网下载地址

Tomcat 各版本所需支持

Tomcat 目录结构

Tomcat 启停及问题

问题 1:启动一闪而过

  • 原因:没有配置环境变量。

  • 解决办法:配置上 JAVA_HOME 环境变量。

问题 2:报错信息 Address already in use : JVM_Bind

  • 原因:端口被占用。

  • 解决办法:找到占用该端口的应用。

    • 已占的进程不重要:使用 cmd 命令:netstat -a -o 查看 pid,在任务管理器中结束占用端口的进程。

    • 已占的进程很重要:修改 Tomcat 自己的端口号。在 Tomcat 目录下\conf\server.xml中修改配置:

问题 3:启动时很多异常,但能正常启动

  • 原因:Tomcat 中部署着很多项目,每次启动这些项目都会启动。而这些项目中有启动报异常的。

  • 解决办法:

    • 能找到报异常的项目,就把它从发布目录中移除。
    • 不能确定报异常的项目,就重新部署一个新的 Tomcat。

其它问题

  • 例如启动产生异常,但是不能正常启动。此时就需要部署一个新的 Tomcat 启动,来确定是系统问题,还是 Tomcat 的问题。

  • 此时就需要具体问题,具体分析,然后再对症解决。

IDEA 集成 Tomcat

Tomcat 配置虚拟目录

虚拟目录的配置,支持两种方式:第一种是通过在主配置文件中添加标签实现;第二种是通过写一个独立配置文件实现。

方式一:在server.xml<Host>元素中加一个<Context path="" docBase=""/>元素。

  • path:访问资源 URI。URI 名称可以随便起,但是必须在前面加上一个“/”。
  • docBase:资源所在的磁盘物理地址。

方式二:是写一个独立的xml文件,该文件名可以随便起,但在文件内写一个<Context/>元素。

  • 该文件要放在 Tomcat 目录中的conf\Catalina\localhost\目录下。
  • 需要注意的是,在使用了独立的配置文件之后,访问资源 URI 就变成了/+文件的名称,而Contextpath属性就失效了。

Tomcat 配置虚拟主机(域名)

<Engine>元素中添加一个<Host name="" appBase="" unparkWARs="" autoDeploy="" />,其中:

  • name:指定主机的名称。
  • appBase:当前主机的应用发布目录。
  • unparkWARs:启动时是否自动解压 war 包。
  • autoDeploy:是否自动发布。

配置示例如下:

<Host name="www.itcast.cn" appBase="D:\itcastapps" unpackWARs="true" autoDeploy="true"/>

<Host name="www.itheima.com" appBase="D:\itheimaapps" unpackWARs="true" autoDeploy="true"/>

Tomcat 默认项配置

配置默认端口

Tomcat 服务器的主配置文件中配置着访问端口,它在配置文件中写的值是:8080。配置方式如下:

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

配置默认应用

有两种方式可以配置默认应用。

方式一:把要作为默认应用的应用,名称改为ROOT,放到webapps目录中。

方式二:写一个独立的配置文件,文件名称为ROOT.xml

  • 注意:ROOT必须大写。当使用了独立的ROOT.xml文件时,webappsROOT应用就不再是默认应用。

配置默认主页

首先要明确的是,配置默认主页是针对应用所说的,是应用的默认主页。

在应用的 web.xml 中配置:

<welcome-file-list>
    <welcome-file>默认主页</welcome-file>
</welcome-file-list>

例如:

<welcome-file-list>
    <!-- 有多个默认页时,先找到的就显示,不再往下找 -->
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

Java Web 应用

JavaWeb应用是一个全新的应用种类,这类应用程序指供浏览器访问的程序,通常也简称为 Web 应用。

一个 Web 应用由多个静态 Web 资源和动态 Web 资源组成,例如有 html、css、js 文件,jsp 文件、java 程序、支持的 jar 包、工程配置文件、图片、音视频等等。

Web 应用开发好后,若想供外界访问,需要把 Web 应用的所在目录,交给 Web 服务器管理(Tomcat 就是 Web 服务器之一),这个过程称之为虚似目录的映射。

myapp -------- 应用名称
    demo.html
    css/demo.css
    js/demo.js
    WEB-INF -------- 如果有 web.xml 或者 .class 文件时,该目录必须存在,且严格区分大小写。
            -------- 该目录下的资源,客户端是无法直接访问的。
                -------- 目录中内容如下:
        classes 目录 -------- web 应用的 class 文件(加载顺序:我们的 class,lib 目录中的 jar 包,tomcat 的 lib 目录中的 jar 包。其优先级依次降低)
        lib 目录 -------- web 应用所需的 jar 包(tomcat 的 lib 目录下 jar 为所有应用共享)
        web.xml -------- web 应用的主配置文件

IDEA 部署

war 包发布

步骤一:使用命令jar -cvf war [需要打包的目录路径]打包 war 包。

步骤二:把打好的 war 包拷贝到 tomcat 的 webapps 目录中。

步骤三:Tomcat 在启动时,会自动解压 war 包。