提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
1.企业级开发简介
1.1 JavaEE规范
- JavaEE 规范是 J2EE 规范的新名称,早期被称为 J2EE 规范,其全称是 Java 2 Platform Enterprise Edition ,它是由SUN公司领导、各厂家共同制定并得到广泛认可的工业标准( JCP 组织成员)。
- 之所 以改名为 JavaEE ,目的还是让大家清楚 J2EE 只是 Java 企业应用。
- 在2004年底中国软件技术大会 Ioc 微容器(也就是 Jdon 框架的实现原理)演讲中指出:我们需要一个跨 J2SE/WEB/EJB 的微容器,保护 我们的业务核心组件,以延续它的生命力,而不是依赖 J2SE/J2EE 版本.此次 J2EE 改名为 Java EE , 实际也反映出业界这种共同心声。
- JavaEE 规范是很多 Java 开发技术的总称。这些技术规范都是沿用自 J2EE 的。一共包括了13个技术规 范。例如: jsp/servlet , jndi , jaxp , jdbc , jni , jaxb , jmf , jta , jpa , EJB 等。
- 其中, JCP 组织的全称是 Java Community Process 。它是一个开放的国际组织,主要由 Java 开发者 以及被授权者组成,职能是发展和更新。成立于1998年。官网是:JCP JavaEE 的版本是延续了 J2EE 的版本,但是没有继续采用其命名规则。
- J2EE 的版本从1.0开始到1.4结 束,而 JavaEE 版本是从 JavaEE 5 版本开始,目前最新的的版本是 JavaEE 8 。
1.2 Web技术
- web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。
- 前面学的 HTML , CSS 和 JS 的参考文档《 W3School 全套教程》中的 W3C 就是万维网联盟。他们的出现都是为了 让我们在网络的世界中获取资源,这些资源的存放之处,我们称之为网站。我们通过输入网站的地址 (即:网址),就可以访问网站中提供的资源。在网上我们能访问到的内容全是资源(不区分局域网还 是广域网)。只不过,不同类型的资源展示的效果不一样。
- 资源可以分为静态资源与动态资源
- 静态资源指的是,网站中提供给人们展示的资源是一成不变的,也就是说不同人或者在不同时间,看到 的内容都是一样的。例如:我们看到的新闻,网站的使用手册,网站功能说明文档等等。而作为开发 者,我们编写的 html , css , js ,图片,多媒体等等都可以称为静态资源。
- 动态资源它指的是,网站中提供给人们展示的资源是由程序产生的,在不同的时间或者用不同的人员由 于身份的不同,所看到的内容是不一样的。例如:我们在12306上购买火车票,火车票的余票数由于时 间的变化,会逐渐的减少,直到最后没有余票。还有,我们在 CSDN 上下载资料,只有登录成功后,且 积分足够时才能下载。否则就不能下载,这就是访客身份和会员身份的区别。作为开发人员,我们编写 的 JSP , servlet , php , ASP 等都是动态资源。
- 关于广域网和局域网的划分,广域网指的就是万维网,也就是我们说的互联网。局域网是指的是在一定 范围之内可以访问的网络,出了这个范围,就不能再使用的网络。
1.3 体系结构
- 在我们前面课程的学习中,开发的都是 Java 工程。这些工程在企业中称之为项目或者产品。
- 项目也 好,产品也罢,它是有系统架构的,系统架构的划分有很多种方式。
- 我们今天讨论的是基础结构上的划 分。除此之外,还有技术选型划分,部署方式划分等等。
- 基础结构划分:C/S结构,B/S结构两类。
- 技术选型划分:Model1模型,Model2模型,MVC模型和三层架构+MVC模型。
- 部署方式划分:一体化架构,垂直拆分架构,分布式架构,流动计算架构,微服务架构。
1.C/S结构
它指的是客户端——服务器的方式。其中C代表着Client,S代表着服务器。C/S结构的系统设计图如 下:
优点:C/S:是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优 点就是客户端响应速度快。
2.B/S架构
它指的是浏览器——服务器的方式。其中B代表着Browser,S代表着服务器。B/S结构的系统设计图如 下:
优点: B/S:总体拥有成本低、维护方便、 分布性强、开发简单,可以不用安装任何专门的软件就能 实现在 任何地方进行操作,客户端零维护,系统的扩展非常容易,只要有一台能上网的电脑就能使用。
两种架构的区别
- 硬件环境不同,C/S通常是建立在专用的网络或小范围的网络环境上(即局域网),且必须要安 装客户端。而B/S是建立在广域网上的,适应范围强,通常有操作系统和浏览器就行。
- C/S结构比B/S结构更安全,因为用户群相对固定,对信息的保护更强。
- B/S结构维护升级比较简单,而C/S结构维护升级相对困难。
2.Tomcat服务器相关概述
2.1 Tomcat介绍
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。Tomcat最新版本为10.0.14。
常见的服务器
服务器 描述 weblogic 实现了javaEE规范,重量级服务器,又称为javaEE容器 websphereAS 实现了javaEE规范,重量级服务器 JBOSSAS 实现了JavaEE规范,重量级服务器。免费的。 Tomcat 实现了jsp/servlet规范,是一个轻量级服务器,开源免费。
2.2 下载与安装
- 下载地址:https://tomcat.apache.org/download-80.cgi
- 安装方式:是免安装的,直接解压
- 启动方式:start.bat
- 关闭方式: shutdown.bat
- 端口号配置 : tomcat/conf/server.xml
- 启动控制台乱码 : tomcat\conf\logging.properties
ava.util.logging.ConsoleHandler.encoding = GBK
2.3 启动出现的问题
1.启动一闪而过
出现的原因:因为tomcat是要依托本地的JDK来运行的,本地的JDK若没有配置环境变量。就会闪退。
解决方式:通过JAVA_HOME方式来配置环境变量
2.Address already in use : JVM_Bind
出现原因:tomcat的端口被占用
解决方式:修改tomcat端口、或者关闭8080端口正在运行的程序
3.启动有很多异常,但仍然能够正常启动
原因:Tomcat中部署着很多项目,每次启动这些项目都会启动。而这些项目中有启动报异常的。
解决办法: 能找到报异常的项目,就把它从发布目录中移除。 不能确定报异常的项目,就重新解压一个新的Tomcat。
2.4 Tomcat目录结构介绍
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lo75Chnu-1663069532919)(3.png)]
2.6 Tomcat 部署项目
方式一 : 直接将项目文件部署在Tomcat中webapps目录下。
- 直接将一个web应用程序放置在tomcat/webapps目录下。这时web应用程序目录名称就是我们访问 tomcat下的这个应用程序的名称
方式二 : 虚拟目录初级版
- 将一个不在tomcat下的web应用程序部署加载。可以在tomcat/conf/server.xml文件中配置,在 server.xml文件中的标签中添加一段配置
<Context docBase="磁盘路径" path="项目访问路径" />
方式三 : 虚拟目录优化版
- 在tomcat/conf/Catalina/localhost下创建任意名称的一个xml文件,例如创建一个good.xml文件, 在good.xml中书写
<Context docBase="磁盘路径" />
- 这种方案配置,xml文件的名称就是访问路径,在浏览器中访问http://localhost/good就可以。
2.7 在IDEA中部署Tomcat服务器
1.创建JavaWeb项目
2.选择项目存放路径
3.添加Tomcat插件
4.配置tomcat插件
5.部署web项目环境
6.配置Tomcat参数信息
7.点击ok配置完成
2.8 在Linux系统上配置Tomcat服务器
1.进入Tomcat官网,找到对应版本点击 download 进入下载页 面,如下图
2.上传到Linux
在crt上 使用 alt+p
将windows上的软件拖进去即可(root目录)
3.在 /usr/local 新建一个文件夹tomcat
mkdir /usr/local/tomcat
4.移动 tomcat…tar.gz 到 /usr/local/tomcat
mv apache-tomcat-8.5.32.tar.gz /usr/local/tomcat/
5.进入/usr/local/tomcat目录,解压Tomcat
cd /usr/local/tomcat
tar -xvf apache-tomcat-8.5.32.tar.gz
7.进入 /usr/local/tomcat/apache-tomcat-8.5.32/bin
cd /usr/local/tomcat/apache-tomcat-8.5.32/bin
8.启动tomcat
方式1:
sh startup.sh
方式2:
./startup.sh
9.修改防火墙的规则
方式1:service iptables stop 关闭防火墙(不建议); 用到哪一个端口号就放行哪一个
(80,8080,3306...)
方式2:放行8080 端口
修改配置文件
cd /etc/sysconfig
vi iptables
复制(yy , p)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
改成
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j
ACCEPT
重启加载防火墙或者重启防火墙
service iptables reload
或者
service iptables restart
2.9.web资源会部署到那去?
①web目录中资源会部署到哪儿?
部署到"\day09_web_war_exploded"
②src目录中资源会部署到哪儿?
部署到"\day09_web_war_exploded\WEB-INF\classes"
③项目目录中资源会部署到哪儿?
不会部署!!!
④WEB-INF目录中资源会部署到哪儿?
部署到"/day09_web_war_exploded/WEB-INF" WEB-INF目录中的资源不能够直接被外部访问,它们是受保护的资源,只能被内部访问(转发)