JavaWeb1-3学习总结(BootStrap,xml,tomcat,servlet)
1.1 BootStrap
1、概念
一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它简洁灵活,使得 Web 开发更加快捷。
2、好处
- 定义了很多的css样式和js插件。我们开发人员直接可以使用这些样式和插件得到丰富的页面效果。
- 响应式布局。
3、响应式布局
同一套页面可以兼容不同分辨率的设备。
实现:依赖于栅格系统:将一行平均分成12个格子,可以指定元素占几个格子
4、实现步骤
官方文档:https://v4.bootcss.com/docs/4.0/getting-started/introduction/
- 定义容器。相当于之前的table
- 容器分类:
1. container:两边留白
2. container-fluid:每一种设备都是100%宽度
- 容器分类:
- 定义行。相当于之前的tr 样式:row
- 定义元素。指定该元素在不同的设备上,所占的格子数目。样式:col-设备代号-格子数目
- 设备代号:
1. xs:超小屏幕 手机 (<768px):col-xs-12
2. sm:小屏幕 平板 (≥768px)
3. md:中等屏幕 桌面显示器 (≥992px)
4. lg:大屏幕 大桌面显示器 (≥1200px)
- 设备代号:
- 注意:
- 一行中如果格子数目超过12,则超出部分自动换行。
- 栅格类属性可以向上兼容。栅格类适用于与屏幕宽度大于或等于分界点大小的设备。
- 如果真实设备宽度小于了设置栅格类属性的设备代码的最小值,会一个元素沾满一整行。
2.1 XML
1、概念
Extensible Markup Language 可扩展标记语言(标签均为用户自己定义)
2、 功能
存储数据
- 配置文件
- 在网络中传输
3、 xml与html的区别
- xml标签都是自定义的,html标签是预定义。
- xml的语法严格,html语法松散
- xml是存储数据的,html是展示数据
4、语法:
- 基本语法:
- xml文档的后缀名 .xml
- xml第一行必须定义为文档声明
- xml文档中有且仅有一个根标签
- 属性值必须使用引号(单双都可)引起来
- 标签必须正确关闭
- 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. 文档声明
- 格式:<?xml 属性列表 ?>
- 属性列表:
- 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文档
- 解析(读取):将文档中的数据读取到内存中
- 写入:将内存中的数据保存到xml文档中。持久化的存储
解析xml的方式:
- DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树
- 优点:操作方便,可以对文档进行CRUD的所有操作
- 缺点:占内存
- 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);
相关对象
- 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的文档对象 - Document:文档对象。代表内存中的dom树
* 获取Element对象
* getElementById(String id):根据id属性值获取唯一的element对象
* getElementsByTag(String tagName):根据标签名称获取元素对象集合
* getElementsByAttribute(String key):根据属性名称获取元素对象集合
* getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合 - Elements:元素Element对象的集合。可以当做 ArrayList< Element>来使用
- Element:元素对象
获取子元素对象
* getElementById(String id):根据id属性值获取唯一的element对象
* getElementsByTag(String tagName):根据标签名称获取元素对象集合
* getElementsByAttribute(String key):根据属性名称获取元素对象集合
* getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合获取属性值
* String attr(String key):根据属性名称获取属性值获取文本内容
* String text():获取文本内容
* String html():获取标签体的所有内容(包括字标签的字符串内容)
- 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)
- 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
- 查找web.xml文件,是否有对应的< url-pattern >标签体内容。
- 如果有,则在找到对应的< servlet-class>全类名
- tomcat会将字节码文件加载进内存,并且创建其对象
- 调用其方法
3、生命周期
1. 被创建:执行init方法,只执行一次
Servlet什么时候被创建?
- 默认情况下,第一次被访问时,Servlet被创建
- 可以配置执行Servlet的创建时机。
- 在< servlet>标签下配置
- 第一次被访问时,创建
* < load-on-startup>的值为负数 - 在服务器启动时,创建
- < load-on-startup>的值为0或正整数
- 第一次被访问时,创建
- 在< servlet>标签下配置
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协议的一种封装,简化操作
- 定义类继承HttpServlet
- 复写doGet/doPost方法
5、Servlet相关配置
- urlpartten:Servlet访问路径
- 一个Servlet可以定义多个访问路径 : @WebServlet({"/d4","/dd4","/ddd4"})
- 路径定义规则:
- /xxx:路径匹配
- /xxx/xxx:多层路径,目录结构
- *.do:扩展名匹
JavaWeb1-3学习总结(BootStrap,xml,tomcat,servlet)相关推荐
- 一、Web服务器——Tomcat Servlet学习笔记
今日内容 web相关概念回顾 web服务器软件:Tomcat Servlet入门学习 一.web相关概念回顾 软件架构 C/S:客户端/服务器端 B/S:浏览器/服务器端 资源分类 静态资源:所有用户 ...
- Tomcat学习笔记02【Tomcat部署项目】
Java后端 学习路线 笔记汇总表[黑马程序员] Tomcat学习笔记01[Web相关概念.Tomcat基本操作][day01] Tomcat学习笔记02[Tomcat部署项目][day01] 目录 ...
- java程序填空题输出汤姆猫_Java学习之手写Tomcat“迷你汤姆猫”
之前学习Java EE的时候,做的项目都是部署在Tomcat上面,配置web.xml(小毛驴),然后启动Tomcat,通过浏览器输入URL去访问,当时其实真的不懂好多东西,尤其是不懂request.和 ...
- 张利国java pdf_Java Web开发与实战–Eclipse+Tomcat+Servlet+JSP整合应用 (刘伟张利国) PDF...
资源名称:Java Web开发与实战–Eclipse+Tomcat+Servlet+JSP整合应用 (刘伟,张利国) PDF 第1章 web开发工具的安装与使用 第2章 web编程技术基础 第3章 s ...
- JavaWeb+Tomcat+Servlet使用<c:foreach>标签时,jsp等网页文件获取不到request域中的数据
自己也是刚学习就遇到了这个问题,上网找了两天,弄清楚了就分享出来 我的各个文件都没有报错,而且 jdk 和 jstl 的版本,web.xml 的版本都没什么问题,而且也能获取数据库中的数据,但是使用 ...
- Tomcat Servlet Request
Tomcat & Servlet Web相关概念回顾 软件架构 C/S:客户端/服务器端 B/S:浏览器/服务器端 资源分类 静态资源:所有用户访问后,得到的结果都是一样的,静态资源可以被浏览 ...
- Tomcat Servlet 工作原理
文章目录 Tomcat Servlet 工作原理 Servlet Tomcat解析Context容器过程及如何构建Servlet Servlet容器启动过程 Web应用初始化工作 创建Servlet实 ...
- Intellij IDEA 2020.2.3 配置使用 tomcat+servlet
Intellij IDEA 2020.2.3 配置使用 tomcat+servlet 创建项目 配置tomcat服务器 初步使用 执行jsp文件 执行servlet tomcat版本问题 手动导入se ...
- R语言分类算法之集成学习(Bootstrap Aggregating)
1.集成学习(Bootstrap Aggregating)原理分析: Bagging是Bootstrap Aggregating的缩写,简单来说,就是通过使用boostrap抽样得到若干不同的训练集, ...
- 学习关于Bootstrap的感悟和体会
前言: 这是这两天他的学习关于Bootstrap的感悟和体会 Bootstrap是一个非常受欢迎的前端开发框架,该框架极大的提高前端团队的开发效率. Bootstrap对常见的CSS布局组件和Java ...
最新文章
- python自学视频教程-28岁想从零开始自学python,有哪些靠谱免费的视频?
- [攻防世界 pwn]——pwn1(内涵peak小知识)
- 图深度学习-第2部分
- Spring Boot中的Profile文件
- bzoj4820 [Sdoi2017]硬币游戏 高斯消元+概率+kmp
- 20172310 《程序设计与数据结构》实验二报告
- 全球气象数据的网站集合数据包含(大气数据、海洋数据等各种数据)
- 生活与工作原则-Ray Dalio
- 使用Java抓取解析汽车之家车型配置数据
- RFC8998+BabaSSL---让国密驶向更远的星辰大海
- 【图像超分辨率】Deep Learning for Image Super-resolution: A Survey
- matlab 安装coder工具包,matlab coder 工具箱使用教程
- 社招两年半10个公司28轮面试面经
- 有哪些好用的App云测试平台
- 新王诞生!ACP世界大赛中国区总决赛超燃收官!
- 怎样将音频变声?1分钟教你音频变声怎么弄!
- android之ION内存管理器(1)-- 简介
- 风力发电机 有功功率 无功功率 理论有功功率
- java 电子时钟_java多线程编程制作电子时钟
- CSRF跨站请求伪造 | 总结记录