Tomcat学习

URL 请求路径

URL (Uniform Resource Locator) ,统一资源定位符是对互联网上资源位置的一种表示,互联网上的每个文件都有一个唯一的URL。

  • 完整格式如下
协议://域名:端口号/资源位置?参数=值

* 协议,http、https、ftp等
* 域名,域名或IP地址,都可以访问WEB资源
* 端口号,程序必须使用端口号,才可以让另一个计算机访问。http协议的默认端:80
* 资源位置,用于描述WEB资源在服务器上的位置。
* 参数=值,浏览器和服务器交互传递的数据

Tomcat目录结构

bin:脚本目录
	启动脚本:startup.bat
	停止脚本:shutdown.bat
conf:配置文件目录 (config /configuration)
	核心配置文件:server.xml
	用户权限配置文件:tomcat-users.xml
	所有web项目默认配置文件:web.xml
lib:依赖库,tomcat和web项目中需要使用的jar包
logs:日志文件.
	localhost_access_log.*.txt tomcat记录用户访问信息,星*表示时间。
	例如:localhost_access_log.2018-07-07.txt
temp:临时文件目录,文件夹内内容可以任意删除。
webapps:默认情况下,发布的WEB项目所存放的目录。
work:tomcat处理JSP页面的工作目录。

Tomcat的全局web.xml (了解)

tomcat目录中/conf/web.xml 是全局配置文件,所有的WEB项目都使用

自己的写web.xml只有你自己的项目使用

当全局配置web.xml和自己的web.xml冲突了,听自己的

<session-config>
    <session-timeout>30</session-timeout>
</session-config>

Tomcat的项目发布方式

  • tomcat默认访问\webapps\ROOT\index.jsp
1. 直接将项目放到webapps目录下即可。
* /hello:项目的访问路径-->虚拟目录
* 简化部署:将项目打成一个war包,再将war包放置到webapps目录下。
* war包会自动解压缩

2. 配置conf/server.xml文件
在<Host>标签体中配置
<Context docBase="D:\hello" path="/hehe" />
* docBase:项目存放的路径
* path:虚拟目录

3. 在conf\Catalina\localhost创建任意名称的xml文件。在文件中编写
<Context docBase="D:\hello" />
* 虚拟目录:xml文件的名称

web项目目录结构(重要)

  • 在JavaEE规范中,WEB项目存在一定的目录结构,具体结构如下:
项目名称(存放于:Tomcat软件安装目录中,webapps目录下的子文件夹)
	|-----静态资源 HTML,CSS,JS
	|-----WEB-INF   (客户不能直接通过浏览器进行访问)
		|----web.xml  当前WEB项目的核心配置,Servlet2.5必须有,3.0以后可省略
		|----lib	  当前WEB项目所需要的第三方的jar的存放位置。
		|----classes  Java源码编译后生成class文件存放的位置。

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201009163910725.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxOTA0Njk5,size_16,color_FFFFFF,t_70#pic_center)

servlet

servlet程序执行原理

Tomcat引擎执行的操作

1. 接受并解析客户端浏览器的请求 "/day28/hello"
2. 创建2个对象 request, response
3. 在webapps找访问的资源 "com.itheima.servlet.HelloServlet"
4. 反射技术创建类的对象
5. 调用对象中的方法 service, 传递参数 request, response
6. 数据写在了 reponse对象的缓冲区中
7. service方法结束后,数据从response对象的缓冲区取出,组装成HTTP的响应信息, 回传给浏览器

servlet生命周期

Servlet生命周期定义了一个Servlet如何被加载、初始化,以及它怎样接收请求、响应请求,提供服务。在讨论Servlet生命周期之前,先让我们来看一下这几个方法:

  • init(ServletConfig config) Servlet对象的初始化方法,对象被创建的时候调用
在Servlet的生命周期中,仅执行一次init()方法,
它是在服务器装入Servlet时执行的,可以配置服务器,以在启动服务器或客户端首次访问Servlet时装入Servlet。
无论有多少客户端访问Servlet,都不会重复执行init();
  • service(request,response)客户端访问一次,执行一次
它是Servlet的核心,每当一个客户端请求一个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。
在HttpServlet中已存在Service()方法。默认的服务功能是调用与HTTP请求的方法相应的do功能。
  • destory()Servlet对象销毁之前调用
仅执行一次,当Servlet从服务器中移除或者服务器关闭的时候Servlet对象被销毁,在销毁前,里面的destroy方法就会执行,然后垃圾回收器就会将其Servlet对象回收掉。
一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。
  • Servlet对象什么时候被创建

    • Servlet默认第一次访问的时候,对象被创建

    • Tomcat服务器启动的时候创建对象,需要修改web.xml (一般不配置)

      <load-on-startup>...</load-on-startup>
      
  • Servlet对象什么时候被销毁

    • 停止Tomcat服务器
    • WEB项目从服务器移除

1 HttpServlet概述

SUN设计Servlet之初,是有野心,互联网中使用的协议不仅仅只使用http协议,为了支持更多的协议。Servlet采用了接口的设计思想。


客户端请求服务器的时候,Tomcat引擎创建MyHttpServlet对象,调用方法service(),来自于父类的继承,而父类中的service()调用回到我们自己的方法doGet()

Servlet接口			
	|
	|
GenericServlet类		通用的Servlet,是一个与协议无关的Servlet
	|
	|
HttpServlet类		Http协议专用的Servlet

HttpServlet是一个与HTTP协议相关的Servlet,专门用来处理HTTP协议的请求响应。

  • 在HttpServlet类的service方法内部,根据HTTP协议请求方式不同,执行不同的doXXX的方法(get请求执行doGet方法处理get请求,如果是post请求就会执行doPost方法处理Post请求)。
  • 继承了HttpServlet之后不需要重写service方法,只需要重写doGet和doPost方法即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值