JavaWeb_01

JavaWeb

本节概要

(1)bootstrap:框架(了解,会使用中文文档即可)

  • 表格组件
  • 搜索栏组件
  • CSS 全局样式
  • 预定义样式
  • Javaweb-EE 核心基础部分
    (2)web:B/S,C/S 结构
    XML 解析
  • DOM 解析:基于面向对象
  • xpath 技术
  • SAX 解析:基于事件编程
HTTP 协议以及tomcat:web 应用服务器
        http 服务器:nginx ——俄罗斯人开发——并发 5 万
            负载均衡——配置——权重
            高可用—— nginx + keepalive
        FASTDFS / HDFS:图片服务器——文件分布式系统
			会话管理(request,response)
    Servlet
    JSP
    过滤器/监听器

1、服务器集群 -----> HTTP 服务器:nginx

机制:投票容错机制 -----> ping-pang 机制
    当服务器集群出现问题宕机,某一台服务器出现问题,其他服务器开始投票,保证半数以上的票才能一致通过。
PS:保证有三台服务器
为了保证 高可用:
    一般情况下,一个主机对应一个备份机(vip--虚拟 ip 地址)存在:虚拟 ip 地址
B/S 结构
    1)分布式
    2)能处理海量数据
    3)高可用
    4)高并发
    5)高吞吐量
C/S 结构
    e.g. QQ/阿里巴巴
    特点:客户端必须要升级才能使用服务器高版本功能<
XML  语言
    Exteniable
    
    XML 的作用
        1)作为软件的配置文件使用
            Xxx.propertiwe:
            propertes
            load
        2)作为小型"数据库"
            描述一台服务器
    XML 语言和 HTML 语言的区别:
        1)结构上
            XML 结构上在 xml 约束的基础上大部分都作为配置文件
            HTML 结构:语法不严谨 --> 写静态的基本网页(一定是 HTML 标签),也可以是自己
        2)语法上
            XML 是严谨的,HTML 不严谨
    XML 的语法规则
        标签:
            1)标签必须配对,保证结构的严谨,
            2)没有定义 namespace(名称空间),就不能直接在标签使用冒号
            3)一个标签不能以数字开头,不能有空格,但是可以有下划线开头
        属性:
            属性名称="属性值"
            注意:属性值可以用单引号或双引号括起来,建议用双引号
            一般情况下:xml 中如果没有指定 DTD/Schema 约束的时候,属性名称可以重复
        xml 注释:同 HTML 注释
        xml 文档声明
            <??xml version="1.0" encoding+"utf-8"?>
            在使用 idea/eclipse 开发工具:默认解析的时候即使文档是 GBK 格式,都不会出现,工具自动进行了编码转换
        转义
            转义字符和 HTML 的转义字符是一样的
            转义字符 --> <h1>>/name
            批量转义
            <!CDATA[
                需要转义的标签
            ]]>
            
<student>student</student>

字符 --> 字节 :编码
GBK :默认国标——一个中文对应两个字节

字节 --> 字符 : 解码过程

解析 xml :一定要保证编码和解码的格式一致

使用 xml 完成一个联系人通讯录 描述编号,姓名,性别,联系方式,邮箱,地址,并且联系人有多个(xml 中有且仅有一个根标签)

//使用 idea 创建 maven 项目
//com.bit.xml_01
//11:24
//<concact id="001" gender="" phone="13000000000" email="张三@163.com">
<concact-list>
    <concact id="001">
        <name>张三</name>
        <geader></gender>
        <phone>13000000000</phone>
        <email>zhangsan@163.com</email>
    </concact>
</concact-list>

解析文件是重点,写不是关键

最终的需求:解析 cancact.xml 文件 ---> 将它封装成 Concact 联系人对象
    DOM 解析
    SAX 解析

重点:如何解析 xml 文件

解析 xml 
    DOM 解析 --->  基于面向对象的方式:便于理解
        sun 公司提出,有官方的工具——jaxp
        第三方的工具,比官方工具更实用——dom4j(dom for java)
    SAX 解析 --->  基于事件编程——符合事件编程的三要素
    dom4j_1.6.1-jar 包
     关于 dom 解析的开发步骤
        1)写好指定的 xml 文件:concact.xml
        2)创建 xml 解析器对象
        3)利用解析器对象的read(url:资源目录的地址)
            a.要么绝对路径
            b.读取 maven 过程的 classes 下面的资源文件:获取当前类的字节码文件
        4)
dom 解析:由 SAXReader解析器,内置了一个解析引擎,遇到第一个标签,将第一个
标签作为根节点:rootElement,后面解析标签的标签都开始进行排列,作为
他的子元素进行排列。
如何使用 dom4j 获取标签对象
    获取属性
    获取文本
    1)getRootElement():获取根元素对象
    2)element("标签名称"):获取第一个子节点对象
    3)elements("指定标签名称"):获取所有同名的标签名称,
    4)elements():获取所有子节点对象 ---> List
public class Demo2{
    public static void main(String[] args)throws Exception{
        //创建解析器环境
        SAXReader reader = new SAXReader() ;
        //加载资源文件
        Document doc = reader.read(Deml2.class.getC)
        //获取标签名称
        System.out.println(conList.getName()) ;
    }
}
集合的遍历方式
    普通 for 循环
    集合遍历的专有方式:
    增强 for 循环(JDK 特性):for-each
    1、传统的for循环遍历,基于计数器的:
        顺序存储:读取性能比较高。适用于遍历顺序存储集合。
        链式存储:时间复杂度太大,不适用于遍历链式存储的集合。
    2、迭代器遍历,Iterator:
        顺序存储:如果不是太在意时间,推荐选择此方式,毕竟代码更加简洁,也防止了Off-By-One的问题。
        链式存储:意义就重大了,平均时间复杂度降为O(n),还是挺诱人的,所以推荐此种遍历方式。
    3、foreach循环遍历:
        foreach只是让代码更加简洁了,但是他有一些缺点,就是遍历过程中不能操作数据集合(删除等),所以有些
        场合不使用。而且它本身就是基于Iterator实现的,但是由于类型转换的问题,所以会比直接使用Iterator慢一
        点,但是还好,时间复杂度都是一样的。所以怎么选择,参考上面两种方式,做一个折中的选择。
获取属性
前提:获取属性所在的标签对象
两种方式
    1)通过标签对象.attributeValue("id") ---> String 
    2)通过标签.attribute() ---> Attribute(属性)对象    
    

注意:xml 中空格和换行会被解析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值