前言
Python和Java的Web应用程序运行机制有些一些差异。
Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。
在Python的世界里Web服务器软件是Web框架的一部分,在Java中Web服务器软件和Web框架是分离开来的2个整体。
Python的Web框架内置了一些模块,例如Django内置了wsgiref,Flask内置了Werkzeug模块。
这些内置的模块实现了WSGI协议,Python的Web框架就启动之后就可以直接接收HTTP请求,并把HTTP请求传输给Web框架。
Python的Web框架中内置的wsgiref、Werkzeug模块就相当于Java中的Tomcat,1个PythonWeb框架启动之后就等同于Java启动了Web服务器。
Java中Web服务器软件和Web框架2者是分离开来的,我们需要启动Web服务器软件(Tomcat),Tomcat再调用Web框架才算是启动了1个Web服务器,才能接收HTTP请求。
Tomcat是一款由Apache开源的纯java开发的Java Web 应用服务器软件,web服务器软件封装了Socket,用户发起HTTP请求到Tomcat,Tomcat再调用Web框架。
一、Java Web相关概念
1.软件架构
C/S:客户端/服务器
B/S:浏览器/服务器
2.资源分类
静态资源:用户每次访问后,显示的结果是不变的。例如:HTML、CSS、Javascript。静态资源可以直接被浏览器解析。
动态资源:用户每次访问后,结果有可能改变。例如:Servlet、JSP。动态资源需要在服务端转换成静态资源之后,再返回给浏览器。
3.网络通信3要素
IP:网络标识
端口:应用程序在本机的标识 0-65535
传输协议:我们通过IP+端口建立了TCP连接之后就需要传输数据,而传输协议规定了数据传输的规则。
4.JavaEE
Java语言在企业级开发中使用的技术规范总和。
共规范了13项大的规范:
5.Jva Web项目的分类
Java Web项目分为静态Web项目和动态Web项目。
A.静态的Java web项目:早起的网页是固定不变的只包含HTML、CSS、JS。
B.动态Java Web项目
动态Java Web项目是针对静态Web项目产生的。
-----项目的根目录
----WEB-INF目录
------web.xml:web项目的核心配置文件
------classes目录:存放Java代码编译之后的字节码文件
------lib目录:存放依赖jar包
二、Web服务器是什么?
在Python中wsgi服务器接收和响应http请求传递给web框架去处理。
在Java web中需要借助web服务器软件。
服务器:安装了服务器软件的计算机,但是这种计算机的硬件配置比我们平时使用的笔记本/台式机要高。服务器安装了MySQL软件就是MySQL服务器,安装了Web软件就是Web服务器。
服务器软件:可以接受用户请求、处理客户请求,并作给用户作出响应。
Web服务器软件:可以部署Web项目,让用户可以通过浏览器来访问这些web项目。动态资源只能运行在web服务器软件中,固Web服务器也称为Web容器。
三、Java相关的Web服务器软件
1.WebLogic:Oracle公司退出的大型JavaEE服务器,支持所有JavaEE规范。收费。
2.WebSphere:IBM公司退出的大型JavaEE服务器,支持所有JavaEE规范。收费。
3.JBOSS: JBoss公司退出的大型JavaEE服务器,支持所有JavaEE规范。收费。
4.Tomcat: Apache基金组织,中小型JavaEE服务器,支持少量的JavaEE规范(Servlet、JSP规范)。开源免费。
四、Tomcat服务器软件
一般中小型企业都会使用Tomcat这款开源的Web服务器软件构建Web服务器。
2.安装Tomcat
解压缩到指定目录下即可
3.配置Tomcat
4.启动Tomcat
5.关闭Tomcat
6.Web项目部署到Tomcat
我们可以通过4种方式把Java Web项目部署到Tomcat容器中
方式1:文件夹部署
直接将项目文件夹放到Tomcat的webapp目录下
访问:http://127.0.0.1:8080/zhanggen/index.html
方式2:war包部署
文件夹不便于网络传输,把Web项目压缩成war包,放到Tomcat的webapp目录下,重启Tomcat之后该war包会被自动解压缩成文件夹。
方式3:修改全局配置文件部署
如果不想把的项目放到tomcat/webapp/目录下,可以通过全局配置文件(server.xml)来指定项目所在的路径。
修改tomcat目录/conf/server.xml配置文件
<!--部署项目--> <Context docBase="D:\zhanggen" path="zhanggen666" /> </Host> </Engine> </Service> </Server>
访问:http://127.0.0.1:8080/zhanggen666/
方式4:配置局部配置文件部署
由于修改tomcat/conf/server.xml全局配置文件会影响Tomcat的全局配置。
可在Tomcat\conf\Catalina\localhost目录下创建任意名称的.xml局部配置文件,指定项目所在路径。
例如在该目录下创建zhanggen.xml配置文件编辑内容如下:
<Context docBase="D:\zhanggen" />
访问:http://127.0.0.1:8080/zhanggengen/
五、IDEA集成Tomcat
在开发环境中,如果每次都去Tomcat的webapps目录下手动部署项目,去Tomcat的的bin目录下执行startup和shutdown脚本启动和关闭Tomcat服务器,会非常麻烦。
借助IDEA开发工具可以完成以上工作。
1.IDEA会为每一个Tomcat部署的项目单独建立一份配置文件
2.工作空间项目和tomcat部署的web项目的关系
tomcat真正使用的是tomcat部署的web项目
tomcat部署的web项目对应着工作空间项目web目录下的所有资源