Tomcat&Servlet基础学习
1.web相关概念回顾
1. 软件架构有:B/S模式 和 C/S模式
2. 资源分类:
1. **静态资源:**所有用户访问后,得到的结果都是一样的,称为静态资源(静态资源可以直接被浏览器解析)。*如: html,css,JavaScript*
2. **动态资源:**每个用户访问相同资源后,得到的结果可能不一样。称为动态资源。* 如: servlet/jsp,php,asp....*
** 动态资源的访问需要转换成静态资源,再返回给浏览器才可被解析**
3. 网络通信三要素:IP、端口(0-65536)、传输协议(TCP/UDP)
2.Tomcat的启动
1. bin/startup.bat,双击运行改文件即可
2. 访问: http://IP地址:8080 回车访问
**启动可能遇到的问题**
1. 黑窗口一闪而过:
*原因:没有正确配置JAVA_HOME环境变量*
*解决方案:正确配置JAVA_HOME环境变量*
2. 启动报错:
*1. 暴力:找到占用的端口号,并且找到对应的进程,杀死该进程。*
* netstat -ano 查看所有端口号*
*2. 温柔:修改自身端口号。*
* 进入conf/server.xml修改端口号*
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
* 一般会将tomcat的默认端口号修改为80。80端口号为HTTP协议的默认端口号 *
* 好处:访问时无需输入端口号 *
3.Tomcat的关闭
正常关闭
1. 运行bin/shutdown.bat
2. ctrl+c
强制关闭
点击窗口的 x
4.Tomcat的部署项目
1.直接将项目放到webapps目录下即可
访问:http://localhost/目录名/文件名
简化部署:将项目打包成war包,再将war包放置到webapps目录下,war包会自动解压缩
2.配置server.xml(了解即可,不会这样做)
在 标签体中配置
* docBase:项目存放的路径*
* path:虚拟目录*
3.通过conf\Catalina\localhost创建a.xml文件
在server.xml文件中编写docBase=“目录路径”
访问:http://localhost/a/hello.html 通过xml文件中编写文件路径就可以达到访问外部文件的目的
Java动态项目的目录结构:
– 项目根目录
– WEB-INF目录
– web.xml:web项目的核心配置文件
– classes目录:放置字节码文件的目录
– lib目录:放置依赖的jar包
Servelet
*概念:运行在服务器端的小程序 **
* Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则
未来需要自己自定义一个类,实现Servelet接口,复写方法。
配置Servlet
在web.xml中配置
<!-- 配置Servlet -->
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>cn.web.servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>
web.xml配置时的执行原理:
1. 当服务器接收到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
2. 查找web.xml文件,是否有对应的 标签体内容。
3. 如果有,则再找到对应的全类名
4. tomcat会将字节码文件加载进内存,并且创建其对象
5. 调用其方法
Servlet中方法的执行次数
执行一次的方法:init方法 、destroy方法
执行多次的方法:service方法
Servlet的生命周期
Servlet什么时候被创建?
默认情况下,第一次被访问时,Servlet被创建
可以配置执行Servlet的创建时机
在标签下配置
1.第一次被访问时,创建
的值为负数
2.在服务器启动时,创建
的值为0或正整数
默认情况下为-1(第一次被访问时,Servlet被创建)
注意:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要对其修改值,(init方法一般用于加载资源)。
Servlet3.0的好处
支持注解配置。可以不需要web.xml了。例如:@WebServlet(“资源路径”)
虚拟目录:项目的名称
资源路径:url的访问名称
Tomcat与IDEA的配置问题
- IDEA会为每一个tomcat部署的项目单独建立一份配置文件
通过查看控制台输出log: Using CATALINA_BASE: “C:\Users\20576.IntelliJIdea2019.3\system\tomcat_day01_tomcat” 可以查找到 - 工作空间项目 和 tomcat部署的web项目
tomcat正真访问的是"tomcat部署的web项目","tomcat部署的web项目"对应着"工作空间项目"的web目录的所有资源
WEB-INF目录下的资源不能被浏览器直接访问。