JavaEE学习 javaweb前三章
Javaweb 基础学习流程 十一章阶段 穿插数据库(JavaEE架构 web应用程序)
1,JavaEE ---企业级应用程序
多用户访问----通常通过浏览器访问或pc和 移动程序
分布式系统---
业务比较复杂
需要数据源支持,通常是关系型数据库(RDBMS)--分两类:关系型数据库(RDBMS)MySQL 等 非关系型数据库
2,客户层---表示层 业务层 整合层---资源层
| | |
浏览器 --> 友好显示 ---> 数据库 整合层与数据库访问 业务层 --业务逻辑计算 表示层--显示数据
c/s是客户端通过一个软件访问服务器 (移动)
3,JavaEE组件
容器本身就是一个软件 组件就是(JavaSE的类--简单理解实现功能的一个类)
轻量:就是小巧 开源 tomcat 相当于容器
a, EJB组件-----Javab(JavaSE写的类)-放企业组件
b, web组件
Torncat 用的最多
4.
5, UML:称统一建模语言或标准建模语言
协作图--是用例分析出来的 也称 产物
这种图片是-----UI原型
XML 称为可扩展标记语言
xml文件一般以配置文件而存在 (存储数据和传输数据) 但是: 一般用json存储
XML 的规范
1 , XML文档有且只有一个根标签,所谓的根标签就是一对<根标签></根标签>包含其他全部标签。比如<books></books>就是根标签了
1 , 2
2 ,XML文档内没一个开始标签都必须对应一个结束标签,也可以出现<books ……/>这种标签,叫做空元素
3 , XML的标签内的属性严格区分大写
4 , XML标签的属性值必须用“”包含起来 --如果属性值本身被双引号 那么有必要 使用单引号包围它
xml元素可以在开始标签中包含属性(Attribute)
属性提供了关于元素的额外(附加)信息
标签不嵌套(合理嵌套)
5, 实体引用 --- 特殊符号
6,在XML中空格会被保留
XML 的特征
XML与html不同:
XML用途
1,作为web应用程序的配置文件--------作为工程,或者模块,框架的配置文件
2, 作为企业平台之间数据交互的载体--数据共享,数据传输。数据交换格式
3,作为HTML页面的数据支持,将数据从HTML分离----1.数据存储
XML的结构和语法
可以将XML文档看作是一种树形结构 从根部开始扩散 直到树的最底端
XML元素
是指从开始标签到结束标签部分
每个元素可包含其他元素,文本或者两者的混合物 元素也可以拥有属性
元素命名规则:
a ,名称可以含字母,数字以及其他字符
b, 名称不能以数字或者标点符号开始
c ,名称不能以含有xml开始
d ,名称不能包含空格
e , 可使用任意名称,没有保留字
元素命名指南:
xml属性和元素并没有明确界限 在xml中应该尽量避免使用属性
如果信息感觉起来像数据 那么用子元素表达 -是首选方式
可能因为属性而引起的一些问题
属性无法包含多重的值 ---元素可以
属性无法描述树的结构,---元素可以
属性不易扩展
属性难以阅读和维护
验证XML文档与查看
DTD和Schema是两种常用的xml文件的约束文件,都是用来约定XML文件,目的是会提示使用者让使用者按照规定的格式去书写XML,验证XML文件有效性。主要的区别有一下几点:
1、Schema遵循XML语法,学习成本低,不需要再学习新的语法;DTD和XML语法使用的是自己特殊的语法
2、DTD只能指定元素含有文本,不定定义元素文本的类型,如字符型、整型、日期型、自定义类型等。Schema在这方面比DTD强大。
3、Schema对命名空间的支持,如果出现两个相同的元素定义,使用命名空间可以完美的避免重复元素定义,而DTD不支持命名空间
下面就同一个XML文件,分别使用DTD和Schema约束,W3C官方给出的示例
<?xml version="1.0"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
DTD约束:
<!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
Schema约束:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3school.com.cn" xmlns="http://www.w3school.com.cn" 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>
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据
练习题1
一:
1,浏览器得到域名指向的IP后,浏览器会把我们输入的域名转化为HTTP的服务请求,例如,输入 www.dreamdu.com,可以转化为 http://www.dreamdu.com/,通过这种方式浏览器向服务器发出了请求。
由于输入的是域名,因此服务器接收到请求后,会查找域名下的默认网页(通常为default.php或default.html),如果直接输入http://www.dreamdu.com/default.php就直接查找这个页面。
2,返回的请求通常是一些文件,包括文字信息(.html .css .asp文件等),图片,flash等(每个文件都要有一个唯一的网址,比如 http://www.dreamdu.com/xhtml/)
3,浏览器将这些信息组织成用户可以查看的网页
二:
Get:是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。
Post:用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列中请求URI所指定资源的附加新子项,Post被设计成用统一的方法实现下列功能:
1:对现有资源的解释
2:向电子公告栏、新闻组、邮件列表或类似讨论组发信息。
3:提交数据块
4:通过附加操作来扩展数据库
从上面描述可以看出,Get是向服务器发索取数据的一种请求;而Post是向服务器提交数据的一种请求,要提交的数据位于信息头后面的实体中。
具体:
- GET请求能够被缓存
- GET请求会保存在浏览器的浏览记录中
- 以GET请求的URL能够保存为浏览器书签
- GET请求有长度限制
- GET请求主要用以获取数据
- POST请求不能被缓存下来
- POST请求不会保存在浏览器浏览记录中
- 以POST请求的URL无法保存为浏览器书签
- POST请求没有长度限制
GET | POST | |
点击返回/刷新按钮 | 没有影响 | 数据会重新发送(浏览器将会提示用户“数据被从新提交”) |
添加书签 | 可以 | 不可以 |
缓存 | 可以 | 不可以 |
编码类型(Encoding type) | application/x-www-form-urlencoded |
application/x-www-form-urlencoded or multipart/form-data. 请为二进制数据使用multipart编码
|
历史记录 | 有 | 没有 |
长度限制 | 有 | 没有 |
数据类型限制 | 只允许ASCII字符类型 | 没有限制。允许二进制数据 |
安全性 | 查询字符串会显示在地址栏的URL中,不安全,请不要使用GET请求提交敏感数据 | 因为数据不会显示在地址栏中,也不会缓存下来或保存在浏览记录中,所以看POST求情比GET请求安全,但也不是最安全的方式。如需要传送敏感数据,请使用加密方式传输 |
可见性 | 查询字符串显示在地址栏的URL中,可见 | 查询字符串不会显示在地址栏中,不可见 |
方式 | 描述 |
HEAD | 与GET请求类似,不同在与服务器只返回HTTP头部信息,没有页面内容 |
PUT | 上传指定URL的描述 |
DELETE | 删除指定资源 |
OPTIONS | 返回服务器支持的HTTP方法 |
CONNECT | 转换为透明TCP/IP隧道的连接请求 |