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 代表着 Client,S 代表着服务器。
C/S 结构的系统设计图如下:
它指的是浏览器——服务器
的方式,其中 B 代表着 Browser,S 代表着服务器。
B/S 结构的系统设计图如下:
两种结构的区别
硬件环境不同:C/S 通常是建立在专用的网络或小范围的网络环境上(即局域网),且必须要安装客户端;而 B/S 是建立在广域网上的,适应范围强,通常有操作系统和浏览器就行。
C/S 结构比 B/S 结构更安全,因为用户群相对固定,对信息的保护更强。
B/S 结构维护升级比较简单,而 C/S 结构维护升级相对困难。
优势
C/S:是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。
B/S:总体拥有成本低、维护方便、分布性强、开发简单,可以不用安装任何专门的软件就能 实现在任何地方进行操作,客户端零维护,系统的扩展非常容易,只要有一台能上网的电脑就能使用。
服务器的概念非常的广泛,它可以指代一台特殊的计算机(相比普通计算机运行更快、负载更高、价格更贵),也可以指代用于部署网站的应用。
以下说的服务器,其实是 Web 服务器,或者应用服务器,它本质就是一个软件,一个应用。作用就是发布我们的应用(工程),让用户可以通过浏览器访问我们的应用。
常见的应用服务器:
服务器名称 | 说明 |
---|---|
weblogic | 实现了 javaEE 规范,重量级服务器,又称为 javaEE 容器 |
websphereAS | 实现了 javaEE 规范,重量级服务器 |
JBOSSAS | 实现了 JavaEE 规范,重量级服务器,免费 |
Tomcat | 实现了 jsp/servlet 规范,是一个轻量级服务器,开源免费 |
Tomcat 官网下载地址
问题 1:启动一闪而过
原因:没有配置环境变量。
解决办法:配置上 JAVA_HOME 环境变量。
问题 2:报错信息 Address already in use : JVM_Bind
原因:端口被占用。
解决办法:找到占用该端口的应用。
\conf\server.xml
中修改配置:问题 3:启动时很多异常,但能正常启动
原因:Tomcat 中部署着很多项目,每次启动这些项目都会启动。而这些项目中有启动报异常的。
解决办法:
其它问题
例如启动产生异常,但是不能正常启动。此时就需要部署一个新的 Tomcat 启动,来确定是系统问题,还是 Tomcat 的问题。
此时就需要具体问题,具体分析,然后再对症解决。
虚拟目录的配置,支持两种方式:第一种是通过在主配置文件中添加标签实现;第二种是通过写一个独立配置文件实现。
方式一:在server.xml
的<Host>
元素中加一个<Context path="" docBase=""/>
元素。
path
:访问资源 URI。URI 名称可以随便起,但是必须在前面加上一个“/”。docBase
:资源所在的磁盘物理地址。方式二:是写一个独立的xml
文件,该文件名可以随便起,但在文件内写一个<Context/>
元素。
conf\Catalina\localhost\
目录下。/+文件的名称
,而Context
的path
属性就失效了。在<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 服务器的主配置文件中配置着访问端口,它在配置文件中写的值是:8080。配置方式如下:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
配置默认应用
有两种方式可以配置默认应用。
方式一:把要作为默认应用的应用,名称改为ROOT
,放到webapps
目录中。
方式二:写一个独立的配置文件,文件名称为ROOT.xml
。
注意:ROOT
必须大写。当使用了独立的ROOT.xml
文件时,webapps
下ROOT
应用就不再是默认应用。
配置默认主页
首先要明确的是,配置默认主页是针对应用所说的,是应用的默认主页。
在应用的 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>
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 应用的主配置文件
步骤一:使用命令jar -cvf war [需要打包的目录路径]
打包 war 包。
步骤二:把打好的 war 包拷贝到 tomcat 的 webapps 目录中。
步骤三:Tomcat 在启动时,会自动解压 war 包。