web服务器软件
- 服务器 : 安装了服务器软件的计算机.
- 服务器软件 : 接收用户的请求,处理请求,做出响应.
- web服务器软件 : 接收用户的请求,处理请求,做出响应
- 在web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目
- 有时又被称为web容器
- 常见的java相关的web服务器软件:
- webLogic : Oracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的.
- webSphere : IBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的.
- JBoss : JBoss公司的,大型的JavaEE服务器,支持所有的JavaEE规范,收费的.
- Tomcat : Apache基金组织,中小型的JavaEE服务器,仅仅支持少量的JavaEE规范,servlet/jsp.开源的
- JavaEE : Java语言在企业级开发中使用的技术规范的综合,一共规定了13项大的规范.
Tomcat : web服务器软件
- 下载 : http://tomcat.apache.org/
- 安装 : 解压压缩包即可
- 注意安装目录建议不要有中文和空格
- 卸载 : 删除目录就行了
- 启动:
- bin/startup.bat 双击运行该文件即可
- 访问 : 浏览器输入 : http://localhost:8080 回车
- 可能遇到的问题:
- 黑窗口一闪而过:
- 原因: 没有正确配置JAVA_HOME环境变量
- 解决方案 : 正确配置JAVA_HOME环境变量
- 启动报错:
- 暴力 : 找到占用的端口号,并且找到对应的进程,杀死该进程—netstat -ano
- 温柔 : 修改自身的端口号
- conf/server.xml
- 把端口号设置为需要设置的端口号,
- 一般会将tomcat的默认端口号修改为80. 80端口号是http协议的默认端口号. 好处: 在访问时,不用输入端口号
- 黑窗口一闪而过:
- 关闭
- 正常关闭 :
- bin/shutdown.bat
- ctrl+c
- 强制关闭
- 点击启动窗口的关闭按钮
- 正常关闭 :
- 配置
- 部署项目的方式:
- 直接将项目放到webapps目录项即可.
- /hello : 项目的访问路径–>虚拟目录
- 简化部署 : 将项目打成一个war包,再将war包放置到webapps目录下. 其中war包会自动解压缩.
- 配置conf/server.xml文件
- 在标签体中配置
<Context docBase="D://hello" path="/hehe" />
- docBase : 项目存放的路径
- path : 虚拟目录
- 在标签体中配置
- 在conf/Catalina/localhost创建任意名称的xml文件,在文件中编写
<Context docBase="D://hello" />
- 虚拟目录 : xml文件的名称
- 直接将项目放到webapps目录项即可.
- 部署项目的方式:
- 静态项目和动态项目 :
- 目录结构
- java动态项目的目录结构:
–项目的根目录
–WEB-INF目录:
–web.xml : web项目的核心配置文件
–classes目录 : 放置字节码文件的目录
–lib目录 : 存放依赖的jar包的目录
- java动态项目的目录结构:
- 目录结构
Servlet : server applet
- 概念:运行在服务器端的小程序
- Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则.
- 将来我们自定义一个类,实现Servlet接口,复写方法.
- 快读入门
- 创建JavaEE项目
- 定义一个类,实现Servlet接口
- 实现接口中的抽象方法
- 配置Servlet
- 执行原理:
- 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
- 查找web.xml文件,是否有对应的标签体内容
- 如果有,则再找到对应的标签体内容
- tomcat会将字节码文件加载进内存,并且创建其对象
- 调用其方法
- Servlet中的生命周期
- 被创建 : 执行init方法,只执行一次
- Servlet什么时候被创建?
- 默认情况下,第一次被访问时,Servlet被创建.
- 可以配置执行Servlet的创建时机
- 在便签下配置
- 第一次被访问时,创建
- 的值为负数
- 服务器启动时,创建
- 的值为0或正数
- 第一次被访问时,创建
- 在便签下配置
- Servlet的init方法只执行一次,说明一个servlet在内存中只存在一个对象,servlet是单例的
- 多个用户同时访问时,可能存在线程安全问题
- 解决 : 尽量不要在Servlet中定义成员变量,即使定义了成员变量,也不要对其修改值
- Servlet什么时候被创建?
- 提供服务 : 执行service方法,执行多次
- 每次访问Servlet时,Service方法都会被调用一次
- 被销毁 : 执行destory方法,只执行一次
- Servlet被销毁时执行,服务器关闭时,Servlet被销毁
- 只有服务器正常关闭时,才会执行destory方法
- destory方法在servlet被销毁之前执行,一般用于释放资源
- 被创建 : 执行init方法,只执行一次
- Servlet3.0 :
- 好处:支持注解配置,可以不需要web.xml了
- 步骤 :
- 创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml
- 定义一个类,实现Servlet接口
- 复写方法
- 在类上使用@WebServlet注解,进行配置
- @WebServlet(“资源路径”)
- IEDA与tomcat的相关配置
- IDEA会为每一个tomcat部署的项目单独建立一份配置文件
- 查看控制台的log
- 工作空间项目 和 tomcat部署的web项目
- tomcat真正访问的是"tomcat部署的web项目","tomcat部署的web项目"对应着"工作空间项目"的web目录
- WEB-INF目录项的资源不能被浏览器直接访问
- 断点调试: 使用"小虫子"启动debug启动
- IDEA会为每一个tomcat部署的项目单独建立一份配置文件