tomcat的三种配置方式、http协议的请求与响应、三个响应头等

1、web内容的概述
        * web:网页。javaweb:使用java开发网站(动态网站)
        * 动态网站:指的是数据的变化

        * 使用java开发动态网站

        * 静态网站:使用技术 html css JavaScript

        * 动态网站:使用的技术
            ** sun公司提供了用于开发动态网站的技术:servlet jsp
            ** php:模板 phpcms
            ** asp
                ...............

        * 如果单纯的开发网站,java没有任何优势

        * java一般开发企业级的应用,比如 网银系统 企业管理系统oa erp

        * 两种架构
            ** cs:客户端-服务器
                * qq,迅雷.....
                * 优点:
                     需要本地电脑安装软件,减轻服务器的一些压力

                * 缺点:
                     如果服务器升级软件,客户端也需要升级

            ** bs:浏览器-服务器
                * 网银,支付宝....
                ** 缺点:
                ** 都需要在服务器端运行,服务器端压力会很大

                * 优点:
                ** 服务器如果升级软件,不需要升级

                * AJAX技术:实现局部的刷新,本身就是js代码,js运行在浏览器里面,也可以减轻服务器端的压力

2、web服务器的通信和常见的web服务器
        * 比如在浏览器的地址栏输入 http://www.baidu.com
        ** 如何进行通信的?
        ** 访问到百度的服务器,把百度的页面显示到浏览器中

        ** 把域名进行解析成ip地址,通过ip地址+端口号进行访问
        ** 默认的80端口,这个端口可以省略

        * 想让在浏览器地址栏输入一个地址,可以直接访问我本地的电脑文件
        ** 使用什么技术:网络编程 

        * 服务器:
                ** 硬件:一台电脑
                ** 软件:安装服务器软件的电脑,称为一台服务器

        * ip地址
                ** 静态ip(公共ip):只有可以上网,都可以直接通过这个ip进行访问

        * 常见的web服务器
                ** tomcat服务器:是apache组织,免费、开源的服务器

                ** weblogic服务器:bea公司,服务器是收费的服务器

                ** websphere服务器:ibm公司,服务器是收费的服务器

3、tomcat服务器的安装
        * tomcat7.X版本,jdk使用1.7版本

        * 前提条件:安装tomcat之前,必须安装jdk,必须配置环境变量 JAVA_HOME

        * tomcat默认的端口号: 8080

        ** 两种方式
            ** 第一种方式:使用exe文件进行安装

            ** 第二种方式:使用压缩文件进行安装(一般使用这种方式)
                    * 解压到没有中文和空格的文件夹下面
                    * 如果检验是否安装成功
                    ** 是否可以正常启动
                    *** 找到tomcat目录 bin ,找到一个文件 startup.bat,执行这个文件就可以启动tomcat服务器
                    **** 出现一个黑色的框,里面如果没有异常,同时下面出现ms,表示启动成功了

                    ** 在tomcat里面放入一个html页面,是否可以访问这个页面
                    *** 找到tomcat目录 webapps,创建文件夹bb,在文件夹里面创建一个html文件 a.html
                    *** 可以使用ip+端口号进行访问 ,现在访问本地电脑 本地的ip可以 localhost 或者 127.0.0.1

                    ** 通过ip地址+端口号进行访问,出现一个猫的页面

            ** 关闭tomcat服务器
            *** 可以直接把窗口关闭
            *** 到tomcat的bin目录里面执行shutdown.bat文本

4、tomcat常见的问题的解决
        (1)配置环境变量 JAVA_HOME,出现效果就是一闪就消失了
        ** 查看错误的方式:启动cmd窗口,进入到bin目录下面,执行startup.bat
        出现错误的提示 
        Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
        At least one of these environment variable is needed to run this program

        (2)端口冲突
        * 到tomcat的logs目录里面找文件 catalina.log:
        ** java.net.BindException: Address already in use: JVM_Bind :8080

        * 两种解决方式:
        ** 第一种方式:结束到占用的那个端口
            ** 使用doc命令  netstat -ano 找到当前占用的端口的pid的值
            ** 启动任务管理器 找到进程,在进程里面找到pid的值 结束

        ** 第二种方式:修改启动的端口
            ** 找到tomcat里面conf目录,找到一个文件 server.xml 
            **  "8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />

                ** 可以修改为 80 端口,直接通过本地的ip进行访问了


5、tomcat的目录结构
        * bin目录:启动和关闭tomcat服务器
        * conf目录(***):放置的是tomcat配置文件 server.xml  web.xml
        * lib目录:放置tomcat的一些jar包(支持tomcat运行的jar包;tomcat支持的其他的功能的jar包)
        * logs目录:放置tomcat的日志文件
        * temp目录:放置临时文件
        * webapps目录(***):如果项目想要在tomcat里面运行,这个项目必须要放到webapps下面
        * work目录:sun公司提供servlet jsp,jsp编译成servlet放到这个目录里面

6、动态网站的目录结构
        * 使用java开发动态网站项目

        * 如果想要在tomcat里面运行动态网站的项目,必须要满足一定目录结构,才可以运行

        * website
                * WEB-INF(这个目录是必须要有的)
                ** 在WEB-INF下面必须要有一个文件 web.xml(必须有)
                    - 将example中web.xml复制粘贴到WEB-INF中web.xml里
                ** 在WEB-INF下面有两个文件夹可选的
                    1. classes: 放的是java文件编译成class文件
                    2. lib :项目的jar包

            *** classes和lib可以不写,但是如果写必须是这个名称

7、使用myeclipse集成tomcat
        * myeclipse10.X版本
        * 集成步骤:
        ** 选择window-- 属性 --- myeclipse --- servers ---- tomcat ---- 选择相应的版本

        * 在myeclipse中启动tomcat:找到tomcat,右键点击run server 可以启动tomcat服务器
        * 在myeclipse中关闭tomcat:
        ** 直接点击红色按钮(相当于直接关闭电源)
        ** 找到tomcat右键点击stop server(正常关闭)

8、使用myeclipse向tomcat中部署项目
        * 从现在创建项目就不是java project,而是web project

        * 部署方式 右键点击tomcat -- add dep...--- 选择要部署项目
        ** 部署的目录结构:会把web项目里面 webroot下面的内容都放到tomcat里面去,webroot变成项目名称

        *** 访问方式 http://169.254.145.18/项目名称/index.jsp

        * 名称问题
        ** 上面的名称 项目显示的名称
        ** 下面的名称 部署到tomcat里面名称:要通过下面的名称进行访问

9、tomcat的manager配置(了解)
        * 管理tomcat的项目(运行,关闭)
        * 启动tomcat,进入到猫的页面,点击manager app->取消
        * 打开文件conf/tomcat-users.xml
        * 配置管理员的用户名和密码

10、tomcat的虚拟路径的配置
        * 虚拟路径:把本地文件夹里面的项目,配置到tomcat里

        ** 比如在c盘上面有一个项目 ,如果这个项目很大,可以通过虚拟路径配置此项目,不需要复制。

        * 配置有两种方式
                ** 第一种方式:找到conf下面server.xml,做配置
                        <Context docBase="本地项目路径" path="通过浏览器访问路径">Context>
            * 这个配置需要写在 之前
                    ** <Context docBase="I:\itcast" path="/demo">Context>
            ** 访问: http://127.0.0.1/demo/1.html

        ** 第二种方式:找到conf文件夹 Catalina下面的localhost
        *** 在localhost里面创建xml文件 比如 aa.xml
        *** 在这个xml文件中做配置 <Context docBase="i:\itcast">Context>,但是不需要有path属性
        *** 访问:通过xml的文件名称进行访问
        *** 访问: http://127.0.0.1/a/1.html

        *** 在tomcat里面如何部署项目(三种方式)
        **** 直接在tomcat的webapps下面创建目录(动态网站的结构)
        **** 使用myeclipse中集成tomcat,直接部署项目
        **** 通过虚拟路径进行部署项目(有两种配置方式)

11、访问网站的全过程
    * 比如在地址栏输入地址 www.baidu.com
    ** 这个地址如何进行访问?
    ** 这个地址域名,这个首先会到本地电脑去找一个文件 hosts文件,文件里面使用有这个域名对应的ip。
    ** 如果找到了ip,直接返回ip进行访问
    ** 如果找不到ip,到网络上去找一个域名解析服务器,服务器里面是否有域名对应的ip地址,
    ** 如果找到了ip,直接返回ip进行访问

    ** 操作host文件,当前登录用户必须有管理员权限

12、配置tomcat的虚拟主机
    * 找到conf下面server.xml,可以配置虚拟主机
    * 在tomcat里面默认的虚拟主机 ,可以配置多个虚拟主机

13、仿百度页面的效果
    * 首先修改host文件 127.0.0.1  www.baidu.com
    * 配置虚拟主机 
    "www.baidu.com"  appBase="I:\baidu"
            unpackWARs="true" autoDeploy="true">            
        <Context docBase="\website" path="/">Context>
        
       * 在tomcat的conf的web.xml中,baidu.htm

14、http协议的简介
    * 协议:双方达成共同的目标

    * 请求:在浏览器的地址栏输入一个地址,点击回车,这个地址到访问的服务器,这个过程称为请求
    * 响应:服务器接受到发出的请求,根据请求返回数据到浏览器里面进行显示,这个过程响应

    * http协议:请求和响应的过程中,遵循一定的数据格式

    * 特点:
    ** 请求和响应同时存在,先有请求之后有响应
    ** http协议基于tcp协议,默认端口是80

    * 使用命令 telnet 模拟http协议
    ** 首先连接tomcat服务器 telnet localhost 80
    *** 不能输入的问题使用解决问题 在键盘上 ctrl 加 ]

    *** 请求的数据格式:
    GET /bb/a.html HTTP/1.1
    host:localhost

    *** 响应的数据格式
    HTTP/1.1 200 OK
    Server: Apache-Coyote/1.1
    Accept-Ranges: bytes
    ETag: W/"27-1432777730225"
    Last-Modified: Thu, 28 May 2015 01:48:50 GMT
    Content-Type: text/html
    Content-Length: 27
    Date: Thu, 28 May 2015 07:03:37 GMT

    

AAAAAAAAAAAAAAAAAA

* 在win7系统里面,默认情况下不是直接是telnet命令,需要打开这个命令 ** 如果安装系统使用ghost安装 * 一个软件的介绍 httpwatch(只能在ie上使用) ** 当安装之后,打开ie浏览器,可以使用这个软件 *** 在ie浏览器工具里面自动添加 httpwatch p... **** 如果在工具里面找不到,使用快捷键 shift f2 ** 使用这个软件,必须要点击 record(红色按钮) ** 在地址栏输入一个地址,点击回车,在下面出现请求地址,点击这个地址 **在最下面点击 stream,在stream下面有左右两部分,左边的部分是请求的数据格式,右边的部分是响应的数据格式 * 因为httpwatch只能在ie下使用,在火狐或者谷歌浏览器里面可以使用自带的调试工具 ** 都是使用f12打开调试工具 *** 在火狐里面,点击网络,就可以查看到当前请求和响应的数据 *** 在谷歌里面,点击NetWork,查看到当前请求和响应的数据 * HTTP/1.0 和 HTTP/1.1区别 ** 使用telnet命令,分别 操作这两个版本的HTTP *** 使用HTTP/1.0,如果做出响应立刻断开连接 *** 使用HTTP/1.1,做出了响应之后不会立刻断开 15、http协议的请求 * 分别是 get 和 post 提交表单,查看请求的数据格式 ** get提交:在地址栏会携带请求的数据, ** post提交:在地址栏不会携带数据,数据在请求体里面 ** 创建一个页面,创建一个表单,使用get方式进行提交 *** 使用get提交之后,请求的数据格式 ** GET /day07/request/formget.html?username=zhangsan HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Referer: http://127.0.0.1/day07/request/formget.html Accept-Language: zh-CN User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; MAAU) Accept-Encoding: gzip, deflate Host: 127.0.0.1 If-Modified-Since: Thu, 28 May 2015 07:27:11 GMT If-None-Match: W/"591-1432798031872" Connection: Keep-Alive * http协议的请求三部分组成: ** 第一部分:请求行 ** 请求行里面包含:请求方式、请求地址、http版本 ** 第二部分:请求头 ** 类似key-value形式,一个key可以对应一个value,也可以对应多个value ** 三个重要的请求头 *** Referer:防盗链,得到当前请求的地址 **** 创建两个文件夹 my 和 other **** 分别创建两个页面 my.html other.html ***** 只能是my文件夹里面的文件才可以访问 ***** 只有my文件夹里面的文件才可以访问servlet *** User-Agent:获取当前请求的浏览器的信息 *** If-Modified-Since:经常和响应里面Last-Modified一起使用,用于查询本地缓存 ** 第三部分:请求体 ** 通过post提交的数据 user=lisi ** 表单提交的方式有很多种,常用的两种 get和post ** Accept: text/html,image/* 客户端识别文件类型 Accept-Charset: ISO-8859-1 客户端字符集 Accept-Encoding: gzip 客户端支持编码类型 gzip 压缩格式 Accept-Language:zh-cn 客户端语言 Host: www.itcast.com:80 访问服务器地址 If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT (重要) 和Last-Modified 一起使用 控制缓存 Referer: http://www.itcast.com/index.jsp (重要) 防止盗链 User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 浏览器类型(文件下载时,不同浏览器进行不同处理) Connection: close/Keep-Alive 请求后连接是关闭还是保持 Date: Tue, 11 Jul 2000 18:23:51 GMT 请求时间 16、http协议的响应 * HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Accept-Ranges: bytes ETag: W/"578-1432798092723" Last-Modified: Thu, 28 May 2015 07:28:12 GMT Content-Type: text/html Content-Length: 578 Date: Thu, 28 May 2015 07:49:29 GMT formpost.html "keywords" content="keyword1,keyword2,keyword3"> ....................... * http协议的响应有三部分组成: ** 第一部分:响应行 ** 结构:http版本、状态码 、状态码描述 ** 状态码:当前的响应的状态 *** 常见的状态码 * 200:成功 ok * 302:重定向 * 304:查找本地缓存 * 404:资源找不到 * 500:服务器内部错误(代码写错了) * 503:服务器挂了 ** 第二部分:响应头 ** 类似key value形式,一个key可以有一个或者多个value *** 三个重要的响应头信息 * Location ** 经常和302一起实现重定向的操作 * 代码 //重定向使用状态码 302 response.setStatus(302); //设置头信息 Location 完成重定向的操作 response.setHeader("Location", "/day07/my/my.html"); * Refresh ** 在页面的定时跳转 ** 代码 response.getWriter().write("页面将在3秒之后跳转.."); //使用Refresh头信息实现定时跳转 response.setHeader("Refresh", "3;url=/day07/other/other.html"); * Last-Modified: ** 经常请求里面If-Modified-Since一起使用查找本地缓存 * Content-Disposition:做文件下载时候 *** 禁用浏览器缓存 * Expires: -1 Cache-Control: no-cache Pragma: no-cache ** 第三部分:响应体 ** 显示到页面上的内容 ** 重定向和转发区别 *** 在一个请求里面,又做了一次请求 ** 重定向:比如找小文借钱10万,小文没有钱,告诉我小温有钱,我再去找小温,把钱拿到 *** 请求两次,响应两次 ** 转发:比如找张三借钱,但是张三没有钱,张三去帮我找李四借钱,最终把钱给我 *** 请求一次,响应一次 17If-Modified-Since和Last-Modified查找本地缓存 * 画图分析执行的过程 * 比如访问图片,第一次访问时候,在服务器端产生访问时间 使用头信息存储 Last-Modified * 给一个响应:首先把图片显示到页面上,携带第一次产生的时间,把时间存到浏览器中 使用 If-Modified-Since * 第二次访问图片,请求时候携带第一次这个时间发送请求,到了服务器,拿着请求的时间和服务器上面的时间进行比较, 如果有相同的时间,返回状态码 304,让找本地缓存;如果没有相同的时间,重新请求新的数据 18、web开发中缓存处理 * 使用快捷键 ctrl f5:表示无缓存刷新 * 移除项目重新部署,或者找到tomcat的work目录,把work里面内容都删除 * 直接使用浏览器清除缓存 * 请求的地址后面加一个随机数 http://127.0.0./day/1.html?id=随机数

tomcat的三种配置方式、http协议的请求与响应、三个响应头等_第1张图片
tomcat的三种配置方式、http协议的请求与响应、三个响应头等_第2张图片

tomcat的三种配置方式、http协议的请求与响应、三个响应头等_第3张图片

你可能感兴趣的:(javaweb)