• javaWeb核心技术第六篇之BootStrap


    概述:
            Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。
            作用:
                开发响应式的页面
                响应式:就是一个网站能够兼容多个终端
                节约开发成本,提高开发效率
        入门:
            下载BootStrap
                www.bootcss.com 官网地址
            模版
                1.导入BootStrap的css
                2.导入jquery的js(1.8+)
                3.导入BootStrap的js
                4.设置视口(支持移动设备)
                <meta name="viewport" content="width=device-width, initial-scale=1">
                5.添加一个布局容器
                    通过div设置一个 class
                        方式1:class="container"
                        方式2:class="container-fluid"
        核心:
            全局CSS
            设置全局 CSS 样式;基本的 HTML 元素均可以通过 class 设置样式并得到增强效果;还有先进的栅格系统。
                媒体查询(了解)
                默认有一些分辨率临界点的阀值
                    分辨率                    屏幕大小
                    分辨率>=1200px            超大屏幕
                    992<=分辨率<1200        中等屏幕
                    768<=分辨率<992            小屏幕
                    分辨率<768                超小屏幕
                栅格系统★
                在不同分辨率的屏幕下展示不同的效果,根据不同的上网设备,栅格系统将屏幕分成一系列的行(row)和列(column),由行和列来创建页面布局,注意栅格系统必须放在布局容器内使用
                    行:
                    通过class = "row"来设置一行
                    列(最多将视口分为12列)
                    通过class属性来设置在不同屏幕是所占的列    n表示每格占的份数
                        col-lg-n        大屏            分辨率>=1200
                        col-md-n        中屏            992<=分辨率<1200
                        col-sm-n        小屏            768<=分辨率<992px
                        col-xs-n        超小屏        分辨率<768px
                        
    案例:
    <div class="container">
                <div class=" col-md-2 col-sm-3 hidden-xs" style="border: solid 1px red;height: 20px;">1</div>
                <div class=" col-md-2 col-sm-3 col-xs-6" style="border: solid 1px red;height: 20px;">2</div>
                <div class=" col-md-2 col-sm-3 col-xs-6" style="border: solid 1px red;height: 20px;">3</div>
                <div class=" col-md-2 col-sm-3 col-xs-6" style="border: solid 1px red;height: 20px;">4</div>
                <div class=" col-md-2 col-sm-3 col-xs-6" style="border: solid 1px red;height: 20px;">5</div>
                <div class=" col-md-2 col-sm-3 col-xs-6" style="border: solid 1px red;height: 20px;">6</div>
                <div class=" col-md-2 col-sm-3 col-xs-6" style="border: solid 1px red;height: 20px;">7</div>
                <div class=" col-md-2 col-sm-3 col-xs-6" style="border: solid 1px red;height: 20px;">8</div>
                <div class=" col-md-2 col-sm-3 col-xs-6" style="border: solid 1px red;height: 20px;">9</div>
                <div class=" col-md-2 col-sm-3 col-xs-6" style="border: solid 1px red;height: 20px;">10</div>
                <div class=" col-md-2 col-sm-3 col-xs-6" style="border: solid 1px red;height: 20px;">11</div>
                <div class=" col-md-2 col-sm-3 col-xs-6" style="border: solid 1px red;height: 20px;">12</div>
            </div>
                        
                响应式工具:
                    显示:
                        .visible-xs        超小屏可见
                        .visible-sm        小屏可见
                        .visible-md        中等屏幕可见
                        .visible-lg                大屏可见
                    隐藏:
                        .hidden-xs        超小屏时隐藏
                        .hidden-sm        小屏幕时隐藏
                        .hidden-md        中等屏幕时隐藏
                        .hidden-lg        大屏幕时隐藏
                标题:
                    .h1 -- .h6
                对齐方式:(文本)
                    .text-left    左对齐
                    .text-center居中
                    .text-right    右对齐
                列表:
                    .list-unstyled    移除默认的列表样式
                    .list-inline    将所有列表项放置同一行
                表格:bootstrap给表格添加了默认样式
                    .table        普通表格
                    .table-striped         条纹表格(IE8不支持)
                    .table-bordered        边框表格
                    .table-hover         带有鼠标悬停的表格
                    .table-condensed     紧缩表格
                表单:
                    垂直表单:
                    内联表单:(将所有内容放在同一行)
                    水平表单:
                按钮:★
                    .btn     为按钮添加基本样式
                    .btn-default     默认/标准按钮
                    .btn-primary    原始按钮样式(未被操作)
                    .btn-success     表示成功的动作
                    .btn-info 该样式可用于要弹出信息的按钮
                图片:
                    .img-rounded     为图片添加圆角 (IE8 不支持)
                    .img-circle     将图片变为圆形 (IE8 不支持)
                    .img-responsive 图片响应式
            组件
            无数可复用的组件,包括字体图标、下拉菜单、导航、警告框、弹出框等更多功能。
                下拉选:
                导航条:
            javaScript插件
            jQuery 插件为 Bootstrap 的组件赋予了“生命”。可以简单地一次性引入所有插件,或者逐个引入到你的页面中。
                图片轮播
    
    综合案例:
    
    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width,initial-scale=1" />
            <title></title>
            <link rel="stylesheet" href="css/bootstrap.css" />
            <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
            <script type="text/javascript" src="js/bootstrap.min.js"></script>
            <script>
                $(function() {
                    $('.carousel').carousel({
                        interval: 1000
                    })
                });
            </script>
        </head>
    
        <body>
            <div class="container">
                <!--1.topbar-->
                <div class="row text-center">
                    <!--img1:中等屏幕时占4份,在小屏时占6份,在超小屏时占12份
                        img2:中等屏幕时占4份,在小屏时隐藏,在超小屏时占12份
                        超链接:中等屏幕时占4份,在小屏时占6份,在超小屏时占12份-->
                    <div class="col-md-4 col-sm-6">
                        <img src="img/logo2.png" />
                    </div>
                    <div class="col-md-4 hidden-sm">
                        <img src="img/header.jpg" />
                    </div>
                    <div class="col-md-4 col-sm-6 text-center" style="padding-top: 20px;">
                        <a href="#" class="btn btn-default">登录</a>&nbsp;&nbsp;
                        <a href="#" class="btn btn-default">登录</a>&nbsp;&nbsp;
                        <a href="#" class="btn btn-default">登录</a>
                    </div>
                </div>
                <!--2.导航条-->
                <div class="row">
                    <nav class="navbar navbar-inverse">
                        <div class="container-fluid">
                            <!-- Brand and toggle get grouped for better mobile display -->
                            <div class="navbar-header">
                                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                            <span class="sr-only">Toggle navigation</span>
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                          </button>
                                <a class="navbar-brand" href="#">首页</a>
                            </div>
                            <!-- Collect the nav links, forms, and other content for toggling -->
                            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                                <ul class="nav navbar-nav">
                                    <li class="active">
                                        <a href="#">手机数码 <span class="sr-only">(current)</span></a>
                                    </li>
                                    <li>
                                        <a href="#">电脑办公</a>
                                    </li>
                                    <li class="dropdown">
                                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
                                        <ul class="dropdown-menu">
                                            <li>
                                                <a href="#">Action</a>
                                            </li>
                                            <li>
                                                <a href="#">Another action</a>
                                            </li>
                                            <li>
                                                <a href="#">Something else here</a>
                                            </li>
                                            <li role="separator" class="divider"></li>
                                            <li>
                                                <a href="#">Separated link</a>
                                            </li>
                                            <li role="separator" class="divider"></li>
                                            <li>
                                                <a href="#">One more separated link</a>
                                            </li>
                                        </ul>
                                    </li>
                                </ul>
                                <form class="navbar-form navbar-right">
                                    <div class="form-group">
                                        <input type="text" class="form-control" placeholder="Search">
                                    </div>
                                    <button type="submit" class="btn btn-default">Submit</button>
                                </form>
                            </div>
                            <!-- /.navbar-collapse -->
                        </div>
                        <!-- /.container-fluid -->
                    </nav>
    
                </div>
                <!--3.轮播图-->
                <div class="row">
                    <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
                        <!-- Indicators -->
                        <ol class="carousel-indicators">
                            <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
                            <li data-target="#carousel-example-generic" data-slide-to="1"></li>
                            <li data-target="#carousel-example-generic" data-slide-to="2"></li>
                        </ol>
    
                        <!-- Wrapper for slides -->
                        <div class="carousel-inner" role="listbox">
                            <div class="item active">
                                <img src="./img/1.jpg" alt="...">
                                <div class="carousel-caption">
                                    欢迎你...
                                </div>
                            </div>
                            <div class="item">
                                <img src="./img/2.jpg" alt="...">
                                <div class="carousel-caption">
                                </div>
                            </div>
                            <div class="item">
                                <img src="./img/3.jpg" alt="...">
                                <div class="carousel-caption">
                                </div>
                            </div>
                        </div>
    
                        <!-- Controls -->
                        <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
                            <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
                            <span class="sr-only">Previous</span>
                        </a>
                        <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
                            <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
                            <span class="sr-only">Next</span>
                        </a>
                    </div>
                </div>
                <!--4.热门商品-->
                <div class="row">
                    <div>
                        <span class="h2">热门商品</span><img src="img/title2.jpg" />
                    </div>
                    <!--下div:
                左div:中等屏幕时占2份,小屏和超小屏隐藏
                    图片
                右div:中等屏幕时占10份,小屏和超小屏占12份
                    middle div:中等屏幕时占6份,小屏和超小屏隐藏
                        图片
                    商品div:中等屏幕时占2份,小屏占4份,超小屏时占6份
                        图片 2个p标签-->
                    <div class="row">
                        <!--左div:中等屏幕时占2份,小屏和超小屏隐藏
                        图片-->
                        <div class="col-md-2 hidden-sm hidden-xs">
                            <img src="img/big01.jpg" width="100%" height="100%" />
                        </div>
                        <!--右div:中等屏幕时占10份,小屏和超小屏占12份
                            -->
                        <div class="col-md-10">
                            <!--middle div:中等屏幕时占6份,小屏和超小屏隐藏
                                图片-->
                            <div class="col-md-6 hidden-sm hidden-xs">
                                <img src="img/middle01.jpg" width="100%" height="180px" />
                            </div>
                            <!--商品div:中等屏幕时占2份,小屏占4份,超小屏时占6份
                                图片 2个p标签-->
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                        </div>
                    </div>
                </div>
                <!--5.图片-->
                <div class="row">
                    <img src="img/ad.jpg" width="100%" />
                </div>
                <!--6.热门商品-->
                <div class="row">
                    <div>
                        <span class="h2">热门商品</span><img src="img/title2.jpg" />
                    </div>
                    <!--下div:
                左div:中等屏幕时占2份,小屏和超小屏隐藏
                    图片
                右div:中等屏幕时占10份,小屏和超小屏占12份
                    middle div:中等屏幕时占6份,小屏和超小屏隐藏
                        图片
                    商品div:中等屏幕时占2份,小屏占4份,超小屏时占6份
                        图片 2个p标签-->
                    <div class="row">
                        <!--左div:中等屏幕时占2份,小屏和超小屏隐藏
                        图片-->
                        <div class="col-md-2 hidden-sm hidden-xs">
                            <img src="img/big01.jpg" width="100%" height="100%" />
                        </div>
                        <!--右div:中等屏幕时占10份,小屏和超小屏占12份
                            -->
                        <div class="col-md-10">
                            <!--middle div:中等屏幕时占6份,小屏和超小屏隐藏
                                图片-->
                            <div class="col-md-6 hidden-sm hidden-xs">
                                <img src="img/middle01.jpg" width="100%" height="180px" />
                            </div>
                            <!--商品div:中等屏幕时占2份,小屏占4份,超小屏时占6份
                                图片 2个p标签-->
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                            <div class="col-md-2 col-sm-4 col-xs-6 text-center">
                                <img src="img/small08.jpg" />
                                <p>妹子</p>
                                <p>288</p>
                            </div>
                        </div>
                    </div>
                </div>
                <!--7.图片-->
                <div class="row">
                    <img src="img/footer.jpg" width="100%" />
                </div>
                <!--8-->
                <div class="row text-center">
                    <p>
                        <ol class="list-unstyled list-inline">
                            <li><a href="#">联系我们</a></li>
                            <li><a href="#">联系我们</a></li>
                            <li><a href="#">联系我们</a></li>
                            <li><a href="#">联系我们</a></li>
                            <li><a href="#">联系我们</a></li>
                            <li><a href="#">联系我们</a></li>
                        </ol>
                    </p>
                    <p>Copyright &copy; 2005-2016  版权所有</p>
                </div>
            </div>
        </body>
    
    </html>
    
    
    
    案例-将我们的项目发布出去
        需求分析:
            将我们编写好的(web项目)项目放到服务器上,这样以来用户就可以通过网络访问到我们的(web项目)项目了
        技术分析:
            web服务器
            web项目
            Http协议
        //////////////////////////
        http://localhost/webDemo/html/hello.html   get
    
    ///////////////////
    day33HTTP&Tomcat
    
    - Web服务器
      - 概念:
        - web资源:
          "英文直译""的意思
          资源:一切数据文件
          web资源:通过网络可以访问到的资源,通常指的是一切放在服务器上的文件"
        - web资源的分类:
          - 静态的web资源:
            "    内容是一成不变的"
          - 动态的web资源:
            "    内容有可能在不同的时间或者不同的人访问的时候会发生改变的"
        - web技术分类
          - 静态的web技术
            "    例如: html  css  js  ....."
          - 动态的web技术
            "    例如:servlet  jsp"
        - 软件的架构
          - c/s架构(Client/Server   客户端/服务器)
            "    例如:qq  迅雷  lol"
          - b/s架构(Browser/Server   浏览器/服务器)
            "    例如:京东  淘宝  "
          - 区别
            - c/s:需要客户下载客户端,页面比较炫,和服务器交互少,可以在客户端处理部分业务逻辑,可降低服务器的压力.需要维护客户端和服务器端
            - b/s:只需要客户有一个浏览器,一切页面从服务器加载,和服务器交互频繁,由服务器处理业务逻辑,服务器压力较大.只需要维护服务器端.
        - 通讯机制
          - 基于http协议
            - 浏览器发送给服务器的内容:请求(request)
            - 服务器返回给浏览器的内容:响应(response)
            - 注意:先有请求,后有响应,一次请求对应一次响应
      - web服务器
        - 作用:将我们编写好的网页发布出去,别人就可以通过网络访问
        - 常见的web服务器
          "名称        厂商            特点
          Weblogic     oracle        大型的收费的支持javaEE所有规范的web服务器(servlet和jsp)
          websphere     ibm            大型的收费的支持javaEE所有规范的web服务器(servlet和jsp)
          tomcat     apache        小型的免费的支持servlet和jsp规范的"web服务器""
        - Tomcat服务器★
        
            Tomcat如何优化?    
                1: 优化连接配置.修改连接数,关闭客户端的dns查询(DNS查询需要占用网络,再获取对方ip的时候会消耗一定的时间)
                2: 优化jdk,扩大tomcat使用的内存,默认为128M
          - 下载
            - http://tomcat.apache.org/download-70.cgi
            - core:
              - zip:可以在window上运行的(我们今天使用)
              - tar.gz:运行在linux上的
          - 安装
            - 解压缩即可
          - 目录结构
            - bin:存放可执行的文件
            - ★conf:存放配置文件
            - lib:存放的是tomcat运行时和项目运行时必须的jar包
            - logs:存放的是日志文件(catalina.out)
            - temp:存放临时文件(不用管)
            - ★★webapps:存放要发布的web项目
            - ★work:存放项目运行时产生的java文件和class文件
          - 启动
            "    双击 tomcat目录下/bin/startup.bat"
          - 关闭
            "    方式1:点 x
                方式2:ctrl + c
                (记住)方式3:双击 tomcat目录下/bin/shutdown.bat"
          - 配置
            - 常见问题
              - 一闪而过
                "查看JAVA_HOME是否配置正确"
              - 端口占用: 可以修改Tomcat的端口号
                "修改 tomcat目录下/conf/server.xml 大约70行
                                 <Connector port="8080" protocol="HTTP/1.1"
                                   connectionTimeout="20000"
                                   redirectPort="8443" />
                            需要将 8080 修改成其他的端口号
                            端口号:0~65535
                                0~1024:系统预留的端口号 一般不要使用 但是可以使用80端口
                                80端口是http协议的默认端口号,访问的时候可以不写端口号"
          - 访问格式
            - tomcat的访问路径(8080是tomcat的默认的端口号)
              "    http://localhost:8080"
            - 格式:http://ip地址:端口号/项目名/资源?参数名称=值&参数名称=值
    - web项目
      - 目录结构:★
        "myweb(目录名:项目名)
                    |
                    |---资源文件  html img css js
                    |---WEB-INF(目录:特点,通过浏览器直接访问不到)
                    |        |
                    |        |---lib(目录:项目运行的jar包)
                    |        |---classes(目录:存放的class文件)
                    |        |---web.xml(核心配置文件,在servlet2.5版本中必须有,serlvet3.0版本不是必须的)"
      - 项目访问路径:
        "http://localhost:80/myweb/1.html
        协议://ip地址:端口/项目名称/资源"
      - Tomcat和Eclipse整合  
    - Http协议:
      - 协议:规定内容的传输的格式
      - http协议:
        "用来制定互联网上数据的传输格式"
      - 包含:
        - 浏览器发送给服务器的内容  请求
          "规定请求数据的格式"
        - 服务器返回给浏览器的内容  响应
          "规定响应数据的格式"
      - 请求的格式:
        "请求行 请求头 请求体"
        - 请求行:请求的第一行
          - 格式:请求方式 请求资源 协议/版本
            "例如:  GET /day33/1.html HTTP/1.1"
          - 请求方式:
            "常见的两种 get和post
            get请求:请求参数会在地址栏上显示,参数大小有限制,不安全
                  http://ip地址:端口号/项目名/资源?参数名称=值&参数名称=值
            post请求:请求参数不在地址栏上显示,参数大小不受限制.较为安全
                格式:
                    参数名称=值&参数名称=值"
        - 请求头
          - 格式: key/value的格式 (value可以为多个值的)
          - 常见的请求头
            - Accept: text/html,image/*        --支持数据类型
            - Accept-Charset: ISO-8859-1    --字符集
            - Accept-Encoding: gzip        --支持压缩
            - Accept-Language:zh-cn         --语言环境
            - Host: www.baidu.cn:80        --访问主机
            - If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT      --缓存文件的最后修改时间
            - Referer: http://www.baidu.com/index.jsp     --来自哪个页面、防盗链
            - User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
              "扩展知识:
                  Trident内核代表产品Internet Explorer,又称其为IE内核
                  Gecko内核代表作品Mozilla FirefoxGecko,火狐
                  Chrome内核代表作品Chrome,谷歌"
            - Cookie
            - Connection: close/Keep-Alive       --链接状态
          - 重要的头:
            - Referer  User-Agent Cookie If-Modified-Since
        - 请求体
          "和请求头之间有一个空行
          post请求的参数:只有表单提交的时候明确了method="post"这时候是post请求,其他的都是get请求
          参数名称=值&参数名称=值
          username=jack&password=1234"
      - 响应的格式:
        "响应行 响应头 响应体"
        - 响应行:响应信息的第一行
          - 格式:
            - 协议/版本 响应的状态码 状态码说明
          - 例如:
            - HTTP/1.1 200 OK
          - 状态码:
            - 1xx    :请求已发送
            - 2xx    :响应已完成
              - 200:响应成功(请求成功)
            - 3xx    :需要浏览器进一步操作才可以完成
              - 302:重定向(配合location头使用)
              - 304:读缓存(Not Modified表示没有改变)
            - 4xx :用户访问错误(Not Found 表示:路径写错了,你访问的路径不存在)
              - 404:用户访问的资源不存在
            - 5xx :服务器内部错误(其实就是代码有问题,改代码)
              - 500:服务器内部异常
        - 响应头
          - 格式: key/value的格式 (value可以为多个值的)
          - 常见的响应头
            - Location: http://www.it315.org/index.jsp     --跳转方向
            - Server:apache tomcat            --服务器型号
            - Content-Encoding: gzip             --数据压缩
            - Content-Length: 80             --数据长度
            - Content-Language: zh-cn         --语言环境
            - Content-Type: text/html; charset=GB2312         --数据类型(MIME类型)  大类型/小类型 text/css  text/javascript  image/jpeg image/bmp
            - Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT    --最后修改时间
            - Refresh: 1;url=http://www.it315.org        --定时刷新
            - Content-Disposition: attachment; filename=aaa.zip    --下载
            - Set-Cookie:SS=Q0=5Lb_nQ; path=/search
            - Expires: -1                    --缓存
            - Cache-Control: no-cache              --缓存
            - Pragma: no-cache                   --缓存
            - Connection:Keep-Alive               --连接
          - 重点的头:
            - Set-Cookie Location Content-Type Refresh Content-Disposition Last-Modified
        - 响应体
          "和响应头之间有一个空行,
          浏览器解析的内容"
    - servlet入门:
      "本质上就是一个运行在服务器上的类"
      - 作用:1.接受请求   2.调用Service  处理业务逻辑   3.生成响应结果
      - 入门步骤:
        - 1.编写一个类
          - 必须实现Servlet接口
          - 重写里面的方法
        - 2.编写配置文件(项目下 web-inf/web.xml)
          "注册servlet   绑定路径
                      <!-- 注册servlet 
                          servlet-name:给servlet起个名称 名称自定义,保证唯一
                          servlet-class:serlvet的全限定名(包名+类名)
                      -->
                      <servlet>
                          <servlet-name>helloservlet</servlet-name>
                          <servlet-class>cn.baidu.demo.HelloServlet</servlet-class>
                      </servlet>
                      
                      <!-- 绑定路径
                          servlet-name:在servlet标签中给servlet起好的名称
                          url-pattern:路径  暂时都以"/"开头
                       -->
                      <servlet-mapping>
                          <servlet-name>helloservlet</servlet-name>
                          <url-pattern>/hello</url-pattern>
                      </servlet-mapping>"
        - 3.测试
          "            localhost/项目名/绑定的路径
                      localhost/day33/hello"
    
    在服务器中,为什么需要项目部署?  为了让网络通过服务器访问到项目
    
    
    回顾:
        tomcat服务器和Http协议:
        web服务器:
            概念:
                web资源:
                web资源分类:
                    静态的web资源:内容一层不变
                    动态的web资源:根据不同的人和不同的时间,可能会发生变化
                web技术:
                    静态的web技术:html css js...
                    动态的web技术:Servlet jsp
                结构:
                    B/S(浏览器/服务器):
                    C/S(客户端/服务器):
                通讯机制:
                    基于HTTP协议
                    一次请求一次响应,先有请求后有响应
            web服务器:
                Tomcat:
                    下载:
                    安装:
                    目录结构:
                        bin:
                        conf:
                        webapps:
                        work:
                    启动:
                        bin/startup.bat
                    关闭:
                        X
                        ctrl + c
                        ★ bin/shutdown.bat
                    访问:
                        协议://地址:端口/资源
            web项目:
                项目名称:
                    |-------html
                    |-------css
                    |-------js
                    |-------img
                    |-------WEB-INF
                    |-----------lib
                    |-----------classes
                    |-----------web.xml
            http:
                请求:浏览器发送给服务器的内容(request)
                    请求行
                        请求信息的第一行
                            请求方式 请求的资源 协议/版本        http/1.0 http/1.1
                    请求头 
                        格式:
                            key/value  (value可以为多个值)
                    请求体
                        当请求是post的时候,存放post请求所携带的参数
                响应:服务器返回给浏览器的内容(response)
                    响应行 
                        响应信息的第一行
                            协议/版本 状态码 说明
                    响应头 
                        格式:
                            key/value  (value可以为多个值)
                    响应体
                        浏览器解析的内容
    ////////////////////////////////////////////
    servlet:
        
    案例-使用servlet完成用户登录功能
        需求分析:
            用户在表单中填写完用户名和密码后,点击登录的时候,向服务器发送登录的请求,
            在服务器上处理请求,处理完毕后将处理信息响应到页面
                处理结果:
                    登录成功:欢迎...登录...
                    登录失败:用户名或密码错误
                    异常:当前功能正在维护....
            技术分析:
                html:表单
                    form
                        action:提交路径
                        method:提交方式
                            get
                            post
                servlet:
                    request
                    response
        ////////////////
        项目:
            com.baidu.web
            com.baidu.service
            com.baidu.dao
            com.baidu.domain
            com.baidu.utils
            
            导入jar包
            导入工具类
  • 相关阅读:
    存储过程的优缺点?
    springboot注解
    springboot处理事务
    索引面试问题
    剑指Offer编程题(Java实现)——替换空格
    剑指Offer编程题(Java实现)——二维数组中的查找
    Java集合概括总结及集合选用
    Java中获取大小:length、length()、size()
    解决MarkDown打开出现:awesomium web-brower framework This view has crashed
    Java集合:Collection、List、Set、Map、泛型
  • 原文地址:https://www.cnblogs.com/haizai/p/11368042.html
Copyright © 2020-2023  润新知