Web 标准概览
一. 关键字:W3C ,Web 标准
二. 概述: 本文概要地介绍了Web 标准的网页需要注意的地方
三. 详细内容:
1
DOCTYPE 是 document type( 文档类型 ) 的简写,用来说明你用的 XHTML 或者 HTML 是什么版本。
其中的 DTD( 例如上例中的 xhtml1-transitional.dtd) 叫文档类型定义,里面包含了文档的规则,浏览器就根据你定义的 DTD 来解释你页面的标识,并展现出来。
要建立符合标准的网页, DOCTYPE 声明是必不可少的关键组成部分;除非你的 XHTML 确定了一个正确的 DOCTYPE ,否则你的标识和 CSS 都不会生效。
XHTML 1.0 提供了三种 DTD 声明可供选择:
1.1 过渡的 (Transitional): 要求非常宽松的 DTD ,它允许你继续使用 HTML4.01 的标识 ( 但是要符合 xhtml 的写法 ) 。完整代码如下:
1.2 严格的 (Strict): 要求严格的 DTD ,你不能使用任何表现层的标识和属性,例如 。完整代码如下:
1.3 框架的 (Frameset): 专门针对框架页面设计使用的 DTD ,如果你的页面中包含有框架,需要采用这种 DTD 。完整代码如下:
理想情况当然是严格的 DTD ,但对于我们大多数刚接触 web 标准的设计师来说,过渡的 DTD(XHTML 1.0 Transitional) 是目前理想选择 ( 包括本站,使用的也是过渡型 DTD) 。因为这种 DTD 还允许我们使用表现层的标识、元素和属性,也比较容易通 过 W3C 的代码校验。
注:上面说的 " 表现层的标识、属性 " 是指那些纯粹用来控制表现的 tag ,例如用于排版的表格、背景颜色标识等。在 XHTML 中标识是用来表示结构的,而不是用来实现表现形式,我们过渡的目的是最终实现数据和表现相分离。
DOCTYPE 声明必须放在每一个 XHTML 文档最顶部,在所有代码和标识之上。
2 DOCTYPE 声明好以后,接下来的代码是:
通常我们 HTML4.0 的代码只是 ,这里的 "xmlns" 是什么呢?这个 "xmlns" 是 XHTML namespace 的缩写,叫做 " 名字空间 " 声明。
由于 xml 允许你自己定义自己的标识,你定义的标识和其他人定义的标识有可能相同,但表示不同的意义。当文件交换或者共享的时候就容易产生错误。为了避免这种错误发生, XML 采用名字空间声明,允许你通过一个网址指向来识别你的标识。
XHTML 是 HTML 向 XML 过渡的标识语言,它需要符合 XML 文档规则,因此也需要定义名字空间。又因为 XHTML1.0 不能自定义标识,所以它 的名字空间都相同,就是 "http://www.w3.org/1999/xhtml" 。如果你还不太理解也不要紧,目前阶段我们只要照抄代码就可以了。后面的 lang="gb2312", 指定你的文档用简体中文。
3 定义你的语言编码
为了被浏览器正确解释和通过 W3C 代码校验,所有的 XHTML 文档都必须声明它们所使用的编码语言,我们一般使用 gb2312( 简体中文 ) ,制作多国语言页面也有可能用 Unicode 、 ISO-8859-1 等,根据你的需要定义。
通常这样定义就可以了。但是要补充说明的是, XML 文档并不是这样定义语言编码的, XML 的定义方式如下:
4 用 web 标准设计网站,过渡的方法主要是采用 XHTML+CSS , css 样式表是必不可少的。
4.1 外部调用样式表
在以前,我们通常采用 2 种方法使用样式表:
4.1.1 页面内嵌法:就是将样式表直接写在页面代码的 head 区。类似这样:
4.1.2 外部调用法:将样式表写在一个独立的 .css 文件中,然后在页面 head 区用类似以下代码调用。
在符合 web 标准的设计中,我们使用外部调用法,好处不言而喻,你可以不修改页面只修改 .css 文件而改变页面的样式。如果所有页面都调用同一个样式表文件,那么改一个样式表文件,可以改变所有文件的样式。
4.2 双表法调用样式表
查看某些符合标准站点的原代码,你可能看到,在调用样式表的地方有如下 2 句:
为什么要写两次呢?
实际上一般情况下用外联法调用 ( 就是第一句 ) 就足够了。我这里使用双表调用只是一种示例。其中的 "@import" 命令用于输入样式表。而 "@import" 命令在 netscape 4.0 版本浏览器是无效的。也就是说,当你希望某些效果在 netscape 4.0 浏览器中隐藏,在 4.0 以上或其它浏览器中又显示的时候,你可以采用 "@import" 命令方法调用样式表 .
5 收藏夹小图标
5.1 将下面的代码嵌入 head 区:
5.2 为搜索引擎准备的内容
代码如下,替换成你自己站点的内容就可以:
5.2.1 允许搜索机器人搜索站内所有链接。如果你想某些页面不被搜索,推荐采用 robots.txt 方法
5.2.2 设置站点作者信息
5.2.3 设置站点版权信息
版权所有" />
5.2.4 站点的简要介绍 ( 推荐 )
专业从事企业信息化管理的研究、咨询与系统开发的国家高新技术软件企业" />
5.2.5 站点的关键词 ( 推荐 )
6 XHTML 代码规范
6.1 所有的标记都必须要有一个相应的结束标记
以前在 HTML 中,你可以打开许多标签,例如
和 而不一定写对应的
和 < /li> 来关闭它们。但在 XHTML 中这是不合法的。 XHTML 要求有严谨的结构,所有标签必须关闭。如果是单独不成对的标签,在标签最后加一个 "/" 来关闭它。例如 :
网页设计师" src="../images/logo_w3cn_200x80.gif" width="200" />
6.2 所有标签的元素和属性的名字都必须使用小写
与 HTML 不一样, XHTML 对大小写是敏感的, 和 是不同的标签。 XHTML 要求所有的标签 和属性的名字都必须使用小写。例如: 必须写成 。大小写夹杂也是不被认可的,通常 dreamweaver 自动生成的属性名字 "onMouseOver" 也必须修改成 "onmouseover" 。
6.3 所有的 XML 标记都必须合理嵌套
同样因为 XHTML 要求有严谨的结构,因此所有的嵌套都必须按顺序,以前我们这样写的代码:
/b>
必须修改为:
/p>
就是说,一层一层的嵌套必须是严格对称。
相同的, 如果标签是空标签, 如 , 等, 也要关闭它们, 如
" zeldman.gif " />
注意, 不要拉掉在br, 或img 结尾的/> 标记, 同时在/> 之前要有空格分开。
6.4 所有的属性必须用引号 "" 括起来
在 HTML 中,你可以不需要给属性值加引号,但是在 XHTML 中,它们必须被加引号。例如 :
必须修改为:
特殊情况,你需要在属性值里使用双引号,你可以用 " ,单引号可以使用 ' ,例如:
6.5 把所有 < 和 & 特殊符号用编码表示
任何小于号( < ),不是标签的一部分,都必须被编码为 <
任何大于号( > ),不是标签的一部分,都必须被编码为 >
任何与号( & ),不是实体的一部分的,都必须被编码为 &
6.6 给所有属性赋一个值
XHTML 规定所有属性都必须有一个值,没有值的就重复本身。例如:
必须修改为:
checked="checked">
6.7 不要在注释内容中使 “--”
“--” 只能发生在 XHTML 注释的开头和结束,也就是说,在内容中它们不再有效。例如下面的代码是无效的 :
用等号或者空格替换内部的虚线。
7 CSS 布局入门
CSS 布局与传统表格 (table) 布局最大的区别在于:原来的定位都是采用表格,通过表格的间距或者用无色透明的 GIF 图片来控制文布局版块的间距;而现在则采用层 (div) 来定位,通过层的 margin,padding,border 等属性来控制版块的间距。
分析一个典型的定义 div 例子:
#sample{ MARGIN: 10px 10px 10px 10px;
PADDING:20px 10px 10px 20px;
BORDER-TOP: #CCC 2px solid;
BORDER-RIGHT: #CCC 2px solid;
BORDER-BOTTOM: #CCC 2px solid;
BORDER-LEFT: #CCC 2px solid;
BACKGROUND: url(images/bg_poem.jpg) #FEFEFE no-repeat right bottom;
COLOR: #666;
TEXT-ALIGN: center;
LINE-HEIGHT: 150%; WIDTH:60%; }
说明如下:
层的名称为 sample ,在页面中用 就可以调用这个样式。
MARGIN 是指层的边框以外留的空白,用于页边距或者与其它层制造一个间距。 "10px 10px 10px 10px" 分别代表 " 上右下左 "( 顺时针方向 ) 四个边距,如果都一样,可以缩写成 "MARGIN: 10px;" 。如果边距为零,要写成 "MARGIN: 0px;" 。注意:当值是零时,除了 RGB 颜色值 0% 必须跟百分号,其他情况后面可以不跟单位 "px" 。 MARGIN 是透明元素,不能定义颜色。
PADDING 是指层的边框到层的内容之间的空白。和 margin 一样,分别指定上右下左边框到内容的距离。如果都一样,可以缩写成 "PADDING:0px" 。单独指定左边可以写成 "PADDING-LEFT: 0px;" 。 PADDING 是透明元素,不能定义颜色。
BORDER 是指层的边框, "BORDER-RIGHT: #CCC 2px solid;" 是定义层的右边框颜色为 "#CCC" ,宽度为 "2px" ,样式为 "solid" 直线。如果要虚线样式可以用 "dotted" 。
BACKGROUND 是定义层的背景。分 2 级定义,先定义图片背景,采用 "url(../images/bg_logo.gif)" 来指定背景图片路径;其次定义背景色 "#FEFEFE" 。 "no-repeat" 指背景图片不需要重复,如果需要横向重复用 "repeat-x", 纵向重复用 "repeat-y", 重复铺满整个背景用 "repeat" 。后面的 "right bottom;" 是指背景图片从右下角开始。如果没有背景图片可以只定义背景色 BACKGROUND: #FEFEFE
COLOR 用于定义字体颜色,上一节已经介绍过。
TEXT-ALIGN 用来定义层中的内容排列方式, center 居中 ,left 居左 ,right 居右。
LINE-HEIGHT 定义行高, 150% 是指高度为标准高度的 150% ,也可以写作: LINE-HEIGHT:1.5 或者 LINE-HEIGHT:1.5em ,都是一样的意思。
WIDTH 是定义层的宽度,可以采用固定值,例如 500px ,也可以采用百分比,象这里的 "60%" 。要注意的是 : 这个宽度仅仅指你内容的宽度,不包含 margin,border 和 padding 。但在有些浏览器中不是这么定义的,需要你多试试。
再来看看CSS2 的盒模型Box Model
通过以上内容的了解,我们可以将Content 内容部分显示在我们想要显示的容器内的位置。
同时,我们可以看到,IE 与其他浏览器在解释width 的时候是不同的,因此会造成排版上的偏差。这里我们需要使用一些小技巧来处理。看以下CSS 代码:
div.sample{
border:20px solid #60A179;
padding:30px;
background: #ffc;
width :400px;
voice-family : "/"}/"";
voice-family :inherit;
width : 300px;
}
html>body .content { width :300; }
注意上面加粗的两句,IE 是不能识别的,因此会跳过其下声明,认为IE 中的width 为400px 。而其他符合标准的浏览器会继续阅读,认为width 为300px 。因此对比上图可以得出
CSS’Width’ + 2*border + 2*padding = IE’Width’ ,两者表示的意思是一致的。
8 使用 显示列表或菜单
默认情况下, 的每一项都会显示一个难看的小圆点,其实通过样式是可以去掉的。将属性LIST-STYLE-TYPE 的值置为none ,小圆点就会消失。另外,设置li 的背景图片,并将背景图片显示在指定位置就可以达到使用图片替换小圆点的目的。将属性Display 为inline ,可以将列表横向显示。
你可能感兴趣的:(C#)
c#集合排序
zls365365
c# windows 开发语言
在C#中,集合排序是一种常见的操作,它可以帮助我们对集合中的元素进行排序。C#中提供了多种集合排序方法,包括Array.Sort、List.Sort、SortedList和SortedSet等。下面分别介绍一下这些集合排序方法的用法和注意事项:1.Array.SortArray.Sort是C#中的数组排序方法,可以对数组中的元素进行排序。Array.Sort方法可以使用默认的排序算法或者自定义的排
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现打架检测(C#代码,UI界面版)
格林威
工业相机 机器视觉 数码相机 YOLO 深度学习 计算机视觉 人工智能
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现打架检测(C#代码,UI界面版)工业相机使用YoloV8模型实现打架检测工业相机通过YoloV8模型实现打架检测的技术背景在相机SDK中获取图像转换图像的代码分析工业相机图像转换Bitmap图像格式和Mat图像重要核心代码本地文件图像转换Bitmap图像格式和Mat图像重要核心代码Mat图像导入YoloV8模型重要核心代码代码实现
C# 读取文件内容的全面指南:从基础到高级技术
梦幻南瓜
c# c# 开发语言
目录引言1.基础文件读取方法1.1File.ReadAllText-最简单的一次性读取1.2File.ReadAllLines-按行读取为数组1.3File.ReadAllBytes-二进制文件读取2.流式读取方法2.1StreamReader基础用法2.2指定编码方式2.3二进制流读取3.高级文件读取技术3.1异步文件读取3.2内存映射文件(Memory-MappedFiles)3.3管道(Pi
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现人脸识别检测(C#代码,UI界面版)
格林威
机器视觉 工业相机 数码相机 YOLO 深度学习 人工智能 视觉检测 c#
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现人脸识别检测(C#代码,UI界面版)工业相机使用YoloV8模型实现人脸的检测工业相机通过YoloV8模型实现人脸识别检测的技术背景在相机SDK中获取图像转换图像的代码分析工业相机图像转换Bitmap图像格式和Mat图像重要核心代码本地文件图像转换Bitmap图像格式和Mat图像重要核心代码Mat图像导入YoloV8模型重要核心代
c#泛型集合(ArrayList和List、Dictionary的对比)
一、List集合1.基本概念泛型集合:只能存储指定类型的数据,类型安全。动态扩容:无需指定初始大小,自动调整容量。性能优势:避免装箱拆箱(相比ArrayList)。2.创建与初始化//空列表Listlist=newList();//带初始值的列表Listlist4=newList{"aaa","ccc","bbb"};3.常用属性与方法操作代码示例说明添加元素list.Add(100);在末尾添
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现人物识别(C#代码,UI界面版)
格林威
工业相机 机器视觉 数码相机 YOLO c# 人工智能 计算机视觉 开发语言
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现人物识别(C#代码,UI界面版)工业相机使用YoloV8模型实现人物识别工业相机实现YoloV8模型实现人物识别的技术背景在相机SDK中获取图像转换图像的代码分析工业相机图像转换Bitmap图像格式和Mat图像重要核心代码本地文件图像转换Bitmap图像格式和Mat图像重要核心代码Mat图像导入YoloV8模型重要核心代码代码实现
C# 代码(`Hashtable` 和 `SortedList`)
张謹礧
c# 哈希算法 开发语言
一、Hashtable(哈希表)1.基本概念非泛型集合:存储键值对(object类型),通过哈希算法实现快速查找。线程安全:默认非线程安全,可通过Hashtable.Synchronized创建线程安全版本。键的唯一性:键必须唯一,且不可为null(值可为null)。2.创建与初始化//创建空的HashtableHashtablehashtable=newHashtable();//创建并初始化
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现动物分类(C#源码,UI界面版)
格林威
机器视觉 工业相机 数码相机 YOLO 深度学习 计算机视觉 人工智能 视觉检测 c#
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现动物分类(C#源码,UI界面版))工业相机使用YoloV8模型实现动物分类工业相机实现YoloV8模型实现动物分类的技术背景在相机SDK中获取图像转换图像的代码分析工业相机图像转换Bitmap图像格式和Mat图像重要核心代码本地文件图像转换Bitmap图像格式和Mat图像重要核心代码Mat图像导入YoloV8模型重要核心代码代码实
C#`Array`进阶
张謹礧
c# java 算法
一、数组方法进阶(Array类核心方法解析)该部分主要介绍Array类的静态方法与实例方法,核心是高阶函数(参数为函数的方法)的应用,通过回调函数实现灵活的数组查询与操作。1.核心静态方法(Array.XXX)静态方法需通过Array类直接调用,主要用于数组查询、判断、遍历等,参数常包含“回调函数”(定义查询条件)。方法作用关键参数示例场景Find从前向后查找第一个满足条件的元素数组+回调函数(返
【C#】Vscode中C#工程如何引用自编写的dll
如题问了几个AI,最后实验出来这个说的对,实际效果也是可以的,修改完csproj,关闭文件夹重新打开工程即可在VisualStudioCode中使用C#项目添加自定义DLL动态链接库的步骤如下:通过修改.csproj文件将DLL文件放入项目目录在项目根目录创建lib文件夹(或其他名称)将你的YourLibrary.dll放入此文件夹编辑项目文件(.csproj)打开项目文件(如YourProjec
9.IEnumerable可枚举接口 C#例子 WPF例子
军训猫猫头
华丽文章 windows c# microsoft
privateasyncvoidButton_Click(objectsender,RoutedEventArgse){//调用时可以传入List、Array、HashSet等任何实现了IEnumerable的集合ListmyList=newList{"A","B"};ProcessItems(myList);string[]myArray={"X","Y"};ProcessItems(myArr
C#程序唯一性守护:用互斥锁(Mutex)实现进程级安全控制的实战指南
为什么程序重复启动是个"毒瘤"?在软件开发中,程序重复启动可能导致以下灾难性后果:资源冲突:多个实例争夺数据库连接、文件句柄等有限资源数据污染:并发写入配置文件导致内容错乱界面混乱:多个窗口同时弹出,用户体验崩坏安全漏洞:恶意程序通过伪造实例窃取数据而互斥锁(Mutex)是Windows/Linux系统提供的原生机制,能完美解决这些问题。相比文件锁、注册表标记等传统方案,Mutex具有以下不可替代
C# 委托与事件:从函数指针到事件驱动的终极指南
墨夶
C#学习资料 c# 开发语言
**为什么说委托与事件是C#的“灵魂”?**在C#的世界里,委托(Delegate)与事件(Event)是两个看似简单却深藏玄机的核心概念。你是否曾想过:一个按钮点击事件背后,是如何将“点击动作”与“响应方法”无缝连接的?你是否遇到过:需要动态传递方法、实现回调或构建观察者模式时的“无从下手”?你是否渴望:掌握一套完整的“异步通信”机制,用于构建高内聚、低耦合的系统?答案来了:✅委托是“方法的容器
c#:TCP服务端管理类
妮妮学代码
c# tcp/ip java
TCP客户端连接多个服务端的类1.架构图2.创建TCP客户端与服务端通信的工具类注:TcpClientAsyncTool类中是客户端连接服务端的,TcpClient实质是Server,套用服务端连接客户端的,使用过程中自行修改名称,本案例暂未修改。连接使用异步操作,其余为同步执行的。publicclassTcpClientAsyncTool{privateTcpClient_tcpClient;p
C#软件开发规范:从代码到实践的全面指南
jie sherry
本文还有配套的精品资源,点击获取简介:《C#经典软件开发规范》详细介绍了在企业中实行软件开发的最佳实践,包括编码、设计、文档和测试等方面。该规范着重于提升代码质量、可维护性和团队效率。关键知识点包括命名规范、注释规范、代码结构、异常处理、错误检查、代码简洁性、单元测试、版本控制、设计模式、代码审查、性能优化、并发与多线程、日志记录、安全性和持续集成/部署(CI/CD)。遵循这些规范有助于创建健壮的
Unity 常见数据结构分析与实战展示 C#
与火星的孩子对话
Unity理论与实战 unity 数据结构 c#
Unity常见数据结构分析与实战展示提示:内容纯个人编写,欢迎评论点赞,来指正我。文章目录Unity常见数据结构分析与实战展示1.引言2.Unity数据结构概述3.常见数据结构1.数组(Array)2.列表(List)3.字典(Dictionary)4.队列(Queue)5.栈(Stack)4.实战案例分析案例1:游戏对象管理案例2:事件系统实现案例3:AI行为树5.最佳实践与建议6.总结1.引言
LeetCode第337题_打家劫舍III
@蓝莓果粒茶
算法 leetcode 算法 职场和发展 c# 学习
LeetCode第337题:打家劫舍III文章摘要本文详细解析LeetCode第337题"打家劫舍III",这是一道中等难度的二叉树动态规划问题。文章提供了基于深度优先搜索和动态规划的解法,包含C#、Python、C++三种语言实现,配有详细的算法分析和性能对比。适合想要提升二叉树和动态规划能力的程序员。核心知识点:二叉树、动态规划、深度优先搜索难度等级:中等推荐人群:具有基础数据结构知识,想要提
AutoGen C#三步变强:比Python还野的多AI协作实战!
墨瑾轩
一起学学C#【四】 c# python 人工智能
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣一、第一步:环境搭建——给AutoGen装上"AI乐高积木"目标:用C#搭建AutoGen基础环境,像组装乐高一样准备工具。步骤:克隆AutoGen项目:访问AutoGenGitHub仓库,克隆到本地:gitclonehttps://github.com/mi
C#进行串口应用开发如何处理串口的异常情况
openwin_top
c#串口应用开发问题系列 c# 开发语言 串口 通讯 上位机
python编程示例系列python编程示例系列二python的Web神器Streamlit如何应聘高薪职位C#视觉应用开发问题系列c#串口应用开发问题系列microPythonPython最小内核源码解析NI-motion运动控制c语言示例代码解析在C#中进行串口应用开发时,处理串口的异常情况是非常重要的。常见的串口异常包括端口不可用、数据传输错误、超时等
从 C# 转 Python 第三天:文件操作、异常处理与错误日志实践
AI、少年郎
java 前端 数据库 c# 文件操作 异常处理
在软件开发的广阔领域中,Python和C#作为两种备受瞩目的编程语言,各自凭借独特的特性和强大的功能,在不同的应用场景中展现出卓越的性能。对于开发者而言,深入理解并熟练掌握这两门语言的核心技能,如文件操作与异常处理,不仅是提升个人编程能力的关键,更是在复杂多变的项目开发中应对各种挑战、确保程序稳定运行的必备条件。在日常的编程工作中,文件操作是实现数据持久化存储、读取配置信息以及处理各种数据文件的基
C# 线程--Thread类
目录什么是线程?Thread类的定义创建和启动线程使用ThreadStart委托使用ParameterizedThreadStart委托Lambda简写使用线程池(ThreadPool)使用线程池的优点使用ThreadPool的一般步骤常用方法Start()Join()Sleep(intmillisecondsTimeout)Abort()IsAliveManagedThreadIdSetApar
【设计模式&C#】享元模式(用于解决多次创建对象而导致的性能问题)
大飞pkz
设计模式 C# 设计模式 享元模式 C# 开发语言
一种结构型设计模式。特点是通过共享内部状态来减少对象的数量,从而降低内存使用和提高性能。优点:大幅减少对象的数量,减少了内存的使用,提高了性能;支持更多颗粒度对象,而不会导致内存溢出;可以与对象池技术结合,进一步提高对象池的复用效率。缺点:为了实现享元模式,需要将对象的状态分为内部状态和外部状态,提高了系统的复杂性;享元对象被多个线程共享,可能会导致性能安全问题;适用场景:需要管理大量颗粒度对象;
C#学习笔记
说笑谈古松
C# c#
这是我以前的学习笔记,使用word写的,缩进应该有问题。3.1变量usingsystem;在这里定义的变量就可以在整个程序中使用;inta;publicclassmain{在这里定义的变量就可以在整个类中使用;intb;publicvoidstaticMain(){在这里定义的变量就可以在整个方法中使用;intc;}}也可以用static实现!3.1常量静态常量:publicconstintMAX
C#复习资料
洁辉
c# java jvm
核心目标:理解原理、掌握应用、避开陷阱、应对提问。一、类型系统(TypeSystem)-面试基石&高频考点值类型(ValueTypes)vs引用类型(ReferenceTypes)本质区别:值类型(struct,enum,基本类型如int,double,bool,char,decimal,DateTime):存储:数据本身直接存储在变量位置(通常栈上,或嵌入在引用类型对象中)。赋值/传参:复制整个
掌握C#文件操作与XML处理:学习资料完整指南
竹石文化传播有限公司
本文还有配套的精品资源,点击获取简介:C#是一种广泛应用于Windows和跨平台开发的编程语言,它在.NET框架中包含强大的文件和XML操作能力。本文深入探讨了C#中的文件读写技术,包括使用System.IO命名空间中的File类进行文本和二进制文件处理,FileStream类的流操作,以及XML文档的解析、创建和修改方法。同时,文章也介绍了文件操作的扩展功能和在进行文件操作时应考虑的异常处理。通
利用Windows .NET特性和Unicode规范化漏洞攻击DNN (DotNetNuke)
sechub
windows .net dnn
概述DNN(前身为DotNetNuke)是2003年建立的最古老的开源内容管理系统之一,使用C#(.NET)编写,由活跃的爱好者社区维护。它也被企业广泛使用。漏洞背景CVE-2017-9822历史案例我们熟悉这项技术是因为CVE-2017-9822,该漏洞允许通过DNNPersonalizationcookie的不安全反序列化进行远程代码执行(RCE)。这个CVE一直是反序列化攻击的绝佳案例研究。
C# 设计模式概况
业余撸码人
.net 设计模式 c# .net
什么是设计模式大家熟知的GOF23种设计模式,源自《DesignPatterns:ElementsofReusableObject-OrientedSoftware》一书,由ErichGamma、RichardHelm、RalphJohnson和JohnVlissides合著,四人组GangofFour简称GOF。总结了在面向对象语言开发过程中常见问题的解决方案。设计模式是面向对象语言开发过程中,
c++ 反射与QMetaObject::invokeMethod介绍
文章目录c++QMetaObject::invokeMethodC++语言标准本身并不直接支持反射机制,这与Java、C#等语言不同,它们在语言层面提供了丰富的反射API。然而,C++是一种非常灵活的语言,可以通过一些设计和编程技巧来实现类似反射的功能。在C++中实现反射通常涉及以下几种技术:动态创建对象:反射可以在运行时创建任意一个已经定义的类的对象实例,即使你在编写代码时并不知道将要创建哪个类
C# 设计模式 概述
Krik_S
c# 设计模式 开发语言
一、7种常用的面向对象设计原则1.单一职责原则(SRP):一个对象应该只包含单一的职责,并且该职责被完全封装在一个类中2.开闭原则(OCP):软件实体应当对扩展开放,对修改关闭3.里氏代换原则(LSP):所有引用基类的地方必须透明的使用其子类的对象4.依赖倒转原则(DIP):高层模块不应该依赖低层模块,他们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象5.接口隔离原则(ISP):客户端不
C# 开发与 Allen-Bradley PLC 的 EtherNet/IP 通讯接口
威哥说编程
c# tcp/ip 开发语言
一、背景与动机Allen-Bradley是RockwellAutomation的核心自动化品牌,其PLC(ProgrammableLogicController)广泛应用于工业自动化领域。Allen-Bradley控制器支持通过EtherNet/IP(IndustrialProtocol)进行通信,这是一种基于工业以太网的开放协议。在工业信息化过程中,越来越多的系统需要将SCADA、MES或自定义
java观察者模式
3213213333332132
java 设计模式 游戏 观察者模式
观察者模式——顾名思义,就是一个对象观察另一个对象,当被观察的对象发生变化时,观察者也会跟着变化。
在日常中,我们配java环境变量时,设置一个JAVAHOME变量,这就是被观察者,使用了JAVAHOME变量的对象都是观察者,一旦JAVAHOME的路径改动,其他的也会跟着改动。
这样的例子很多,我想用小时候玩的老鹰捉小鸡游戏来简单的描绘观察者模式。
老鹰会变成观察者,母鸡和小鸡是
TFS RESTful API 模拟上传测试
ronin47
TFS RESTful API 模拟上传测试。
细节参看这里:https://github.com/alibaba/nginx-tfs/blob/master/TFS_RESTful_API.markdown
模拟POST上传一个图片:
curl --data-binary @/opt/tfs.png http
PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式
dcj3sjt126com
设计模式 PHP
// 多态, 在JAVA中是这样用的, 其实在PHP当中可以自然消除, 因为参数是动态的, 你传什么过来都可以, 不限制类型, 直接调用类的方法
abstract class Tiger {
public abstract function climb();
}
class XTiger extends Tiger {
public function climb()
hibernate
171815164
Hibernate
main,save
Configuration conf =new Configuration().configure();
SessionFactory sf=conf.buildSessionFactory();
Session sess=sf.openSession();
Transaction tx=sess.beginTransaction();
News a=new
Ant实例分析
g21121
ant
下面是一个Ant构建文件的实例,通过这个实例我们可以很清楚的理顺构建一个项目的顺序及依赖关系,从而编写出更加合理的构建文件。
下面是build.xml的代码:
<?xml version="1
[简单]工作记录_接口返回405原因
53873039oycg
工作
最近调接口时候一直报错,错误信息是:
responseCode:405
responseMsg:Method Not Allowed
接口请求方式Post.
关于java.lang.ClassNotFoundException 和 java.lang.NoClassDefFoundError 的区别
程序员是怎么炼成的
真正完成类的加载工作是通过调用 defineClass来实现的;
而启动类的加载过程是通过调用 loadClass来实现的;
就是类加载器分为加载和定义
protected Class<?> findClass(String name) throws ClassNotFoundExcept
JDBC学习笔记-JDBC详细的操作流程
aijuans
jdbc
所有的JDBC应用程序都具有下面的基本流程: 1、加载数据库驱动并建立到数据库的连接。 2、执行SQL语句。 3、处理结果。 4、从数据库断开连接释放资源。
下面我们就来仔细看一看每一个步骤:
其实按照上面所说每个阶段都可得单独拿出来写成一个独立的类方法文件。共别的应用来调用。
1、加载数据库驱动并建立到数据库的连接:
Html代码
St
rome创建rss
antonyup_2006
tomcat cms xml struts Opera
引用
1.RSS标准
RSS标准比较混乱,主要有以下3个系列
RSS 0.9x / 2.0 : RSS技术诞生于1999年的网景公司(Netscape),其发布了一个0.9版本的规范。2001年,RSS技术标准的发展工作被Userland Software公司的戴夫 温那(Dave Winer)所接手。陆续发布了0.9x的系列版本。当W3C小组发布RSS 1.0后,Dave W
html表格和表单基础
百合不是茶
html 表格 表单 meta 锚点
第一次用html来写东西,感觉压力山大,每次看见别人发的都是比较牛逼的 再看看自己什么都还不会,
html是一种标记语言,其实很简单都是固定的格式
_----------------------------------------表格和表单
表格是html的重要组成部分,表格用在body里面的
主要用法如下;
<table>
&
ibatis如何传入完整的sql语句
bijian1013
java sql ibatis
ibatis如何传入完整的sql语句?进一步说,String str ="select * from test_table",我想把str传入ibatis中执行,是传递整条sql语句。
解决办法:
<
精通Oracle10编程SQL(14)开发动态SQL
bijian1013
oracle 数据库 plsql
/*
*开发动态SQL
*/
--使用EXECUTE IMMEDIATE处理DDL操作
CREATE OR REPLACE PROCEDURE drop_table(table_name varchar2)
is
sql_statement varchar2(100);
begin
sql_statement:='DROP TABLE '||table_name;
【Linux命令】Linux工作中常用命令
bit1129
linux命令
不断的总结工作中常用的Linux命令
1.查看端口被哪个进程占用
通过这个命令可以得到占用8085端口的进程号,然后通过ps -ef|grep 进程号得到进程的详细信息
netstat -anp | grep 8085
察看进程ID对应的进程占用的端口号
netstat -anp | grep 进程ID
&
优秀网站和文档收集
白糖_
网站
集成 Flex, Spring, Hibernate 构建应用程序
性能测试工具-JMeter
Hmtl5-IOCN网站
Oracle精简版教程网站
鸟哥的linux私房菜
Jetty中文文档
50个jquery必备代码片段
swfobject.js检测flash版本号工具
angular.extend
boyitech
AngularJS angular.extend AngularJS API
angular.extend 复制src对象中的属性去dst对象中. 支持多个src对象. 如果你不想改变一个对象,你可以把dst设为空对象{}: var object = angular.extend({}, object1, object2). 注意: angular.extend不支持递归复制. 使用方法: angular.extend(dst, src); 参数:
java-谷歌面试题-设计方便提取中数的数据结构
bylijinnan
java
网上找了一下这道题的解答,但都是提供思路,没有提供具体实现。其中使用大小堆这个思路看似简单,但实现起来要考虑很多。
以下分别用排序数组和大小堆来实现。
使用大小堆:
import java.util.Arrays;
public class MedianInHeap {
/**
* 题目:设计方便提取中数的数据结构
* 设计一个数据结构,其中包含两个函数,1.插
ajaxFileUpload 针对 ie jquery 1.7+不能使用问题修复版本
Chen.H
ajaxFileUpload ie6 ie7 ie8 ie9
jQuery.extend({
handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) {
s.error.call( s.context || s, xhr, status, e );
}
[机器人制造原则]机器人的电池和存储器必须可以替换
comsci
制造
机器人的身体随时随地可能被外来力量所破坏,但是如果机器人的存储器和电池可以更换,那么这个机器人的思维和记忆力就可以保存下来,即使身体受到伤害,在把存储器取下来安装到一个新的身体上之后,原有的性格和能力都可以继续维持.....
另外,如果一
Oracle Multitable INSERT 的用法
daizj
oracle
转载Oracle笔记-Multitable INSERT 的用法
http://blog.chinaunix.net/uid-8504518-id-3310531.html
一、Insert基础用法
语法:
Insert Into 表名 (字段1,字段2,字段3...)
Values (值1,
专访黑客历史学家George Dyson
datamachine
on
20世纪最具威力的两项发明——核弹和计算机出自同一时代、同一群年青人。可是,与大名鼎鼎的曼哈顿计划(第二次世界大战中美国原子弹研究计划)相 比,计算机的起源显得默默无闻。出身计算机世家的历史学家George Dyson在其新书《图灵大教堂》(Turing’s Cathedral)中讲述了阿兰·图灵、约翰·冯·诺依曼等一帮子天才小子创造计算机及预见计算机未来
小学6年级英语单词背诵第一课
dcj3sjt126com
english word
always 总是
rice 水稻,米饭
before 在...之前
live 生活,居住
usual 通常的
early 早的
begin 开始
month 月份
year 年
last 最后的
east 东方的
high 高的
far 远的
window 窗户
world 世界
than 比...更
在线IT教育和在线IT高端教育
dcj3sjt126com
教育
codecademy
http://www.codecademy.com codeschool
https://www.codeschool.com teamtreehouse
http://teamtreehouse.com lynda
http://www.lynda.com/ Coursera
https://www.coursera.
Struts2 xml校验框架所定义的校验文件
蕃薯耀
Struts2 xml校验 Struts2 xml校验框架 Struts2校验
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年7月11日 15:54:59 星期六
http://fa
mac下安装rar和unrar命令
hanqunfeng
mac
1.下载:http://www.rarlab.com/download.htm 选择
RAR 5.21 for Mac OS X 2.解压下载后的文件 tar -zxvf rarosx-5.2.1.tar 3.cd rar sudo install -c -o $USER unrar /bin #输入当前用户登录密码 sudo install -c -o $USER rar
三种将list转换为map的方法
jackyrong
list
在本文中,介绍三种将list转换为map的方法:
1) 传统方法
假设有某个类如下
class Movie {
private Integer rank;
private String description;
public Movie(Integer rank, String des
年轻程序员需要学习的5大经验
lampcy
工作 PHP 程序员
在过去的7年半时间里,我带过的软件实习生超过一打,也看到过数以百计的学生和毕业生的档案。我发现很多事情他们都需要学习。或许你会说,我说的不就是某种特定的技术、算法、数学,或者其他特定形式的知识吗?没错,这的确是需要学习的,但却并不是最重要的事情。他们需要学习的最重要的东西是“自我规范”。这些规范就是:尽可能地写出最简洁的代码;如果代码后期会因为改动而变得凌乱不堪就得重构;尽量删除没用的代码,并添加
评“女孩遭野蛮引产致终身不育 60万赔偿款1分未得”医腐深入骨髓
nannan408
先来看南方网的一则报道:
再正常不过的结婚、生子,对于29岁的郑畅来说,却是一个永远也无法实现的梦想。从2010年到2015年,从24岁到29岁,一张张新旧不一的诊断书记录了她病情的同时,也清晰地记下了她人生的悲哀。
粗暴手术让人发寒
2010年7月,在酒店做服务员的郑畅发现自己怀孕了,可男朋友却联系不上。在没有和家人商量的情况下,她决定堕胎。
12月5日,
使用jQuery为input输入框绑定回车键事件 VS 为a标签绑定click事件
Everyday都不同
jsp input 回车键绑定 click enter
假设如题所示的事件为同一个,必须先把该js函数抽离出来,该函数定义了监听的处理:
function search() {
//监听函数略......
}
为input框绑定回车事件,当用户在文本框中输入搜索关键字时,按回车键,即可触发search():
//回车绑定
$(".search").keydown(fun
EXT学习记录
tntxia
ext
1. 准备
(1) 官网:http://www.sencha.com/
里面有源代码和API文档下载。
EXT的域名已经从www.extjs.com改成了www.sencha.com ,但extjs这个域名会自动转到sencha上。
(2)帮助文档:
想要查看EXT的官方文档的话,可以去这里h
mybatis3的mapper文件报Referenced file contains errors
xingguangsixian
mybatis
最近使用mybatis.3.1.0时无意中碰到一个问题:
The errors below were detected when validating the file "mybatis-3-mapper.dtd" via the file "account-mapper.xml". In most cases these errors can be d