javaweb学习笔记
XML 可扩展标记语言(eXtensible Markup Language)
html是用于显示数据(被设计用来显示数据, 其焦点是数据的外观.)
xml也可以显示数据,但主要功能是为了传输信息,存储数据(设计为传输和存储数据, 其焦点是数据的内容.)
1.用于系统之间数据的传输 2.用于表示生活中有关系的数据 3.作为配置文件
1.xml的文档声明
格式:<?xml version=”1.0” encoding=”gbk”?> 版本(1.0)编码样式(保存和打开的编码要一致) 文档声明必须写在第一行第一列(前面不能有空格、空行及注释)
属性: (version:xml的版本 1.0(使用) 1.1 )(encoding:xml的编码 gbk utf-8)( standing:说明文档是否依赖其他文件 yes/no)
2.定义元素(标签)
一个xml中有且只有一个根标签,可以自定义 ,在xml中空格和换行都当成内容来解析,所以书写要注意紧凑
标签的命名规则: 1.区分大小写,可以是中文 2.不能以数字和下划线开头 3.不能以 xml 开头(大写也不行 4.不能包含空格和冒号
3.定义属性
4.注释
5.特殊字符
6.CDATA区<![CDATA[ 内容 ]]>把内容当成文本输出,遇到特殊字数也当成文本
7.PI指令可以在xml中设置样式,但一般用不到 写法:<?xml-stylesheet href=”css的路径”?> 注意:只能对英文标签名称起作用,对中文标签名称不起作用
XML的约束
DTD 约束和 Schema 约束 - 约束的作用是定义 xml 文档的结构.
// 第一种方式: 引入外部的 dtd 文件
<!DOCTYPE 根元素名称 SYSTEM "dtd 路径">
// 第二种方式: 使用 xml 页面内部的 dtd 文件
<!DOCTYPE 根元素名称 [
<!ELEMENT person (name,age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
]>
// 第三种方式: 使用网络上的 dtd 文件
<!DOCTYPE 根元素 PUBLIC "dtd 名称" "dtd 文档的 url">
// 示例: struts 2 中使用的配置文件, 使用的是外部的 dtd 文件
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
// 示例: 带有 DTD 的 XML 文档
<?xml version="1.0" encoding="gbk"?>
// dtd 约束
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
// xml 内容
<note>
<to>zhangsan</to>
<from>lisi</from>
<heading>Invitation</heading>
<body>Don't forget the meeting!</body>
</note>
Schema 约束
// 示例
// xml 文档
<?xml version="1.0" encoding="gbk"?>
<note>
<to>zhangsan</to>
<from>lisi</from>
<heading>Invitation</heading>
<body>Don't forget the meeting!</body>
</note>
// Schema 约束
<?xml version="1.0" encoding="gbk"?>
<xs:shema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.cnblogs.com/linkworld/"
xmlns="http://www.cnblogs.com/linkworld/"
elementFormDefault="qualified">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element>
</xs:schema>
// 对于 Schema 的引用
<?xml version="1.0" encoding="gbk"?>
<note
xmlns="http://www.cnblogs.com/linkworld/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.cnblogs.com/linkworld/ note.xsd">
<to>zhangsan</to>
<from>lisi</from>
<heading>Invitation</heading>
<body>Don't forget the meeting!</body>
</note>
DOM4J简介
AJAX (Asynchronous Javascript And XML异步 JavaScript 和 XML,用于创建快速动态网页的技术)
XMLHttpRequest 是 AJAX 的基础。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function loadXMLDoc()
{
.... AJAX 脚本执行 ...
}
</script>
</head>
<body>
<div id="myDiv"><h2>使用 AJAX 修改该文本内容</h2></div>
<button type="button" onclick="loadXMLDoc()">修改内容</button>
</body>
</html>
向服务器发送请求 xmlhttp.open("GET","ajax_info.txt",true); xmlhttp.send();
GET 请求
xmlhttp.open("GET","/try/ajax/demo_get.php?t=" + Math.random(),true); xmlhttp.send();
POST 请求
xmlhttp.open("POST","/try/ajax/demo_post2.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
jQuery简介
轻量的、免费开源的JS函数库(就是JS的简单框架)
jQuery的函数库文件就是一个普通的JS文件,引入jQuery和引入JS文件的方式一样
<!-- 在使用jQuery之前,必须先引入jQuery的函数库文件 --> <script src="js/jquery-1.8.3.js"></script>
jQuery选择器
基本选择器
(1)元素名选择器
$("div") -- 选中所有的div元素
$("span") -- 选中所有的span元素
(2)class/类选择器
$(".s1") -- 选中所有class值为s1的元素(class值为s1的元素可能是任何元素)
$("span.s1") -- 选中所有class值为s1的span元素
(3)id选择器
$("#one") -- 选中id为one的元素
(4)多元素选择器
$("div,span,.s1,#one") -- 选中所有的div元素,以及所有的span元素,以及所有class值为s1的元素,以及id为one的元素
层级选择器
基本过滤选择器
Servlet(Server Applet)是Java Servlet的简称
Servlet接口 |-- GenericServlet类(抽象类) |-- HttpServlet类 在web应用的web.xml文件中配置Servlet程序对外访问的路径
request是代表HTTP请求信息的对象,response是代表HTTP响应信息的对象。
Filter(过滤器)
对 Servlet 容器调用 Servlet 的过程进行拦截,从而在 Servlet 进行响应处理的前后实现一些特殊的功能。Filter 程序可以拦截 Jsp, Servlet, 静态图片文件和静态 html 文件
Filter(继承Filter,重写doFilter方法), FilterChain,
FilterConfig
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("执行MyFilter的init方法..");
// 获取过滤器的配置参数
name = filterConfig.getInitParameter("name");
}
Listener(监听器)
Cookie(客户端)与Session(服务器)(https://zhuanlan.zhihu.com/p/42918845)
2个感知监听 HttpSessionBindingListener HttpSessionActivationListener
6个常规监听器 分别对应JavaWeb三大域对象(除去JSP的Page域):ServletContext、HttpSession、ServletRequest
ServletContext ServletContextListener(生命周期监听) ServletContextAttributeListener(属性监听)
HttpSession HttpSessionListener(生命周期监听) HttpSessionAttributeListener(属性监听)
ServletRequest ServletRequestListener(生命周期监听) ServletRequestAttributeListener(属性监听)