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方法即可。