Tomcat
Tomcat
安装
集成
项目发布
三个默认
1、默认端口(访问的时候不需要输入端口号)
80
2、默认项目(访问的时候不需要输入项目名)
ROOT
3、默认的页面(访问的时候不需要输入资源名)
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
部署方式
1、直接拷贝到webapps下
http://localhost:8080/test/hello.html
2、虚拟目录(把项目剪切到d盘下)
方式一:修改核心配置文件,在conf/server.xml下的host标签里面
<Context docBase="d:/test" path="/hehe" />
docBase:资源的真实路径
path:资源的访问路径(项目名的别名)
弊端:每次修改之后需要重启,如果修改错了,整个服务器就瘫痪了
方式二:在conf\Catalina\localhost配置xml文件
<Context docBase="d:/test" />
注意:xml的名字就是访问路径
好处:不用修改核心配置文件,修改之后,不需要重启服务器
手动将java项目改成web项目并发布【重】
1,创建java项目
2,创建一个web文件夹,添加标识(让idea能识别到是一个web项目)
3添加Tomcat依赖
4,打war
5,部署并发布项目
HTTP协议
相关介绍
1、概念
超文本传输协议
2、作用
规定了浏览器和服务器交换数据的格式
浏览器向服务器发送什么样格式的数据,服务器才能解析,服务器向浏览数发送什么格式的数据,浏览器才能解析
3、特点
(1)基于请求和响应模型
(2)必须先有请求再有响应
(3)请求和响应必须成对出现
4、总结
(1)浏览器发给服务器的信息,我们称之为请求消息
(2)服务器发给浏览器的信息,我们称之为响应消息
请求消息
1、结构:
请求行
请求头
请求体(只有post请求中才有)
2、重要的头
User-Agent:浏览器的版本型号
Referer:访问页面的来源,可以防盗链,还可以统计网站广告的投放效果
响应消息
1、结构:
响应行
响应头
响应体(显示在浏览器中的内容)
2、重要的头
content-type:服务器告诉浏览器本次响应的响应体数据到格式和编码.可以解决响应对象的乱码问题
Content-disposition:服务器告诉浏览器以什么样的格式打开响应体数据,主要用于文件下载
Servlet
相关概念
概念:
运行在服务器的小程序,主要用来处理用户的请求,做出响应
就是一接口.需要我们去实现
最主要的方法就是service()方法,在这个方法里面处理请求,做出响应
快速入门(xml)【重】
1、写一个普通的类,实现servlet接口
2、重写里面的service方法
3、在web.xml中设置访问路径
<servlet>
<servlet-name>aaa</servlet-name>
<servlet-class>com.heima.servlet.ServletDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>aaa</servlet-name>
<url-pattern>/hhh</url-pattern>
</servlet-mapping>
执行流程
1、直接拷贝到webapps下面访问
http://localhost:8080/web/hello.html
协议 主机名/ip 端口号 真实项目名 真实资源
2、通过idea访问项目
http://localhost:8080/crm/hhh
协议 主机名/ip 端口号 虚拟的目录名 虚拟的资源名
3、备注:
(1)通过 主机名/ip 可以找到互联网上 唯一一台设备
(2)通过 端口号 可以找到其中运行的web服务器(tomcat软件)
(3)通过 真实/虚拟目录名 可以找到其中运行的项目
(4)通过 真实资源/虚拟的资源名 可以找到我们想要的资源
a) 如果是真实的资源,直接加载
b) 如果是虚拟的资源名,就去web.xml下找对应的servlet的名字
c) 根据这名字找到处理这个资源的全类名,反向创建对象,调用里面的service方法
实现方式
1、实现Servlet接口
重新service方法
2、继承GenericServlet抽象类
重新service方法
3、继承HttpServlet抽象类
重新doGet()和doPost()方法
继承体系
Servlet 接口
|
GenericServlet 抽象类 与协议无关的servlet,父类
|
HTTPServlet 抽象类 跟HTTP协议相关的(以后都是用的这个协议)