当前位置: 首页 > wzjs >正文

站酷网页版哈尔滨seo优化软件

站酷网页版,哈尔滨seo优化软件,黄金网站app视频,高度重视局门户网站建设目录 一、日志1.日志技术的概述2.日志技术的体系a. Logback 3.日志的级别 二、类加载器1.概述2.类加载时机3.类加载过程3.类加载器的分类4.常用方法 三、XML(配置文件)1.概述2.XML的基本语法3.XML的文档约束a.DTD约束b.schema约束 4.XML文档解析a.Dom4jb…

目录

  • 一、日志
    • 1.日志技术的概述
    • 2.日志技术的体系
      • a. Logback
    • 3.日志的级别
  • 二、类加载器
    • 1.概述
    • 2.类加载时机
    • 3.类加载过程
    • 3.类加载器的分类
    • 4.常用方法
  • 三、XML(配置文件)
    • 1.概述
    • 2.XML的基本语法
    • 3.XML的文档约束
      • a.DTD约束
      • b.schema约束
    • 4.XML文档解析
      • a.Dom4j
      • b.Xpath

一、日志

1.日志技术的概述

如果我们想知道一个系统运行的过程和详情怎么办? 这时就需要用到日志,生活中的日志就好比日
记,可以记录生活中的点点滴滴;程序中的日志可以用来记录程序运行过程中的信息,并可以进行永久存储。

日志技术具备的优势:

  1. 可以将系统执行的信息选择性的记录到指定的位置(控制台、文件、数据库中)。
  2. 可以随时以开关的形式控制是否记录日志,无需修改源代码。

2.日志技术的体系

在这里插入图片描述

日志规范大多是一些接口,提供给实现框架去设计的,常见的规范有以上两种。日志的实现框架,现在最常用的就是Lohback

a. Logback

在这里插入图片描述

在这里插入图片描述

首先在当前模块下,新建一个文件夹,起名为lib

在这里插入图片描述

然后将三个jar包粘贴到lib文件夹中。

在这里插入图片描述

然后再将三个jar包添加为库即可。

在这里插入图片描述

将xml文件拷贝到src目录下

在这里插入图片描述

代码如下:

public class LoggerDemo1 {//获取日志对象public static final Logger LOGGER = LoggerFactory.getLogger("LoggerDemo1.class");public static void main(String[] args) {//就可以记录用户的操作日志Scanner sc = new Scanner(System.in);System.out.println("请输入用户名:");String username = sc.nextLine();System.out.println("请输入密码:");String password = sc.nextLine();if ("zhangsan".equals(username) && "123".equals(password)) {System.out.println("登陆成功!");LOGGER.info("用户于" + new Date() + "登陆成功,用户名为:" + username + "密码为:" + password);}else {System.out.println("登录失败!");LOGGER.info("用户于" + new Date() + "登陆失败,用户名为:" + username + "密码为:" + password);}}
}

控制台打印,并且写到了日志文件中

在这里插入图片描述

在这里插入图片描述

3.日志的级别

如果系统上线之后只想记录一些错误的日志信息或者不想记录日志了,就可以通过日志的输出级别来
控制哪些日志信息输出或者不输出。

在这里插入图片描述

二、类加载器

1.概述

类加载器负责将字节码文件加载到内存中。

在这里插入图片描述

2.类加载时机

  1. 创建类的实例(对象)。
  2. 调用类的类方法(静态方法)
  3. 访问类或者接口的类变量,或者为该类变量赋值。(类变量指的是类中的静态变量)
  4. 使用反射方式来强制创建某个类或接口对应的Class对象
  5. 初始化某个类的子类
  6. 直接使用java.exe命令来运行某个主类

概括为用到这个类就加载,没用到就不加载

3.类加载过程

一开始字节码文件是存储在硬盘上的,首先通过包名+类名找到想要加载的class字节码文件,然后创建一个流,在通过这个流将字节码文件加载到内存当中,然后在内存中创建一个class对象。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

例如我的类成员变量中有一个String类型的变量,当把类加载到内存中的时候,并不知道String这个类在哪里,就需要先用符号来替代,例如“&&&”这个符号。在解析这一步,会将符号替换为String。

在这里插入图片描述

在这里插入图片描述

3.类加载器的分类

我们自己写的程序大多都是用的第三种类加载器。

在这里插入图片描述

双亲委派模型中每一个加载器都是下面加载器的父类。如果我们现在想要用自定义类加载器去加载一个文件,首先自己并不会尝试加载,而是将这个文件一层一层向上委派给父类进行加载。每种加载器都有自己的加载范围,如果父类的加载器不能进行加载,就会一层一层向下返回,然后子加载器才会尝试自己去加载文件。

在这里插入图片描述

4.常用方法

在这里插入图片描述

public class ClassLoaderDemo1 {public static void main(String[] args) throws IOException {//获取系统类加载器ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();//利用加载器去加载一个指定的文件//参数:文件的路径//返回值:字节流InputStream is = systemClassLoader.getResourceAsStream("prop.properties");Properties prop = new Properties();prop.load(is);System.out.println(prop);is.close();}
}

这是文件中的数据:

在这里插入图片描述

结果:

在这里插入图片描述

三、XML(配置文件)

1.概述

配置文件用来保存程序在运行时需要的一些参数。例如IDEA就有相应的配置文件,里面有IDEA的背景图片、字体信息、字号信息等等。常见的配置文件有以下三种,txt,properties,xml:

在这里插入图片描述

三种配置文件的优缺点:

TxT文件

  1. 优点:几乎没有优点
  2. 缺点:不利于阅读

properties文件:

  1. 优点:键值对形式易于阅读
  2. 缺点:无法配置一组一组得数据

XML文件:

  1. 优点:易于阅读,可以配置成组出现的数据
  2. 缺点: 解析比较复杂

如果以后配置信息数据量比较少,一个键只对应一个值,就是用properties。数据量多就使用XML

下图是XML文件的概述和作用

在这里插入图片描述

2.XML的基本语法

在这里插入图片描述

在这里插入图片描述

对于XML中的其他组成,对于小于号(<),大于号(>)等等一些特殊字符就需要用特殊的标记来写,下图中给出了特殊的标记。

对于CDATA区,CDATA区中的所有内容都可以当做是文本内容,即小于号、大于号等特殊字符可以直接写,不需要用特殊的标记。

在这里插入图片描述

XML文件代码如下:

<?xml version="1.0" encoding="UTF-8" ?><students><!-- 下面表示第一个学生的信息 --><student id = "1"><name>张三</name><!--  表示1<2--><name>1 &lt; 2</name><!--CDATA区 --><name>  <![CDATA[<<<<<<<< >>>>>>>>>]]>  </name></student></students>

在浏览器中显示的效果如下:

在这里插入图片描述

3.XML的文档约束

文档约束是用来限定xml文件中的标签以及属性应该怎么写,以此强制约束程序员必须按照文档约束的规定来编写xml文件。

常见的约束分为DTD约束和schema约束。

a.DTD约束

在这里插入图片描述

下面是dtd文件约束:

在这里插入图片描述

这是xml配置文件代码,必须严格按照dtd文件的格式进行书写,标签什么的都要一致:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE 书架 SYSTEM 'book.dtd'>
<书架><><书名>西游记</书名><作者>吴承恩</作者><售价>23</售价></><><书名>西游记</书名><作者>吴承恩</作者><售价>23</售价></>
</书架>

但dtd约束不能约束具体的数据类型。

b.schema约束

在这里插入图片描述

schema文件代码如下:

在这里插入图片描述
xml文件代码书写如下:

在这里插入图片描述

4.XML文档解析

a.Dom4j

我们要利用Dom4j(第三方库)来对一个XML文件的数据进行解析。

在这里插入图片描述

方法如下:

在这里插入图片描述
在这里插入图片描述

代码如下:

XML文件

<?xml version="1.0" encoding="UTF-8" ?>
<persons><person id = "1"><name>zhangsan</name><age>23</age></person><person id = "2"><name>lisi</name><age>24</age></person><person id = "3"><name>wangwu</name><age>23</age></person></persons>

测试用例:

public class Demo4jDemo1 {public static void main(String[] args) throws DocumentException {//1.创建解析器的对象SAXReader saxReader = new SAXReader();//2.利用解析器去读取xml文件,并返回文档对象File file = new File("day33\\src\\xmldemo3\\person.xml");Document document = saxReader.read(file);//3.自己解析的时候,一定要一层一层的解析//获取根标签Element rootElement = document.getRootElement();//获取根标签中的子标签List<Element> elements = rootElement.elements();for (Element element : elements) {//继续获取里面的内容//获取属性Attribute id = element.attribute("id");//获取里面的值String text = id.getText();//获取标签nameElement name = element.element("name");String text1 = name.getText();//ageElement age = element.element("age");String text2 = age.getText();//可以新建一个对象类,然后把这些数据都赋值给对象的属性,就可以变成一个一个对象System.out.println(text + "," + text1 + "," + text2);}}
}

在这里插入图片描述

b.Xpath

当我们想要获得XML文件中某一个子标签时,就可以使用Xpath路径检索。

首先我们需要将第三方库添加到我们的项目中。

在这里插入图片描述

在这里插入图片描述

下面参数中所说的表达式代表的是路径。路径有绝对路径、相对路径(用的不多)、全文检索、属性查找。

在这里插入图片描述

XML文件代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<persons><person id = "1"><name>zhangsan</name><age>23</age></person><person id = "2"><name>lisi</name><age>24</age></person><person id = "3"><name>wangwu</name><age>23</age></person><name>zhaoliu</name></persons>

绝对路径

public class XPathDemo1 {public static void main(String[] args) throws DocumentException {//1.创建解释器对象SAXReader saxReader = new SAXReader();//2.加载XML文件获得Document对象File file = new File("day33\\src\\xpathdemo\\person.xml");Document document = saxReader.read(file);//检索多个List<Element> list = document.selectNodes("/persons/person/name");for (Element element : list) {//获得标签中的文本内容System.out.println(element.getText());}System.out.println("--------------------------------");//检索单个//如果有多个相同的标签,会获取到第一个Element node = (Element) document.selectSingleNode("/persons/person/name");System.out.println(node.getText());}
}

在这里插入图片描述

全文检索:

在这里插入图片描述

public class XPathDemo2 {public static void main(String[] args) throws DocumentException {//1.创建解释器对象SAXReader saxReader = new SAXReader();//2.加载XML文件获得Document对象File file = new File("day33\\src\\xpathdemo\\person.xml");Document document = saxReader.read(file);//全文检索 (//contact)List<Element> list = document.selectNodes("//name");for (Element element : list) {System.out.println(element.getText());}System.out.println("--------------------------------");//全文检索 (//contact/name)List<Element> list1 = document.selectNodes("//person/name");for (Element element : list1) {System.out.println(element.getText());}}
}

在这里插入图片描述

属性检索:

在这里插入图片描述

public class XPathDemo3 {public static void main(String[] args) throws DocumentException {//1.创建解释器对象SAXReader saxReader = new SAXReader();//2.加载XML文件获得Document对象File file = new File("day33\\src\\xpathdemo\\person.xml");Document document = saxReader.read(file);//查找属性List<Attribute> list = document.selectNodes("//@id");for (Attribute attribute : list) {System.out.println(attribute.getName());}System.out.println("-----------------------------------");//查找带有指定属性的标签List<Element> list1 = document.selectNodes("//person[@id]");for (Element element : list1) {System.out.println(element.getName());}}
}

在这里插入图片描述

http://www.dtcms.com/wzjs/85442.html

相关文章:

  • 网站制作答辩ppt怎么做外贸推广是做什么的
  • linux 网站目录权限设置sem竞价推广怎么做
  • 淘宝客网站是怎么做的百度一下知道首页
  • 英文外贸网站设计app营销策略
  • 墨刀网站开发原型图教程网址推广
  • wordpress更换网站域名网站seo优化培训
  • 中国企业500强排名一览表石家庄自动seo
  • 哪些网站做推广好b2b平台网站
  • 国内用什么做网站品牌广告语经典100条
  • 上海外贸营销网站建设网站广州疫情最新消息今天封城了
  • 企业网站优化的方式打开百度app
  • 做公司网站源代码怎么写站长平台工具
  • 制作网站计划书网页游戏推广平台
  • 做seo推广公司网站2022年新闻热点事件
  • 温州网站托管东莞seo推广机构帖子
  • WordPress做的网站源代码如何做网站 新手 个人 教程
  • 网站建设基础心得nba在线直播免费观看直播
  • 网站可以做外部链接吗网站seo方案模板
  • 网站开发测试工具让手机变流畅的软件下载
  • 湘西网站建设花垣真正免费的网站建站平台
  • 工信部网站icp备案号软文网站平台
  • 网站公安局备案 所需要的材料网站发布与推广怎么写
  • 为网站做外链的方式正规推广平台有哪些
  • 网站公安备案查询营销培训课程内容
  • 做的成功的地方网站百度做推广一般要多少钱
  • 网站建设 的介绍上海关键词优化报价
  • 网站群建设的优点北京昨晚出什么大事
  • 中国铁路建设工程招标网站seo的英文全称是什么
  • 高端网站设计欣赏广告接单平台app
  • wordpress网站被黑佛山关键词排名效果