swt(SWT.JAR)
swtswtswtswtswtswtswtswtswtswtswtswtswtswt
jsp经典笔记jsp经典笔记
JSP(java server page)
1.JSP介绍:
JSP是服务器端运行的页面,JSP本身就是一个Servlet,他不仅可以包含静态的HTML代码,也可以包含动态的JAVA代码,服务器容器可以将JSP转换成Servlet发布,并接受请求。
Jsp文件只需放在应用文件下就可以了。
JSP例子:
<html>
<head><title>time</title></head>
<body>
<h1><%=new java.util.Date()%></h1>
</body>
</html>
2.JSP运行过程
1,JSP文件先要翻译成Java文件(Servlet),在tomcat中翻译后的java文件在tomcat下的work\Catalina\localhost中相应名字的应用目录里。
2,编译Java文件
3,运行.class文件
3.JSP的特点
1,JSP不需要编译
2,JSP不需要进行配置
3,JSP本质上就是一个Servlet
4,JSP是以静态页面为主的。
JDBC笔记 JDBC笔记
一、概述:
JDBC从物理结构上说就是Java语言访问数据库的一套接口集合。从本质上来说就是调用者(程序员)和实现者(数据库厂商)之间的协议。JDBC的实现由数据库厂商以驱动程序的形式提供。JDBC API 使得开发人员可以使用纯Java的方式来连接数据库,并进行操作。
ODBC:基于C语言的数据库访问接口。
JDBC也就是Java版的ODBC。
JDBC的特性:高度的一致性、简单性(常用的接口只有4、5个)。
1.在JDBC中包括了两个包:java.sql和javax.sql。
① java.sql 基本功能。这个包中的类和接口主要针对基本的数据库编程服务,如生成连接、执行语句以及准备语句和运行批处理查询等。同时也有一些高级的处理,比如批处理更新、事务隔离和可滚动结果集等。
② javax.sql 扩展功能。它主要为数据库方面的高级操作提供了接口和类。如为连接管理、分布式事务和旧有的连接提供了更好的抽象,它引入了容器管理的连接池、分布式事务和行集等。
注:除了标出的Class,其它均为接口。
API 说明
java.sql.Connection 与特定数据库的连接(会话)。能够通过getMetaData方法获得数据库提供的信息、所支持的SQL语法、存储过程和此连接的功能等信息。代表了数据库。
java.sql.Driver 每个驱动程序类必需实现的接口,同时,每个数据库驱动程序都应该提供一个实现Driver接口的类。
java.sql.DriverManager
(Class) 管理一组JDBC驱动程序的基本服务。作为初始化的一部分,此接口会尝试加载在”jdbc.drivers”系统属性中引用的驱动程序。只是一个辅助类,是工具。
java.sql.Statement 用于执行静态SQL语句并返回其生成结果的对象。
java.sql.PreparedStatement 继承Statement接口,表示预编译的SQL语句的对象,SQL语句被预编译并且存储在PreparedStatement对象中。然后可以使用此对象高效地多次执行该语句。
java.sql.CallableStatement 用来访问数据库中的存储过程。它提供了一些方法来指定语句所使用的输入/输出参数。
java.sql.ResultSet 指的是查询返回的数据库结果集。
java.sql.ResultSetMetaData 可用于获取关于ResultSet对象中列的类型和属性信息的对象。
商城之家后台管理系统
1管理员登陆
用户登陆界面,输入系统默认的最高权限的管理用户名name:admin ,password:admin,密码无误,正常进入后台管理系统,如果有错误,则会在登陆按钮下方输出相关的提示。例如密码/用户名错误。。。等
xml入门教程/xml入门教程
&1.XML简介
XML的背景
1) XML代表可扩展的标记语言(eXtensible Markup Language);
2) XML由W3C联盟发展维护;
3) XML是一种元语言,可以用来定义其它标签语言;
4) XML没有定义任何标记,它提供了一种工具定义标记以及它们之间的结构关系;
5) XML是一种用于结构化文本交换的标记语言;
6) XML代表了内容的结构也代表了内容本身;
7) XML继承自SGML(标准通用标记语言)。SGML的前身GML由IBM在1960年发明,用于描述设备无关的文本
8) XML是SGML的子语言,由SGML简化而来,起初的目的是为Web的结构文档提供服务。
9) W3C组织在1998年2月10日发布XML1.0版,第二个版本发布于2000年10月9日。
10)XML是分层的树形结构的自解释的一种可扩展的标记语言。
XML和HTML的关系
1) 事实上,HTML和XML不能够进行比较的。因为XML是一种元语言,而HTML是一种定义好的标记语言。XML是描述数据的语言,HTML是描述数据
外观的语言。
2) HTML有一套确定的标记。在W3C标准规范中定义了HTML标记的含义并由部分浏览器实现了。
3) HTML标记非常适合描述人类易读的可视化文本。
4) HTML定义了许多表现指令用以优化在浏览器中的显示。
5) 在HTML标记中,数据固有的结构丢失了。
6) HTML没有维持数据类型信息的完整性、约束、或实体间的其它关系,而XML提供了这些特征。
对XML文件的要求,格式良好(符合XML的语法要求),有效的XML;
XML的用途,数据传输的中间件,做为通用文档格式
1,数据交换
2,web服务
3,内容管理
4,web集成
5,充当配置文件
格式良好的XML文件的规范
XML文档是一种严格规范的语言,必须按照规范来写。
XML文档的框架结构
XML文档=序言+元素+杂项(可选)
1)序言
序言=(XML声明)+(杂项)+(文档类型声明)
XML声明
如:
文档类型声明
规定元素的结构和属性列表的取值
如:
2)元素
空元素
非空元素
内容
内容=(子元素|字符数据|字符数据段|引用|处理指令|注释)*
字符数据
字符数据中,不能含有&,,',",需要采用实体引用的方式
字符数据段
引用
3)杂项
处理指令
XML为其它应用程序准备的接口。
注释
空白符指空格、回车等
XML文件事例
...
XML文件的写法
xml文档是有标签和标签中的内容组成的,标签和标签中的内容合成为元素
非空元素
(起始标签)
aaa(内容)
(结束标签)
空元素
格式良好的XML文档的规范
1)文档声明位于文件的开头
2)文档中只能定义一个唯一的根元素(根元素是在文档声明之后的最外层的元素)
3)标签必须闭合,且不能交叉,有元素的起始标签,就必须有其结束标签(空元素除外)
4)层层嵌套,每一对标签总是出于另一对标签的内或和其处于同一层,不能交叉(根元素chuw)
5)大小写敏感,起始标签和结束标签的名字要一致
6)属性值必须用引号引起来
7)注意特殊字符,使用时需要使用转义字符。
注意:
1.第一行一定要写
2.xml文件是由元素和元素的内容以及属性组成的,一个xml文件中只能有一个根元素,标签和标签的内容加在一起叫作一个元素。xml是大小写
敏感的,只能以字母或下划线开头。
字符转义
< 代表 "" ,
" 代表双引号。
& 代表 "&" ,
' 代表单引号
字符数据段,不解析
....的部分不必使用转义,其中内容会直接输出。
引用
实体声明
使用实体,引用
&引用名
事例:
(XML文件的声明)
(注释)
(根元素)
(子元素)
b)
then {return 1}
else{return 0}
}]]>
(空元素)
张三
XSLT,是用于对XML进行文档格式转换,把一个XML文档转换成另一种格式的XML文档,但是其中内容是不变的。
&2.DTD(Document Type Difinition
DTD文档是用于规定XML文档的结构。只有结构符合所引用的DTD文件的XML文件才能称之为有效的XML文件。
DTD(文档类型定义)
!DOCTYPE 定义DTD文件名
!ELEMENT 定义元素中可用的数据类型
#PCDATA 可解析字符串。
1)DTD的调用
方式一:调用内部文档类型定义。
<!DOCTYPE studinfo[]>
注意点:
(1) studinfo与(#PCDATA)有空格
(2) 文档类型名与根元素名必须一致
方式二:调用外部文档类型定义,需要写一个DTD文档
注意点:
(1)standalone="no"
(2)注意dtd文件的路径
2)DTD的结构
1.元素类型声明
指明元素的名称和元素含有的内容。
元素类型声明=
元素内容说明='EMPTY'|'ANY'|混合内容|元素内容|'#PCDATA'
#PCDATA:
只有可析的字符数据才能作为元素的内容
元素内容:
元素内部只能出现指定的子元素
事例:带有子元素的元素结构定义
"?" 表示子元素只可以出现一个,也可以不出现 (0到1)
"+" 表示子元素必须出现,可以出现多个 (1到多)
"*" 表示子元素可以出现多个,也可以不出现,(0到多)
Enumerated:枚举类型,由“|”分隔的可能的子元素,在可能出现的子元素中只能有一个出现。
EMPTY:元素内容为空时才写(空元素,其中不能有内容)
(无子元素)
ANY:元素内容可以任意,也可以为空
混合内容:标记文本和可析字符串
2.元素属性表声明
属性:由“=”分隔的成对的属性名和属性值构成,只能出现在元素标记的内部。
结束标记不能带属性,一个元素可以具有多个属性
语法:
属性取值类型
1、CDATA:可析字符(文本)
2、Enumerated:枚举类型,由“|”分隔的可能的属性值列表
属性默认值:
注意
1、#REQUIRED:必须提供属性值
2、IMPLIED:可提供也可不提供
3、FIXED:不能修改
事例:
zhangshan
实体声明
实体:存储了任意符合规则的xml文档单元片断。
1、内部通用实体
定义格式
引用格式 &实体名;
2、外部通用实体
定义格式
引用格式 &实体名;
事例:
<!DOCTYPE studinfo[
]>
zhangshan
20
beijing haidian
&schoolinfo;
记号声明
用记号标识非xml格式的数据
定义格式
3)DTD的缺陷,DTD中的类型比较少,有一些约束在DTD中是表达不了的,DTD不支持XML语法.
&3.NameSpace(命名空间)
namespace是为了解决XML文档中的命名冲突问题的。
DTD不支持命名空间,解析器无法测试命名空间。
1、作用:
解决XML文档中命名冲突的问题,即将
XML文档与引用URI标识的名域相结合,来
限定其中的元素和属性名。
示例:
t1
man
s1
girl
2、名域的声明
(1)直接定义
xmlns:名域前缀="名域的URI"(唯一性)
类比:名字与身份证
名域的使用,名域前缀:需要限定的元素名
示例:
zhangshan
man
stu1
girl
(2)缺省定义
xmlns=名域的URI
zhangshan
man
stu1
girl
3、名域的使用
(1)用名域限定元素
zhangshan
man
stu1
girl
(2)用名域限定属性
zhangshan
man
caoyang,no1
stu1
girl
haidian,no2
4、名域的作用范围
名域能够把声明它的元素和该元素的所有子元素关联起来,除非它们被其他的名域声明所覆盖。
&XML Schema
Schema 也是XML文档,用于定义XML文档的结构。
目标名域
使用目标名域中的限制,要只用这个schema文件结构生成XML文档中必须使用者个默认名域。
schema文件的扩展名为 .xsd schema文档的语法和XML的语法相同。
schema文档也有根元素,根元素为schema。
参照类型约束,来约束元素的内容
元素的默认和固定值 1) 简单元素可以有一个默认或固定值: 2) 当没有指定值时,一个默认的值自动分配给元素。在这个例子中,默
认值为red: 3) 一个固定值也是自动分配给元素的,你不能指定
其它值。在这个例子中,默认值为red:
ref关键字 参照....定义。
属性结构的定义,属性也可以使用固定值或者是默认值
schema文件中也可以定义元素结构和类型,schema文件中对元素内容加以限制
schema中可以定义元素内容类型
1. 简单类型
2. 自定义类型,复杂类型,子元素组合
简单类型,基本类型加限制
simpleType:简单类型定义
restriction:基本类型引用
enumeration:使用枚举类型,从给定值中选择且必选其一。
minInclusive:简单类型加最小值约束,且包含设定的最小值
maxExclusive:简单类型加最大值约束,且包含设定的最大值
以下是其使用的事例
. 简单类型加限制
只能使用非负整数3到7包含3和7。
. 复杂类型定义
复杂类型定义事例:
整体schema文档事例
演示simpleType用法,即自定义类型
学生(id = "1000")
姓名
年龄(必须是int,并且只能取一定范围的值)
父亲(父母二者选一)
母亲
专业(枚举类型)
知识点:
simpleType
restriction
enumeration
minInclusive
maxExclusive
针对以上schema文件的有效的XML文件事例
shang
zhang
30
lishi
computer
XML文档的解析
SAX
:事件机制驱动。在遇到相应的节点时,会发出一个事件,当解析器发现元素开始、元素结束、文本、文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据。
SAX的优缺点:
优点:
不用事先调入整个文档,占用资源少;
SAX解析器代码比DOM解析器代码小,适于Applet,下载
缺点:
不是持久的;事件过后,若没保存数据,那么数据就丢了,比较消耗时间;
只能顺序处理,不能选择读取。不支持文档的创建和修改。
无状态性;从事件中只能得到文本,但不知该文本属于哪个元素;
使用场合:Applet;只需XML文档的少量内容,很少回头访问;机器内存少
SAX处理流程
UNIX
color
分析这个代码片断的 SAX 处理器一般情况下将产生以下事件:
startDocument()
startElement (samples)
characters (white space)
startElement (server)
characters (UNIX)
endElement (server)
characters (white space)
startElement (monitor)
characters (color)
endElement (monitor)
characters (white space)
endElement (samples)
SAX API 允许开发人员捕捉这些事件并对它们作出反应。
SAX 处理涉及以下步骤:
创建一个事件处理程序。
创建 SAX 解析器。
向解析器分配事件处理程序。
解析文档,同时向事件处理程序发送每个事件。
要实现SAX解析XML文档的方法,
XMLReader和XMLReaderFactory
XMLReader read=XMLReaderFactory.createXMLReader();生成XMLReader对象,
使用XMLReader对象的方法parse(File f,ContentHandler handler),ContentHandler是一个定义好事件处理方法的接口,
DTDHandler ,EntityResolver ,ErrorHandler这三个接口和 ContentHandler接口相同,但是其中定义的是其他事件处理方法,一般只是实现ContentHandler接口。
使用SAX解析XML文档,需要先有SAXParserFactory对象,他的对象是通过自身的静态方法newInstance(),然后再通过SAXParserFactory对象来创建SAXParser对象,使用SAXParser对象的
parse(File f,DefaultHandler handler),DefaultHandler是用来处理解析时发出的事件的类,就可以进行解析。DefaultHandler实现了ContentHandler,DTDHandler ,EntityResolver ,ErrorHandler,四个接口,但是只给出了空实现,便于使用者覆盖相应的方法。
SAX解析的其他方法请参阅JAVA API文档。(javax.xml.parsers ,org.xml.sax ,org.xml.sax.helpers)
DOM (文档对象模型)Document Object Modle
为 XML 文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用 DOM 接口来操作这个树结构。
优点:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能;
缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间;
使用场合:一旦解析了文档还需多次访问这些数据;硬件资源充足(内存、CPU)
DOM解析是将整个的XML文档元素结构读入内存,由根元素向下形成子元素分级树状关系。
DOM的解析
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(name);
以上三行代码,使用来生成Document对象的,Document对象就代表了读入内存后结构化的XML文档。
使用Document对象的getDocumentElement()方法获得子节点,可以通过不断的迭代便利所有节点,这些节点就代表了元素,从根元素开始一直到最内层的子元素。
getElementsByTagName(String tagname) 这个方法可以通过元素的名来或得该元素内层元素,也就是或得了这个节点的所有子节点(NodeList)NodeList的方法getLength()(列表中的节点数),通过循环使用 Node item(int index) (返回集合中的第 index 个项)方法,来获得每个子节点。
DOM解析的其他方法请参阅JAVA API文档。(org.w3c.dom)
选择 DOM 还是选择 SAX,这取决于下面几个因素:
应用程序的目的:
数据容量:
数据多少部分会被使用
对速度的需要:
DOM4j,JDOM
开源的XML文档解析器,实现DOM,SAX接口,保留了DOM和SAX的基本语法,对解析性能进行了优化。
JDOM
需要jdom.jar和
JDOM的背后使用的是使用SAX对文件进行扫描的。
SAXBuilder builder=new SAXBuilder();//创建解析器
使用SAX扫描之后的结果保存成DOM结构的树。JDOM对解析过程作了简化。
JDOM中的方法便的更加易用。例如:getRootElement(),getChildren("...")方法的返回值是java.util.List类型,getText()方法直接可以返回元素中的内容,他的返回值类型是String类型。
JDOM也可以对XML文档进行写操作。
XMLOutputter类的对象可以向文件中写信息,setEncoding("")设置内码,setNewLine(true),设置换行。output(Document docFileWriter write)方法可以向文件中写入。