TOMCAT

1.1 Servlet容器、WEB容器、服务器

  • Servlet容器: 能够运行Servlet程序的环境叫做Servlet容器
  • web容器: 能够运行web应用的环境就叫做web容器
  • 容器就是服务器
  • 常用的WEB服务器:

weblogic

websphere

tomcat

1.2 tomcat安装和配置

1.2.1 下载:

下载地址:http://tomcat.apache.org/

有解压版 和 安装版,还分windows 和 linux版,根据自己的需求,选择对应的版本下载

tomcat服务器运行需要jdk的支持,版本对应为:

tomcat5 需要jdk4以上支持

tomcat6 需要jdk5以上支持

tomcat7 需要jdk6以上支持

tomcat8 需要jdk7以上支持

1.2.2 安装及配置

解压后还需要配置JAVA_HOME环境变量,指向jdk的根目录,指定tomcat启动时使用哪个jdk

通过bin/startup.bat启动tomcat

通过bin/shutdown.bat关闭tomcat

通过访问 http://localhost:8080 如果能够看到tomcat的首页就证明tomcat安装配置成功

1.2.3 修改默认的端口号

tomcat服务器默认监听的端口号为 8080,每次访问时都需要在主机名或IP地址后跟上端口号,如果想省略不写,将端口号修改为80即可!

找到 [tomcat]/conf/server.xml文件(tomcat服务器的核心配置文件),修改文件中(70行) 的如下配置:

<Connector port="80" protocol="HTTP/1.1" >

将port改为80即可!!

1.2.4 在启动tomcat时可能出现的问题:

端口占用问题:

如果在启动时报端口占用的错误,可以通过 netstat -ano 命令查看哪个程序占用了端口,停止后再重启tomcat即可。

可以利用 taskkill /pid 进程ID 来杀死指定ID的进程

安装路径问题: tomcat安装路径中一定不能有中文和空格,可能一时半会没问题,但是不知道什么时候就可能出现意外。

1.3 tomcat的目录结构 (!掌握)

bin:tomcat批处理文件的存放目录

conf:tomcat配置文件所在的目录,其中server.xml是tomcat的核心配置文件

lib:tomcat运行时所依赖的jar包存放的目录.

logs:tomcat日志文件所在的目录

temp:tomcat运行时产生的临时文件存放的目录

webapps:是localhost虚拟主机管理的目录,放在这个目录下的web应用可以通过浏览器访问localhost主机来访问

work:tomcat运行时产生的工作文件存放目录. 是tomcat的工作目录

1.4 web应用 (!!!重要)

将为了实现某一功能而准备好的所有的web资源按照一定的目录结构组织起来的就是一个web应用

虚拟主机不能直接管理web资源,web资源必须组织成web应用才可以交给虚拟主机去管理

1.4.1 web应用的目录结构

game

|

|--静态web资源,jsp 直接放在web应用的根目录下,可以通过浏览器直接访问

|--WEB-INF web应用中特殊的目录,这个目录可以没有,一旦有了就必须符合一定的目录结构

| (放在这个目录中的资源将被保护起来,通过浏览器不能直接访问)

|--classes 用来存放动态web资源的class文件

|--lib 用来存放动态web资源所依赖的一些jar包

|--web.xml 当前web应用的核心的配置文件,web应用所有的配置操作都需要在这个文件中进行

1.4.2 部署web应用到虚拟主机中

虚拟主机在配置的时候可以指定一个默认管理的目录,只需要将web应用放在这个默认管理的目录中既可

这种配置方式不需要重启服务器就可以起作用

如果虚拟路径想用多级路径表示,可以在文件名中用#代替/

配置缺省WEB应用:

只要将web应用的文件夹的名称设置为ROOT,当前web应用就是缺省的web应用

1.4.3 如何配置WEB应用的主页?

在[WEB应用]/WEB-INF目录下,在web.xml文件中的根标签下添加如下配置:

那么1.html就是当前WEB应用的主页!

1.5 虚拟主机

所谓的虚拟主机就是tomcat服务器中配置的一个站点,在访问时就好像访问一台真实的主机一样

tomcat服务器中可以配置多个站点,一个站点就是一台虚拟主机

1.5.1 配置虚拟主机

在[tomcat]/conf/server.xml文件的Engine标签内部添加一个Host标签,配置如下:

其中name是必须存在的属性,用来指定虚拟主机的名称.

appBase是可选属性,用来指定虚拟主机默认管理的目录,如果没有配置该属性,表示当前主机没有默认管理的目录!

配置完后,还需要在DNS服务器中配置主机名和IP地址的映射关系,但是DNS服务器一般不能修改,可以通过hosts文件进行模拟,在下面的路径中找到hosts文件:

配置如下:

如果通过主机名来访问,访问的就是对应的主机. 如果通过IP地址来访问,服务器不知道你访问的是哪一台虚拟主机,这时将会访问缺省的虚拟主机. 缺省的虚拟主机配置如下: (默认是localhost)

**综合练习: 配置为www.163.com虚拟主机,部署music web应用,将WEB应用配置为缺省web应用,并且配置web应用的主页,最终实现直接访问www.163.com能够显示主页的内容.

1.6 其他相关

1.6.1 打war包

方式一: 进入应用的目录,用 jar -cvf xxx.war * 命令,就可以将当前目录下的所有内容打成war包

方式二: 用压缩工具打成 xxx.zip包,然后把后缀名zip改为war即可

HTTP协议

2.1 什么是HTTP协议?

用来规定浏览器客户端和服务器之间进行通信的方式

2.2 三个基本原则

  • 基于请求响应模型
  • 一次请求对应一次响应
  • 请求只能由客户端发出, 服务器只能被动的等待请求, 做出响应.

2.3 HTTP协议详解

2.3.1 HTTP请求

  • 请求行

格式:GET /news3/1.html HTTP/1.1

GET: 请求方式, 在http协议中一共规定了7种提交方式, 只用GET和POST

/new3/1.html: 请求资源路径

HTTP/1.1: 所使用协议的版本

  • 若干请求头:

http协议中请求头非常多,下面列出常见的请求头及其功能:

Accept: text/html,image/*

-- 通知服务器当前浏览器可以接受那些格式的数据

Accept-Charset: ISO-8859-1

-- 浏览器可以接受的字符集编码

Accept-Encoding: gzip,compress

-- 浏览器可以接受的压缩格式

!Host: www.tedu.cn:80

--  需要访问的虚拟主机的名称

!!Referer: http://www.tedu.cn/index.jsp

-- 这是和防盗链相关的头,对当前资源的访问来自哪个页面的超链接

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) -- 客户端的基本信息

!!!Cookie (后面讲)

-- 和cookie相关的头

Connection: close/Keep-Alive

-- 是否继续保持连接

Date: Fri, 17 Feb 2017 18:23:51 GMT

-- 当前发送请求的时间

(一个空行)

  • 请求实体内容

username=zhangfei&password=123123

2.3.2 HTTP响应

  • 一个状态行

格式:HTTP/1.1 200 OK

HTTP/1.1: 所遵循协议的版本

200: 状态码, 就是一个三位的数值, 用来表示服务器对请求处理的结果

常见的状态码:

200: 表示服务器成功的处理该请求

302: 和location配合实现请求重定向(后面讲!)

304/307: 通知浏览器使用缓存

404: 表示请求的资源不存在, 客户端错误

500: 服务器处理请求时出现了错误!

OK:描述字符串,OK表示服务器成功处理了请求

  • 若干响应头

http协议中响应头头非常多,下面列出常见的响应头及其功能:

!!!Location: http://www.tedu.cn/index.jsp

-- 配合302使用实现请求重定向

Server:apache tomcat

-- 服务器的基本信息

Content-Encoding: gzip

-- 服务器发送的数据使用的压缩格式

Content-Length: 80

-- 服务器发送的数据的大小

!!!Content-Type: text/html; charset=GB2312

-- 服务器发送的数据是什么格式的,如果是字符格式的数据,则还可以通知服务器发送的数据使用的是什么编码,浏览器会根据这个头指定的编码决定使用哪个编码来打开收到的数据

!!Refresh: 1;url=http://www.tedu.cn

-- 定时刷新相关的头,通知浏览器,过几秒后自动刷新访问哪个地址

Content-Disposition: attachment;filename=aaa.zip

-- 通知浏览器以附件的形式打开发送过去的数据,是和文件下载相关的头

!!!Set-Cookie:SS=Q0=5Lb_nQ; path=/search

-- 和Cookie相关的头

!Expires: -1

-- 通知浏览器是否缓存

!Cache-Control: no-cache

-- 通知浏览器是否缓存

!Pragma: no-cache

-- 通知浏览器是否缓存

--之所以一个功能有三个头,是因为历史原因.所以为了网页的兼容性考虑,通常这三个头要一起使用

Connection: close/Keep-Alive

-- 是否保持连接

Date: Fri, 17 Feb 2017 18:24:11 GMT

-- 响应时的时间

(一个空行)

  • 响应实体内容

转载于:https://www.cnblogs.com/erma0-007/p/8669257.html

tomcat和HTTP(r equest response )相关推荐

  1. tomcat jsvc 调优及JMX监控

    Tomcat  jsvc 调优及JMX监控 实验背景 ====================================================== 系统版本:CentOS releas ...

  2. tomcat accesslog日志扩展

    由于工作需要,最近对tomcat的日志进行了一些研究,发现其日志大致可以分为两类,一类是运行日志,即平常我们所说的catalina.out日志,由tomcat内部代码调用logger打印出来的:另一类 ...

  3. 「五」创建一个带 tomcat 服务的基础镜像(修订版)

    Tomcat Tomcat 简单介绍 Tomcat server是一个免费的开放源码的Web 应用server,属于轻量级应用server.在中小型系统和并发訪问用户不是非常多的场合下被普遍使用,是开 ...

  4. 后端调优基础——Tomcat调优

    jdk8和Tomcat8.5是JDK和Tomcat的史诗级提升,直接把单车变跑车,所以如果你还是使用的jdk7和Tomcat8.5以后的版本,那可以考虑去线上换一下,但是不知道到时是架构师打死你还是你 ...

  5. request 对象和 response 对象

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 HttpServletResponse HttpServletR ...

  6. JDK+TOMCAT在LINUX下简单的配置

    今天写一个JDK+TOMCAT在LINUX下的配置 JDK是JAVA的类库.运行于JVM之上, 是整个Java的核心,包括了Java运行环境  TOMCAT是WEB服务软件,是为运行JSP提供一个平台 ...

  7. tomcat 和apache的整合的方法及配置(一)

    一.   apache和tomcat的简介及整合的原因   整合 Apache Http Server 和 Tomcat 可以提升对静态文件的处理性能.利用 Web 服务器来做负载均衡以及容错.无缝的 ...

  8. java 宕机监控_JAVA实现监测tomcat是否宕机及控制重启的方法

    本文实例讲述了JAVA实现监测tomcat是否宕机及控制重启的方法.分享给大家供大家参考.具体如下: Detector.java: import java.net.URL; import java.n ...

  9. HTTP中response响应数据获取

    http的响应数据是封装在response中的,如果需要获取响应的具体内容我们可以通过下面的方法简单获取到 package mainimport ("fmt""io/io ...

最新文章

  1. redistemplate 设置永不过期_密码已过期 拒绝访问如何处理?
  2. Android系统中提供的原子操作
  3. Mybatis-入门篇-根据官方文档搭建
  4. seata 如何开启tcc事物_如何能在实战中完成分布式事务?知道这些点很重要
  5. Hadoop生态系统学习路线
  6. PLSQL的表窗口开启(不小心把PLSQL的表窗口关了,在哪里打开)
  7. 中国检测开关行业市场供需与战略研究报告
  8. Oracle视图传递参数
  9. fluent并行 linux_fluent并行计算命令
  10. 【英语学习工具】学习英语硬背硬记太难了, 在这里解说 LeHoCat 提供免费的 视频集 工具的使用方法, 看视频学英语的工具, 制作英语教学课件的工具, 帮助自学英语(详细图文)第2版
  11. 用128行代码实现一个文字冒险游戏
  12. Devexpress 各版本中文语言包
  13. 微信Apk扫描无法下载,显示空白页
  14. 非线性回归(Non-linear Regression)学习笔记
  15. Python:蒙特卡罗方法模拟解决三门问题
  16. 自考软考需要做什么题,自考软考真题哪里有呢?
  17. Warning: Accessing non-existent property ‘cd‘ of module exports inside circular dependency
  18. Codeforces 897D. Ithea Plays With Chtholly (交互)
  19. ORACLE-使用DBCA创建数据库
  20. 3dmaxobj导出选项_3DMAX怎么导出obj?

热门文章

  1. bm17bm6bm18
  2. 升级版的冒泡排序Java
  3. 4、OOA 面向对象分析
  4. A商品69元,买二送一;即买3个商品,付2件钱,小于3件时,按原价购买。
  5. Terracotta for Spring
  6. 人力资源机器_人力资源部门的机器学习和AI
  7. 13、hive在启动beeline客户端时报错:User: xxx is not allowed to impersonate xxx
  8. 在iOS应用中使用字体图标及制作字体库
  9. Lucene 7.5.0 索引文件之liv
  10. 帽子接球小游戏(二)--接球的实现