欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

撩课-Java每天5道面试题第9天

程序员文章站 2022-05-11 14:29:32
撩课Java+系统架构 视频 点击开始学习 76、XML技术的作用? 77.XML文档约束有哪几种?有什么区别? 78.XML的解析方式有哪几种?有什么区别? 79.Http请求的Get和Post的区别? 80.ServletConfig对象和ServletContext对象有什么区别? ......

撩课java+系统架构 视频 点击开始学习

76、xml技术的作用?

xml技术用于数据存储、
信息配置、
数据交换三方面。

可以将数据存储在xml中,
通过节点、
元素内容、
属性标示数据内容及关系。

可以使用xml很方便的做信息配置,
软件的各种配置参数和对象关系
都存贮在xml文件中。

在做数据交换平台时,
将数据组装成xml文件,
然后将xml文件压缩打包加密后
通过网络传送给接收者,
接收解密与解压缩后再同xml文件中
还原相关信息进行处理。

 

77.xml文档约束有哪几种?有什么区别?

有两种定义形式,
dtd文档类型定义和schemaxml模式;
xml schema 和dtd都用于文档验证,
但二者还有一定的区别,
本质区别是:scheme本身是xml的,
可以被xml解析器解析,
这也是从dtd上发展schema的根本目的。

另外,
xml schema 是内容开放模型,
可扩展,功能性强,
而dtd可扩展性差。
xml schema 支持丰富的数据类型,
而 dtd不支持元素的数据类型,
对属性的类型定义也很有限。
xml schema 支持命名空间机制,
而dtd不支持。
xml schema 可针对不同情况
对整个xml 文档或文档局部进行验证;
而 dtd缺乏这种灵活性。
xml schema 完全遵循xml规范,
符合xml语法,
可以和dom结合使用,
功能强大;
而dtd 语法本身有自身的语法和要求,
难以学习。
 

 

78.xml的解析方式有哪几种?有什么区别?

1.dom解析:
 dom的全称是document object model,
也即文档对象模型。
在应用程序中,
基于dom的xml分析器
将一个xml文档转换成
一个对象模型的集合(通常称dom树),
应用程序正是通过对
这个对象模型的操作,
来实现对xml文档数据的操作。
通过dom接口,
应用程序可以在任何时候
访问xml文档中的任何一部分数据,
因此,这种利用dom接口的机制
也被称作随机访问机制。

2.sax解析:
sax的全称是simple apis for xml,
也即xml简单应用程序接口。
与dom不同,
sax提供的访问模式是一种顺序模式,
这是一种快速读写xml数据的方式。
当使用sax分析器对xml文档进行分析时,
会触发一系列事件,
并激活相应的事件处理函数,
应用程序通过这些事件处理函数
实现对xml文档的访问,
因而sax接口也被称作事件驱动接口。

3.jdom解析:
jdom采用了java中的collection架构来封装集合,
是java爱好者更加熟悉的模式

4.dom4j解析:
xml解析器一次性把整个xml文档加载进内存,
然后在内存中构建一颗document的对象树,
通过document对象,
得到树上的节点对象,
通过节点对象访问(操作)到xml文档的内容

 

79.http请求的get和post的区别?

1. get从地址栏以明文的方式提交请求
信息内容
?username=admin&password=123,
用户可见, 
而post从请求正文提交请求信息内容,
用户不可见。

2. get提交因为是从地址栏传递,
而浏览器的地址栏长度有限制,
不能提交大数据
post从请求正文传递信息内容,
对文件大小无限制,
文件上传只能选择post

3. request对象是服务器获取请求信息
从请求头,请求正文中获取
我们可以使用request.setcharacterencoding方法
修改请求对象字符编码信息,
但是不能修改地址栏字符编码。

get从地址栏传递信息,
不能使用request.setcharacterencoding这个方法
去修改字符编码。
post从请求正文以form表单形式提交,
所以可以使用request.setcharacterencoding
这个方法去修改字符编码。

4. 总结: 能够使用post提交尽量使用post提交。

 

80.servletconfig对象和servletcontext对象有什么区别?

一个servlet对应有一个servletconfig对象,
可以用来读取初始化参数。

一个webapp对应一个servletcontext对象。

servletcontext对象
获取初始化定义的参数。

servletcontext对象可以通过
context.getresourceasstream("/path");
或者context.getrealpath("/")。

去获取webapp的资源文件。

servletcontext对象的
setattribute(string name,object o)方法
可以将对象存储在context作用范围域
又称为全局作用范围域,
在整个web应用当中可以共享.

servletcontext对象
可以和服务器进行通讯,
比如写信息到服务器的日志信息当中。。