- 软件的体系结构
- C/S和B/S的区别
- Web资源分类
- Web服务器
- Tomcat
- Tomcat简介
- Tomcat安装
- 访问Tomcat
- Tomcat的目录结构
- Tomcat常见问题
- Tomcat常见配置
- JavaWeb项目的目录结构
- 静态项目
- 动态项目
- 部署JavaWeb项目
跳转到目录 C/S结构
- VB,Delphi,VC++,C#,Java awt/swing:比如桌面QQ,扫雷,拱猪等运行在桌面的程序.
特点:
在服务端主要就是一个数据库,把所有业务逻辑以及界面的渲染操作交给客户端完成.优点:
安全,用户界面很丰富,用户体验好等.缺点:
每次升级都需要重新安装,针对于不同的操作系统开发,可移植性很差.
B/S结构
- JSP,ASP,PHP:基于浏览器访问的应用
特点:
把业务逻辑交给服务端完成,客户端仅仅只做界面渲染和数据交换,B/S是特殊的C/S,此时浏览器充当了基于HTTP协议的客户端.优点:
只开发服务端,可以跨平台,移植性很强等.缺点:
安全性较低,用户体验较差等.- 浏览器和服务器的职责
跳转到目录 静态资源
- html, css, JavaScript等
- 所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以
直接被浏览器解析
.
动态资源
- servlet, jsp, php, asp
- 每个用户访问相同资源后,得到的结果可能不一样。称为动态资源。动态资源被访问后,需要
先转换为静态资源,在返回给浏览器
.
跳转到目录
- Web服务器的作用是接收客户端的请求,给客户端作出响应。
- 对于JavaWeb程序而已,还需要有
JSP/Servlet容器
,JSP/Servlet容器的基本功能是把动态资源转换成静态资源
,当然JSP/Servlet容器不只这些功能. - 常见的Web服务器软件
web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目.
Tomcat(Apache):当前应用最广的JavaWeb服务器,; JBoss(Redhat红帽):支持JavaEE,应用比较广; GlassFish(Orcale):Oracle开发JavaWeb服务器,应用不是很广; Resin(Caucho):支持JavaEE,应用越来越广; Weblogic(Orcale):要钱的!支持JavaEE,适合大型项目; Websphere(IBM):要钱的!支持JavaEE,适合大型项目;
跳转到目录
-
简介 Tomcat 是 Apache 基金组织开发的一个中小型 JavaEE 服务器,是开源免费的,Tomcat是常见的免费的web服务器,Tomcat是使用Java语言编写的一个服务器(程序),要运行Tomcat,
必须得有JRE
; -
安装、环境变量配置 参考这篇博客: https://blog.csdn.net/qq_40881680/article/details/83582484
-
访问Tomcat
http://服务器所在主机的IP:服务器的端口号/资源名字.
注意:
访问本地IP为 127.0.0.1 或 localhost -
目录结构
bin:
该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat8.exe、tomcat8w.exe
,前者是在控制台下启动Tomcat,后者是弹出UGI窗口启动Tomcat;如果是解压版,那么会有startup.bat和shutdown.bat
文件,startup.bat用来启动Tomcat,但需要先配置JAVA_HOME
环境变量才能启动,shutdawn.bat用来停止Tomcat;conf:
这是一个非常重要的目录,这个目录下有四个最为重要的配置文件
.
server.xml:
配置整个服务器信息。例如修改端口号,添加虚拟主机等;tomcat-users.xml:
存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了;web.xml:
部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的!context.xml:
对所有应用的统一配置,通常我们不会去配置它。lib:
存放了Tomcat软件启动运行的依赖jar文件.logs:
这个目录中都是日志文件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在日志文件中。temp:
存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除!webapps:
存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。http://localhost:8080/examples,进入示例项目。其中examples就是项目名,即文件夹的名字。work:
工作目录,存放了jsp翻译成Servlet的java文件以及字节码文件.
-
常见问题 跳转到目录
- 还没启动Tomcat或者Tomcat启动失败,就去访问地址.
- Tomcat启动成功,但是出现
404
的页面. 可能我们自己把资源的路径写错了,自己检查,如访问了一个不存在的页面. - Tomcat还未关闭,又再次重新启动Tomcat. 出现:java.net.BindException: Address already in use: JVM_Bind异常. 说明该程序的端口以及被其他程序所占用.
注意:
出现错误后, 要习惯去查看日志信息.Tomcat根/logs/catalina.2015-12-31.log
- 要保证XML内容编码和文件编码相同,若有中文,
建议使用UTF-8
,否则不能使用中文. - 启动报错
- 暴力:找到占用的端口号,并且找到对应的进程,杀死该进程 * netstat -ano 2. 温柔:修改自身的端口号 * conf/server.xml * * 一般会将tomcat的默认端口号修改为80。80端口号是http协议的默认端口号。 * 好处:在访问时,就不用输入端口号
- 常见配置 1、
修改Tomcat的默认端口:
默认端口是8080,HTTP协议的默认端口是80.- 进入Tomcat根/conf/找到server.xml文件
- 默认是在第70行,Connector元素的 port属性:
- 配置为80端口(80端口是http协议的默认端口): http://baidu.com:80/index.php 等价于 http://baidu.com/index.php
- 重新启动Tomcat,看到效果;
跳转到目录
- WEB应用程序指供浏览器访问的程序,通常也简称为web应用。
- 一个web应用由多个
静态web资源
和动态web资源
组成.
- 一个web应用由多个
一、创建静态应用
- 在Tomcat的目录webapps文件夹下创建一个目录(如hello)
- 在webapps\hello\下创建静态资源(html, js等)index.html
- 启动Tomcat
- 打开浏览器访问
http://localhost:8080/hello/index.html
二、创建动态应用
- 在webapps下创建hello1目录
- 在webapps\hello1\下创建WEB-INF目录
- 在webapps\hello1\WEB-INF\下创建web.xml
- 在webapps\hello1\下创建index.html
- 打开浏览器访问
http://localhost:8080/hello/index.html
- hello:应用目录,hello就是应用的名称;
- index.html:应用资源。应用下可以有多个资源,例如css、js、html、jsp等,也可以把资源放到文件夹中,例如:hello\html\index.html,这时访问URL为:http://localhost:8080/hello/html/index.html;
WEB-INF:
这个目录名称必须是大写,这个目录下的东西是无法通过浏览器直接访问的,也就是说放到这里的东西是安全的.- web.xml:应用程序的部署描述符文件,可以在该文件中对应用进行配置.
- classes:存放class文件的目录.
- lib:存放jar包的目录.
跳转到目录 一、直接将项目放在webapps目录下即可
- /hello:项目的访问路径–>虚拟目录
- 简化部署:将项目打成一个war包,再将war包放置到webapps目录下。 war包会自动解压缩
二、配置conf/server.xml文件
- 在
Host
标签体内配置- path:指定当前应用的名称(虚拟目录)
- docBase:指定应用的物理位置
- 浏览器访问路径:
http://localhost:8080/zy/index.html
三、在conf\Catalina\localhost创建任意名称的xml文件
- 在文件中编写 比如 abc.xml
此时的path虚拟目录就为
xml文件的名称
- 访问
http://localhost/abc/index.html