XML
什么是 xml?
- xml 是可扩展的标记性语言
xml 的作用
- 1、用来保存数据,而且这些数据具有自我描述性
- 2、它还可以做为项目或者模块的配置文件3、还可以做为网络传输数据的格式(现在 JSON 为主)
xml 语法
文档声明
语法示例
<?xml version="1.0" encoding="UTF-8"?> <!-- xml 声明 version 是版本的意思 encoding 是编码 --> <books> <!-- 这是 xml 注释 --> <book id="SN123123413241"> <!-- book 标签描述一本图书 id 属性描述 的是图书 的编号 --> <name>java 编程思想</name> <!-- name 标签描述 的是图书 的信息 --> <author>jerry</author> <!-- author 单词是作者的意思 ,描述图书作者 --> <price>9.9</price> <!-- price 单词是价格,描述的是图书 的价格 --> </book> <book id="SN12341235123"> <!-- book 标签描述一本图书 id 属性描述 的是图书 的编号 --> <name>活着</name> <!-- name 标签描述 的是图书 的信息 --> <author>余华</author> <!-- author 单词是作者的意思 ,描述图书作者 --> <price>51.5</price><!-- price 单词是价格,描述的是图书 的价格 --> </book> </books>
【Open in browser】
建议Google浏览器安装下XML解析工具, 方便阅读
xml 属性
xml 的标签属性和 html 的标签属性是非常类似的,属性可以提供元素的额外信息 在标签上可以书写属性: 一个标签上可以书写多个属性。每个属性的值必须使用 引号 引起来。 的规则和标签的书写规则一致。
文本区域(CDATA 区)
CDATA 语法可以告诉 xml 解析器,我 CDATA 里的文本内容,只是纯文本,不需要 xml 语法解析
dom4j 解析技术
不管是 html 文件还是 xml 文件它们都是标记型文档,都可以使用 w3c 组织制定的 dom
技术来解析。
这个 Dom4j 它是第三方的解析技术。我们需要使用第三方给我们提供好的类库才可以解析 xml 文件。
由于 dom4j 它不是 sun 公司的技术,而属于第三方公司的技术,我们需要使用 dom4j 就需要到 dom4j 官网下载 dom4j 的 jar 包
导包
获取 document 对象
/** * dom4j 获取 Documet 对象 */ public class XMLTest { public static void main(String[] args) throws DocumentException { // 要创建一个 Document 对象,需要我们先创建一个 SAXReader 对象 SAXReader reader = new SAXReader(); // 这个对象用于读取 xml 文件,然后返回一个 Docume Document document = reader.read("E:\\CodeLife\\IdeaProject\\JVM\\chapter18_JavaWeb\\xml\\books.xml"); // 打印到控制台,看看是否创建成功 System.out.println(document);//org.dom4j.tree.DefaultDocument@7699a589 [Document: name E:\CodeLife\IdeaProject\JVM\chapter18_JavaWeb\xml\books.xml] } }
遍历 标签 获取所有标签中的内容
@Test public void readXML() throws DocumentException { // 需要分四步操作: // 第一步,通过创建 SAXReader 对象。来读取 xml 文件,获取 Document 对象 SAXReader reader = new SAXReader(); Document document = reader.read("E:\\CodeLife\\IdeaProject\\JVM\\chapter18_JavaWeb\\xml\\books.xml"); // 第二步,通过 Document 对象。拿到 XML 的根元素对象 Element rootElement = document.getRootElement(); // 第三步,通过根元素对象。获取所有的 book 标签对象 List<Element> books = rootElement.elements("book"); // 第四小,遍历每个 book 标签对象。然后获取到 book 标签对象内的每一个元素,再通过 getText() 方法拿到起始标签和结束标签之间的文本内容 for (Element book : books) { // 测试 System.out.println(book.asXML()); // 拿到 book 下面的 name 元素对象 Element name = book.element("name"); // 拿到 book 下面的 price 元素对象 Element price = book.element("price"); // 拿到 book 下面的 author 元素对象 Element author = book.element("author"); // 再通过 getText() 方法拿到起始标签和结束标签之间的文本内容 System.out.println("书名"+name.getText()+",价格:"+price.getText()+",作者:"+author.getText()); } }
控制台打印结果如下
Servlet
什么是 Servlet
1、Servlet 是 JavaEE 规范之一。规范就是接口 2、Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。 3、Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。
手动实现 Servlet 程序
public class HelloServlet implements Servlet { @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("Hello Servlet 被访问了"); } }
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!-- servlet 标签给 Tomcat 配置 Servlet 程序 --> <servlet> <!--servlet-name 标签 Servlet 程序起一个别名(一般是类名) --> <servlet-name>HelloServlet</servlet-name> <!--servlet-class 是 Servlet 程序的全类名--> <servlet-class>com.jerry.chapter18_javaweb_demo.HelloServlet</servlet-class> </servlet> <!--servlet-mapping 标签给 servlet 程序配置访问地址--> <servlet-mapping> <!--servlet-name 标签的作用是告诉服务器,我当前配置的地址给哪个 Servlet 程序使用--> <servlet-name>HelloServlet</servlet-name> <!--url-pattern 标签配置访问地址 <br/> / 斜杠在服务器解析的时候,表示地址为:http://ip:port/工程路径 <br/> /hello 表示地址为:http://ip:port/工程路径/hello <br/> --> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
Servlet 的生命周期
1、执行 Servlet 构造器方法 2、执行 init 初始化方法 第一、二步,是在第一次访问,的时候创建 Servlet 程序会调用。 3、执行 service 方法 第三步,每次访问都会调用。 4、执行 destroy 销毁方法 第四步,在 web 工程停止的时候调用
ServletConfig 类
作用
1、可以获取 Servlet 程序的别名 servlet-name 的值 2、获取初始化参数 init-param 3、获取 ServletContext 对象
ServletContext 类
什么是 ServletContext
1、ServletContext 是一个接口,它表示 Servlet 上下文对象 2、一个 web 工程,只有一个 ServletContext 对象实例。 3、ServletContext 对象是一个域对象。 4、ServletContext 是在 web 工程部署启动的时候创建。在 web 工程停止的时候销毁。
什么是域对象?
域对象,是可以像 Map 一样存取数据的对象,叫域对象。 这里的域指的是存取数据的操作范围,整个 web 工程。
ServletContext 类的四个作用
1、获取 web.xml 中配置的上下文参数 context-param 2、获取当前的工程路径,格式: /工程路径 3、获取工程部署后在服务器硬盘上的绝对路径 4、像 Map 一样存取数据
HTTP请求
常用请求头的说明
Accept: 表示客户端可以接收的数据类型 Accpet-Languege: 表示客户端可以接收的语言类型 User-Agent: 表示客户端浏览器的信息 Host: 表示请求时的服务器 ip 和端口号
哪些是 GET 请求,哪些是 POST 请求
GET 请求有哪些: 1、form 标签 method=get 2、a 标签 3、link 标签引入 css 4、Script 标签引入 js 文件 5、img 标签引入图片 6、iframe 引入 html 页面 7、在浏览器地址栏中输入地址后敲回车 POST 请求有哪些: 8、form 标签 method=pos
MIME 类型说明
MIME 是 HTTP 协议中数据类型。
MIME 的英文全称是"Multipurpose Internet Mail Extensions
" 多功能 Internet 邮件扩充服务。
MIME 类型的格式是“大类型/小 类型”,并与某一种文件的扩展名相对应
–end–