Tomcat入门
Tomcat入门
前提
- 软件架构
- C/S:客户端/服务器端
- B/S:浏览器/服务器端
- 资源分类
- 静态资源:例如HTML,CSS,JS等
- 动态资源:例如Servlet,Php,Asp等
- 网络通信三要素
- IP Address
- 端口:0~65535
- 传输协议:数据传输的规则
- TCP/IP
- UDP
Web服务器软件
-
基本概念
- 服务器:安装了服务器软件的计算机
- 服务器软件:接收用户请求并作出回应
- Web服务器软件:在Web服务器中部署Web项目,让用户可以访问
-
常见的Web服务器软件
- WebLogic:Orcale,大型JavaEE项目,收费软件
- WebSphere:IBM,同上
- JBOSS:JBOSS,同上
- Tomcat:Apache Fundation,中小型JavaEE服务器,开源免费
-
Tomcat
-
下载、安装、卸载
-
启动、关闭、配置
-
软件的目录:
- bin:可执行文件
- conf:配置文件
- lib:依赖jar包
- logs:日志文件
- temp:临时文件
- webapps:存放Web项目
- work:运行时数据
-
启动软件
在bin下运行startup.bat文件
常见问题:
-
运行时窗口“一闪而过”,请在startup.bat文件末尾添加一行pause,可以查看报错的具体原因,大部分情况是因为环境变量没有配置好
-
默认的端口为8080,注意是否被占用,若占用需要更改
在cmd中查看网络状态:
netstat -ano查看到PID后可以查看具体占用端口的进程
或者可以在confi中server.xml文件更改默认端口号(推荐)
-
-
关闭软件:使用shutdown.bat文件关闭或者在命令行使用ctrl+c关闭
-
部署方式:
-
直接将Web项目移动至webapps下
设置好后在http://localhost:port/myproject/index.html可以访问
其中myproject称为虚拟目录
但是在实际中使用war的方式会更加简单:直接将生成的war包复制到webapps下,会自动解压
-
在server.xml文件中的Host部分添加
<Context docBase="D:\myproject" path="/virtualPath"/> -
在conf/Catalina/localhost文件夹下新建一个xml文件,在文件中编写同2的配置,但是需要删除path部分,在访问时path需要改成新建的xml文件的文件名(不含后缀)
-
-
静态项目和动态项目的区别
Java动态项目的目录结构
-- 根目录
-- WEB-INF目录
-- web.xml:web项目的核心配置文件
--classes目录:放置字节码文件的的目录
--lib目录:放置依赖jar包
-
在IDEA中部署使用Tomcat
-
Servlet
-
概念
- server applet,运行在服务器端的小程序
- servlet其实是一个接口,定义了Java类的被浏览器访问到的规则
-
入门
-
创建Java EE项目
-
定义Servlet接口的实现类
-
实现接口中的抽象方法
-
配置Servlet
具体过程:
-
首先在src目录下创建com.tomcat.servlet路径,新建servletDemo.java文件,让其implements Servlet,右键选择IDEA的generate功能自动填充实现接口的代码
-
在service中尝试输出HelloWorld
-
打开WEB-INFO下的web.xml配置如下
<servlet> <servlet-name>demo</servlet-name> <servlet-class>com.tomcat.servlet.servletDemo</servlet-class> </servlet> <servlet-mapping> <servlet-name>demo</servlet-name> <url-pattern>/demo1</url-pattern> </servlet-mapping>
-
-
-
原理

- 服务器收到请求,解析URL路径,获取资源路径
- 查找web.xml文件,找到url-pattren内容是否和资源路径一致
- 如果有,则区寻找servlet-class对应的全类名,将字节码文件加载进内存
- 创建对象,调用方法
-
Servlet生命周期
-
init:
只会执行一次,servlet在内存中只存在同一个对象,在多个用户访问时有可能存在线程安全问题
解决方案:尽量不要在servlet中定义成员变量,定义了也不要修改
init方式可以有两种选择:
-
服务器启动时创建:在web.xml中配置
0 -
还可以在服务被访问时创建
load-on-startup为负整数为第一次访问时创建,为0或者正整数在服务器启动时创建
public void init(ServletConfig servletConfig) -
-
service:
每次访问servlet时都会执行一次
public void service(ServletRequest servletRequest, ServletResponse servletResponse) -
destory:
正常关闭时会执行一次,相当于遗言,在servlet被销毁之前执行
public void destroy()
-
-
Servlet3.0
支持注解,不需要web.xml配置
步骤:
-
创建JavaEE项目,选择Servlet3.0以上版本,可以不创建web.xml
-
定义Servlet的实现类
-
Override实现类
-
在类上使用注解 @WebServlet("/demo")
直接在class上加注解,括号中是资源路径
-
-
IDEA的相关配置
-
IDEA会为每个tomcat部署的项目配置一个项目文件
-
项目空间项目和Tomcat外部的工作目录注意区分
-
WEB-INFO下的资源不能被浏览器访问
-
在tomcat中如何断点调试?
设置断点,调试启动即可
-

浙公网安备 33010602011771号