1.1 BootStrap

1、概念

一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它简洁灵活,使得 Web 开发更加快捷。

2、好处

  1. 定义了很多的css样式和js插件。我们开发人员直接可以使用这些样式和插件得到丰富的页面效果。
  2. 响应式布局。

3、响应式布局

同一套页面可以兼容不同分辨率的设备。
实现:依赖于栅格系统:将一行平均分成12个格子,可以指定元素占几个格子

4、实现步骤

官方文档:https://v4.bootcss.com/docs/4.0/getting-started/introduction/
  1. 定义容器。相当于之前的table

    • 容器分类:
      1. container:两边留白
      2. container-fluid:每一种设备都是100%宽度
  2. 定义行。相当于之前的tr 样式:row
  3. 定义元素。指定该元素在不同的设备上,所占的格子数目。样式:col-设备代号-格子数目
    • 设备代号:
      1. xs:超小屏幕 手机 (<768px):col-xs-12
      2. sm:小屏幕 平板 (≥768px)
      3. md:中等屏幕 桌面显示器 (≥992px)
      4. lg:大屏幕 大桌面显示器 (≥1200px)
  • 注意:

    1. 一行中如果格子数目超过12,则超出部分自动换行。
    2. 栅格类属性可以向上兼容。栅格类适用于与屏幕宽度大于或等于分界点大小的设备。
    3. 如果真实设备宽度小于了设置栅格类属性的设备代码的最小值,会一个元素沾满一整行。

2.1 XML

1、概念

Extensible Markup Language 可扩展标记语言(标签均为用户自己定义)

2、 功能

存储数据
  1. 配置文件
  2. 在网络中传输

3、 xml与html的区别

  1. xml标签都是自定义的,html标签是预定义。
  2. xml的语法严格,html语法松散
  3. xml是存储数据的,html是展示数据

4、语法:

  • 基本语法:
  1. xml文档的后缀名 .xml
  2. xml第一行必须定义为文档声明
  3. xml文档中有且仅有一个根标签
  4. 属性值必须使用引号(单双都可)引起来
  5. 标签必须正确关闭
  6. xml标签名称区分大小写
<?xml version='1.0' ?>
<users><user id='1'><name>zhangsan</name><age>23</age><gender>male</gender><br/></user><user id='2'><name>lisi</name><age>24</age><gender>female</gender></user>
</users>

5、组成:

1. 文档声明
  1. 格式:<?xml 属性列表 ?>
  2. 属性列表:
    • version:版本号,必须的属性
    • encoding:编码方式。告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1
    • standalone:是否独立
      • yes:不依赖其他文件
      • no:依赖其他文件
2. 指令(了解):结合css的
 <?xml-stylesheet type="text/css" href="a.css" ?>
3. 标签:标签名称自定义的
  • 规则:

    • 名称可以包含字母、数字以及其他的字符
    • 名称不能以数字或者标点符号开始
    • 名称不能以字母 xml(或者 XML、Xml 等等)开始
    • 名称不能包含空格
4. 属性:

id属性值唯一

5. 文本:
  • CDATA区:在该区域中的数据会被原样展示

    • 格式: <![CDATA[ 数据 ]]>

6、解析

操作xml文档
  1. 解析(读取):将文档中的数据读取到内存中
  2. 写入:将内存中的数据保存到xml文档中。持久化的存储
解析xml的方式:
  1. DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树

    • 优点:操作方便,可以对文档进行CRUD的所有操作
    • 缺点:占内存
  2. SAX:逐行读取,基于事件驱动的。
    • 优点:不占内存。
    • 缺点:只能读取,不能增删改

7、JSoup解析xml

//2.1获取student.xml的path
String path = JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath();
//2.2解析xml文档,加载文档进内存,获取dom树--->Document
Document document = Jsoup.parse(new File(path), "utf-8");
//3.获取元素对象 Element
Elements elements = document.getElementsByTag("name");
System.out.println(elements.size());
//3.1获取第一个name的Element对象
Element element = elements.get(0);
//3.2获取数据
String name = element.text();
System.out.println(name);
相关对象
  1. Jsoup:工具类,可以解析html或xml文档,返回Document
    * parse:解析html或xml文档,返回Document
    * parse​(File in, String charsetName):解析xml或html文件的。
    * parse​(String html):解析xml或html字符串
    * parse​(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象
  2. Document:文档对象。代表内存中的dom树
    * 获取Element对象
    * getElementById​(String id):根据id属性值获取唯一的element对象
    * getElementsByTag​(String tagName):根据标签名称获取元素对象集合
    * getElementsByAttribute​(String key):根据属性名称获取元素对象集合
    * getElementsByAttributeValue​(String key, String value):根据对应的属性名和属性值获取元素对象集合
  3. Elements:元素Element对象的集合。可以当做 ArrayList< Element>来使用
  4. Element:元素对象
    1. 获取子元素对象
      * getElementById​(String id):根据id属性值获取唯一的element对象
      * getElementsByTag​(String tagName):根据标签名称获取元素对象集合
      * getElementsByAttribute​(String key):根据属性名称获取元素对象集合
      * getElementsByAttributeValue​(String key, String value):根据对应的属性名和属性值获取元素对象集合

    2. 获取属性值
      * String attr(String key):根据属性名称获取属性值

    3. 获取文本内容
      * String text():获取文本内容
      * String html():获取标签体的所有内容(包括字标签的字符串内容)

  5. Node:节点对象
    * 是Document和Element的父类

8、XPath

XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言
//1.获取student.xml的path
String path = JsoupDemo6.class.getClassLoader().getResource("student.xml").getPath();
//2.获取Document对象
Document document = Jsoup.parse(new File(path), "utf-8");
//3.根据document对象,创建JXDocument对象
JXDocument jxDocument = new JXDocument(document);//4.结合xpath语法查询
//4.1查询所有student标签
List<JXNode> jxNodes = jxDocument.selN("//student");
for (JXNode jxNode : jxNodes) {System.out.println(jxNode);
}
System.out.println("--------------------");//4.2查询所有student标签下的name标签
List<JXNode> jxNodes2 = jxDocument.selN("//student/name");
for (JXNode jxNode : jxNodes2) {System.out.println(jxNode);
}
System.out.println("--------------------");//4.3查询student标签下带有id属性的name标签
List<JXNode> jxNodes3 = jxDocument.selN("//student/name[@id]");
for (JXNode jxNode : jxNodes3) {System.out.println(jxNode);
}
System.out.println("--------------------");//4.4查询student标签下带有id属性的name标签 并且id属性值为itcast
List<JXNode> jxNodes4 = jxDocument.selN("//student/name[@id='itcast']");
for (JXNode jxNode : jxNodes4) {System.out.println(jxNode);
}

3.1. Tomcat

一种中小型的免费的Web服务器

安装目录各文件夹:

3.2. Servlet

1、概念

运行在服务器端的小程序
  • Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。
  • 将来我们自定义一个类,实现Servlet接口,复写方法。

2、 执行原理:(3.0后可以使用注解配置(@WebServlet(“资源路径”)),不再使用xml)

  1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
  2. 查找web.xml文件,是否有对应的< url-pattern >标签体内容。
  3. 如果有,则在找到对应的< servlet-class>全类名
  4. tomcat会将字节码文件加载进内存,并且创建其对象
  5. 调用其方法

3、生命周期

1. 被创建:执行init方法,只执行一次
  • Servlet什么时候被创建?

    • 默认情况下,第一次被访问时,Servlet被创建
    • 可以配置执行Servlet的创建时机。
      • 在< servlet>标签下配置

        1. 第一次被访问时,创建
          * < load-on-startup>的值为负数
        2. 在服务器启动时,创建
          • < load-on-startup>的值为0或正整数
  • Servlet的init方法,只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的

    • 多个用户同时访问时,可能存在线程安全问题。
    • 解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要对修改值
2. 提供服务:执行service方法,执行多次
  • 每次访问Servlet时,Service方法都会被调用一次。
3. 被销毁:执行destroy方法,只执行一次
  • Servlet被销毁时执行。服务器关闭时,Servlet被销毁
  • 只有服务器正常关闭时,才会执行destroy方法。
  • destroy方法在Servlet被销毁之前执行,一般用于释放资源

4、体系结构

Servlet – 接口
|
GenericServlet – 抽象类
|
HttpServlet – 抽象类

  • GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象

    • 将来定义Servlet类时,可以继承GenericServlet,实现service()方法即可
  • HttpServlet:对http协议的一种封装,简化操作

    1. 定义类继承HttpServlet
    2. 复写doGet/doPost方法

5、Servlet相关配置

  1. urlpartten:Servlet访问路径

    1. 一个Servlet可以定义多个访问路径 : @WebServlet({"/d4","/dd4","/ddd4"})
    2. 路径定义规则:
      1. /xxx:路径匹配
      2. /xxx/xxx:多层路径,目录结构
      3. *.do:扩展名匹

JavaWeb1-3学习总结(BootStrap,xml,tomcat,servlet)相关推荐

  1. 一、Web服务器——Tomcat Servlet学习笔记

    今日内容 web相关概念回顾 web服务器软件:Tomcat Servlet入门学习 一.web相关概念回顾 软件架构 C/S:客户端/服务器端 B/S:浏览器/服务器端 资源分类 静态资源:所有用户 ...

  2. Tomcat学习笔记02【Tomcat部署项目】

    Java后端 学习路线 笔记汇总表[黑马程序员] Tomcat学习笔记01[Web相关概念.Tomcat基本操作][day01] Tomcat学习笔记02[Tomcat部署项目][day01] 目录 ...

  3. java程序填空题输出汤姆猫_Java学习之手写Tomcat“迷你汤姆猫”

    之前学习Java EE的时候,做的项目都是部署在Tomcat上面,配置web.xml(小毛驴),然后启动Tomcat,通过浏览器输入URL去访问,当时其实真的不懂好多东西,尤其是不懂request.和 ...

  4. 张利国java pdf_Java Web开发与实战–Eclipse+Tomcat+Servlet+JSP整合应用 (刘伟张利国) PDF...

    资源名称:Java Web开发与实战–Eclipse+Tomcat+Servlet+JSP整合应用 (刘伟,张利国) PDF 第1章 web开发工具的安装与使用 第2章 web编程技术基础 第3章 s ...

  5. JavaWeb+Tomcat+Servlet使用<c:foreach>标签时,jsp等网页文件获取不到request域中的数据

    自己也是刚学习就遇到了这个问题,上网找了两天,弄清楚了就分享出来 我的各个文件都没有报错,而且 jdk 和 jstl 的版本,web.xml 的版本都没什么问题,而且也能获取数据库中的数据,但是使用 ...

  6. Tomcat Servlet Request

    Tomcat & Servlet Web相关概念回顾 软件架构 C/S:客户端/服务器端 B/S:浏览器/服务器端 资源分类 静态资源:所有用户访问后,得到的结果都是一样的,静态资源可以被浏览 ...

  7. Tomcat Servlet 工作原理

    文章目录 Tomcat Servlet 工作原理 Servlet Tomcat解析Context容器过程及如何构建Servlet Servlet容器启动过程 Web应用初始化工作 创建Servlet实 ...

  8. Intellij IDEA 2020.2.3 配置使用 tomcat+servlet

    Intellij IDEA 2020.2.3 配置使用 tomcat+servlet 创建项目 配置tomcat服务器 初步使用 执行jsp文件 执行servlet tomcat版本问题 手动导入se ...

  9. R语言分类算法之集成学习(Bootstrap Aggregating)

    1.集成学习(Bootstrap Aggregating)原理分析: Bagging是Bootstrap Aggregating的缩写,简单来说,就是通过使用boostrap抽样得到若干不同的训练集, ...

  10. 学习关于Bootstrap的感悟和体会

    前言: 这是这两天他的学习关于Bootstrap的感悟和体会 Bootstrap是一个非常受欢迎的前端开发框架,该框架极大的提高前端团队的开发效率. Bootstrap对常见的CSS布局组件和Java ...

最新文章

  1. python自学视频教程-28岁想从零开始自学python,有哪些靠谱免费的视频?
  2. [攻防世界 pwn]——pwn1(内涵peak小知识)
  3. 图深度学习-第2部分
  4. Spring Boot中的Profile文件
  5. bzoj4820 [Sdoi2017]硬币游戏 高斯消元+概率+kmp
  6. 20172310 《程序设计与数据结构》实验二报告
  7. 全球气象数据的网站集合数据包含(大气数据、海洋数据等各种数据)
  8. 生活与工作原则-Ray Dalio
  9. 使用Java抓取解析汽车之家车型配置数据
  10. RFC8998+BabaSSL---让国密驶向更远的星辰大海
  11. 【图像超分辨率】Deep Learning for Image Super-resolution: A Survey
  12. matlab 安装coder工具包,matlab coder 工具箱使用教程
  13. 社招两年半10个公司28轮面试面经
  14. 有哪些好用的App云测试平台
  15. 新王诞生!ACP世界大赛中国区总决赛超燃收官!
  16. 怎样将音频变声?1分钟教你音频变声怎么弄!
  17. android之ION内存管理器(1)-- 简介
  18. 风力发电机 有功功率 无功功率 理论有功功率
  19. java 电子时钟_java多线程编程制作电子时钟
  20. CSRF跨站请求伪造 | 总结记录

热门文章

  1. R语言——一秒决策树分析
  2. 一下就能打动面试官的甜言蜜语
  3. FRR(1):Ubuntu环境上在LXC内安装FRR
  4. 基于嵌入式系统的半导体激光器驱动设计
  5. SQL Server 2008数据库备份与恢复
  6. MySQL——用户数据
  7. java jframe 控件_窗体控件JFrame的使用
  8. linux用usermod加注释,Linux命令之usermod详解
  9. 医疗机器人在AI领域的广泛应用
  10. 已知子网掩码,确定ip地址范围