XML(可扩展标记语言)看起来可能像某种W3C标准――现在没有什么实际影响,即使以后能派上用场,也是很久以后的事。但实际上,它现在已经得到了应用。所以,不要等到XML已被加进了你最喜爱的HTML编辑器中才开始使用它。它现在就可以解决各种内部问题和B2B系统问题。
在Sparks.com,我们使用XML来标准化从Java对象到HTML数据显示等不同系统之间的数据表示。
特别需要指出的是,我们发现,只要以非常基本的XML结构来实现标准化,就可以更容易地共享和操作数据。在这一过程中,我们发现了使用XML的很多有效方法。下面详细介绍我们现在的应用情况。
标准化
在使用XML之前,建立与你要使用的信息不同的XML数据格式。
生成动态XML
从数据库中生成HTML并不新鲜,但生成XML却很新鲜。这里我们介绍具体的生成步骤。
用XSL作为模板语言
XSL(可扩展样式表语言)是定义XML数据显示格式的好方法,如果写成几个静态模板会更有效。
生成HTML
XML加上XSL就等于HTML。这听起来似乎不对,但用户所见的我们的HTML页面其实就是XML和XSL共同产生的效果。
一、标准化
XML的能力来自于它的灵活性。但不幸的是,它有时太灵活了,以至于你会面对一个空白的页面,发愁该怎么解决问题。
在任何XML的项目中,第一步工作都是创建标准的数据格式。为此你要作出以下决定:
&&&
确定数据:
因为没有标准的XML格式,开发者可以自由地开发自己的格式。然而,如果你的格式只能被一个应用程序识别,那么你只能运行这个程序来使用该格式。如果还有其他程序也能读懂你的XML格式,那显然会更有帮助。如果某个XML格式被修
改,则使用它的系统可能也需要被修改,所以你应该建立尽可能完整的格式。因为大多数系统忽略它们无法识别的标签,所以改变一个XML格式的最安全的方法是添加标签,而不是修改标签。
单击此处查看XML数据格式实例
在Sparks.com,我们查看了不同的产品展示需要的所有产品数据。尽管并不是所有的页面都使用全部数据,但我们还是由此开发出适用于所有数据的非常完整的XML数据格式。例如,我们的产品明细信息页面显示的数据要比产品浏览页面多。然而,我们在这两种情况下仍然使用相同的数据格式,因为每个页面的XSL模板都只使用它所需要的字段。
是否使用DTD
在Sparks.com,我们使用组织良好的XML,而不使用仅仅是正确的XML,因为前者不需要DTD。DTD在用户点击和看到页面之间加入了一个处理层。我们发现这一层需要太多的处理。当然,在以XML格式与其他公司通信时,使用DTD还是很不错的。因为DTD能在发送和接受时能保证数据结构正确。
选择解析引擎
现在,可以使用的解析引擎有好几个。选择哪一个几乎完全取决于你的应用需要。如果你决定使用DTD,那么这个解析引擎必须能使你的XML被DTD验证。你可以将验证另放到一个进程中,但那样会影响性能。
SAX和DOM是两个基本的解析模型。SAX基于事件,所以在XML被解析时,事件被发送给引擎。接下来,事件与输出文件同步。DOM解析引擎为动态XML数据和XSL样式表建立层次树状结构。通过随机访问DOM树,可以提供XML数据,就象由XSL样式表来决定一样。SAX模型上的争论主要集中于对DOM结构的内存降低过度和加快XSL样式表解析时间缩短方面。
然而,我们发现使用SAX的很多系统并没有充分发挥它的能力。这些系统用它来建立DOM结构并通过DOM结构来发送事件。用这种方法,在任何XML处理之前必须从样式表中建立DOM,所以性能会下降。
二、生成动态XML
一旦建立了XML格式,我们需要一种能够将其从数据库中动态移植的方法。
生成XML文档相对来说比较简单,因为它只需要一个可以处理字符串的系统。我们建立了一个使用Java Servlet、Enterprise JavaBean server、JDBC和RDBMS(关系型数据库管理系统)的系统。
&&&&
(有关XSL应用的其他信息,请参阅用XSL作为模板语言。)
生成XML的例子
在Java中创建XML文档字符串的真正代码可以分成几个方法和类。
启动XML生成过程的代码放在EJB方法里。这一实例会立即创建一个StringBuffer,以便存储生成的XML字符串。
StringBuffer xml = new StringBuffer();
xml.append(XmlUtils.beginDocument("/browse_find/browse.xsl", "browse", request));
xml.append(product.toXml());
xml.append(XmlUtils.endDocument("browse");
out.print(xml.toString());
后面的三个xml.append()变元本身就是对其他方法的调用。
产生文件头
第一个附加方法调用XmlUtils类来产生XML文件头。我们的Java Servlet中的代码如下:
public static String beginDocument(String stylesheet, String page)
{
StringBuffer xml = new StringBuffer();
xml.append(" ")
.append(".append(stylesheet).append(""")
.append(" type ="text/xsl"?> ");
xml.append("<").append(page).append("> ");
return xml.toString();
}
这段代码生成了XML文件头。标签把本文件定义为支持1.0版本的XML文件。第二行代码指向用以显示数据的正确样式表的位置。最后包括进去的是项级标签(本实例中为
)。在文件末尾,只有标签需要被关闭。
填入产品信息
完成了文件头后,控制方法会调用Java对象来产生它的XML。本例中调用的是product对象。product对象使用两个方法来产生它的XML表示。第一个方法toXML()通过产生和 标签来建立product节点。然后它会调用internalXML(),这样就能提供产品XML所需的内容。internalXML()是一系列的StringBuffer.append()调用。StringBuffer也被转换成字符串并返回给控制方法。
public String toXml()
{
StringBuffer xml = new StringBuffer(" ");
xml.append(internalXml());
xml.append(" ");
return xml.toString();
}
public String internalXml()
{
StringBuffer xml = new
StringBuffer(" ")
.append(productType).append(" ");
xml.append(" ").append(idValue.trim())
.append(" ");
xml.append(" ").append(idName.trim())
.append(" ");
xml.append(" ").append(page.trim())
.append(" ");
��?
xml.append(" ").append(amount).append(" ");
xml.append(" ").append(vendor).append(" ");
xml.append(" ");
xml.append(" ").append(pubDesc).append(" ");
xml.append(" ").append(venDesc).append(" ";
��?
return xml.toString();
}
关闭文件
最后,XMLUtils.endDocument()方法被调用。这个调用关闭XML标签(本例中为),并最终完成架构好的XML文件。来自控制方法的整个StringBuffer也转换成字符串,并返回给处理最初HTTP请求的servlet。
三、用XSL作为模板语言
为了得到HTML输出,我们把生成的XML文件和控制XML数据如何表示的XSL模板相结合。我们的XSL模板由精心组织的XSL和HTML标签组成。
开始建模板
我们的XSL模板开始部分与下面这段代码类似。第一行代码为必需代码,将本文件定义为XSL样式表。xmlns:xsl=属性引用本文件所使用的XML名称空间,而version=属性则定义名称空间的版本号。在文件的末尾,我们关闭标签。
由开始的第二行代码确定了XSL模板的模式。Match属性是必需的,在这里指向XML标签。在我们的系统里,标签里包含 标签,这使得XSL模板可以访问嵌在标签内的产品信息。我们又一次必须在文件末尾关闭标签。
接下来,我们来看一看组织良好的HTML。由于它将被XML解析引擎处理,所以必须符合组织良好的XML的所有规则。从本质上来讲,这意味着所有的开始标签必须有对应的结束标签。例如,通常不被结束的标签,必须用
关闭。
version="1.0">
Shopping Bag / Adjust Quantity
for-each 循环在程序遇到标签时开始。这个循环将在程序遇到标签时结束。一旦这个循环运行,每次标签出现时都会应用这个模板。
四、生成HTML
将来的某一时刻,浏览器将会集成XML解析引擎。到那时,你可以直接向浏览器发送XML和XSL文件,而浏览器则根据样式表中列出的规则显示XML数据。不过,在此之前开发者们将不得不在他们服务器端的系统里创建解析功能。
在Sparks.com,我们已经在Java servlet里集成了一个XML解析器。这个解析器使用一种称为XSLT (XSL Transformation)的机制,按XSL标签的说明向XSL模板中添加XML数据。
当我们的Java servlet处理HTTP请求时,servlet检索动态生成的XML,然后XML被传给解析引擎。根据XML文件中的指令,解析引擎查找适当的XSL样式表。解析器通过DOM结构创建HTML文件,然后这个文件再传送给发出HTTP请求的用户。
如果你选择使用SAX模型,解析器会通读XML源程序,为每个XML标签创建一个事件。事件与XML数据对应,并最终按XSL标签向样式表中插入数据。
你可能感兴趣的:(JSP+XML构架网站的实例)
Retrofit使用详解
烈焰晴天
Android
综述retrofit是由square公司开发的。square在github上发布了很多优秀的Android开源项目。例如:otto(事件总线),leakcanary(排查内存泄露),android-times-square(日历控件),dagger(依赖注入),picasso(异步加载图片),okhttp(网络请求),retrofit(网络请求)等等。更
android发送自定义广播
Android洋芋
android
简介在Android中,自定义广播(CustomBroadcasts)主要用于应用程序内部或不同应用程序之间的通信。它们是Android四大组件之一——BroadcastReceiver——的主要功能之一。自定义广播在以下场景中尤其有用:组件间通信:应用程序的不同部分(如不同的Activity、Service或BroadcastReceiver)之间可以使用自定义广播来传递信息。例如,当一个Act
VideoView视频组件
Android洋芋
Android控件 音视频
简介VideoView在Android中是一个用户界面组件,它允许开发者在Android设备的屏幕上播放视频文件。它是AndroidSDK的一部分,位于android.widget包中。VideoView提供了一种简单的方法来嵌入和控制视频播放,包括设置视频源、开始、暂停、seek(跳转到视频的特定位置)以及显示视频的控件等基本功能。开发人员可以轻松地将VideoView添加到布局文件中,并通过J
JavaScript基础-API 和 Web API
難釋懷
前端 javascript 开发语言
在现代Web开发中,API(应用程序接口)是连接不同软件组件或系统之间的桥梁。对于前端开发者来说,JavaScript与WebAPI的结合使用尤为重要,它使得我们可以访问浏览器提供的各种功能和服务,从而构建出交互性更强、用户体验更好的网页应用。本文将介绍API的基本概念,重点探讨WebAPI及其在JavaScript中的应用。一、什么是API?API全称为“ApplicationProgrammi
HBase安装
lianhedaxue
Hadoop hbase
HBase安装本章将介绍如何安装HBase和初始配置。需要用Java和Hadoop来处理HBase,所以必须下载java和Hadoop并安装系统中。安装前设置安装Hadoop在Linux环境下之前,需要建立和使用LinuxSSH(安全Shell)。按照下面设立Linux环境提供的步骤。创建一个用户首先,建议从Unix创建一个单独的Hadoop用户,文件系统隔离Hadoop文件系统。按照下面给出创建
鸿蒙开发:自定义一个Toast
egzosn
前言代码案例基于Api13。系统的toast已经可以满足大部分的场景了,而且使用起来也是十分的简单,可以修改很多的可配置属性,简单的使用代码如下:登录后复制promptAction.showToast({message:"toast提示"})1.但是偏偏有一点实现不了,那就是圆角度数的设置,还有就是和icon结合使用的场景也无法满足,为了更好的适配UI的设计图,那么自定义一个Toast是在所难免的
微软 LIDA 库:基于大模型的自动化数据分析与可视化
窝窝和牛牛
microsoft 数据分析
微软LIDA库:基于大模型的自动化数据分析与可视化一、核心架构与LLM交互流程调用LLM生成数据摘要基于LLM推理分析目标LLM生成可视化代码结合图像生成模型优化原始数据Summarizer模块结构化摘要GoalExplorer模块可视化目标列表VizGenerator模块可执行图表代码Infographer模块风格化信息图表二、LLM交互核心功能1.多模型支持架构兼容主流LLM服务商:通过统一接
微服务架构中的服务发现与负载均衡
egzosn
架构 微服务 服务发现 负载均衡 云原生
1.引言在微服务架构中,服务发现(ServiceDiscovery)和负载均衡(LoadBalancing)是两个核心组件,它们确保了服务之间的高效通信和资源的合理分配。本文将深入探讨服务发现和负载均衡的基本概念、实现方式以及在实际应用中的最佳实践。2.服务发现2.1什么是服务发现?服务发现是微服务架构中的一个关键机制,它允许服务动态地找到并与其他服务通信。由于微服务通常运行在动态环境中,服务的实
【LetMeFly】牛客-美团暑期2025-20250322-前两题和第三题的思路
Tisfy
题解 # 牛客NowCoder 题解 牛客 美团 笔试 字符串 回文 暴力
【LetMeFly】牛客-美团暑期2025-20250322-前两题和第三题的思路第三题刚开始想复杂了,后面想到了个思路但是没来得及实现。一:对称回文串标签:回文串题目描述判断一个字符串有多少个长度大于1的对称回文子串。一个字符串为对称回文串当且仅当:该字符串为回文串该字符串只由字母AHIMOTUVWXY组成数据范围:字符串长度不超过100100100解题思路O(n2)O(n^2)O(n2)枚举每
关于Go那些懒得看又不得不知道的东西
Hock2024
golang 开发语言 后端
写在前面当开始学习go,亦或是cpp、还是java向go进行转职,这部分内容都是比较重要的。go的编译环境,模块管理以及一些基本的语法我认为还是很有必要去学习的,因此重新学习了这个部分并且写下下面的学习笔记!如果有写错或者不全面的地方,还希望大家及时纠正和指导。连接环境首先,作为一个后端er,能使用linux系统是必备的技能,这里我建议可以使用Xshell连接云服务器的方案来完成。云服务器建议使用
C++中map和set的详解
程序员Hagei
c++ 算法 开发语言
C++中map和set的介绍与使用在C++编程中,map和set是标准模板库(STL)中两种非常重要的关联容器。它们基于平衡二叉搜索树(通常是红黑树)的数据结构来实现,提供了高效的数据存储和检索功能。本文将详细介绍map和set的特点、用法以及一些常见的操作示例。一、map的介绍与使用1.map的基本概念map是一个键值对容器,其中每个键都是唯一的,且按照升序排序。map的内部结构是红黑树,这使得
堆数据结构:从基础原理到高效算法实现的技术探讨
Everyrt
课程设计
摘要堆作为一种特殊的树形数据结构,在多种算法场景中发挥着核心作用。本文深入剖析堆的基础原理,详细阐述堆的构建、插入、删除等操作的实现细节,并探讨其在优先队列、堆排序等高效算法中的应用,助力读者全面掌握堆数据结构及其应用技术。一、引言堆数据结构以其独特的特性,能够高效地获取集合中的最大(或最小)元素。无论是操作系统中的进程调度,还是搜索算法中的最优解筛选,堆都扮演着不可或缺的角色。理解堆的原理与实现
CST Microwave Studio助力射频电路多物理场耦合分析
FindEveryone
课程设计
摘要本文重点阐述CSTMicrowaveStudio在射频电路多物理场耦合分析中的关键作用。通过解析射频电路中涉及的电磁场、热场、机械场等多物理场耦合现象,详细介绍如何运用CSTMicrowaveStudio构建多物理场联合模型,进行全面的仿真分析。结合具体案例,深入探讨多物理场耦合对射频电路性能的影响,并依据仿真结果提出有效的优化策略,为提升射频电路在复杂工作环境下的可靠性和稳定性提供理论依据与
4(四) Jmeter自动化报表html生成
夜晚打字声
工具 jmeter 自动化 运维
从JMeter3.0开始已支持自动生成动态报告,我们可以更容易根据生成的报告来完成我们的性能测试报告。如何生成html测试报告如果未生成结果文件(.jtl),可运行如下命令生成报告:jmeter-n-ttest.jmx-lresult.jtl-e-o/tmp/ResultReport参数:-n:以非GUI形式运行Jmeter-t:source.jmx脚本路径-l:运行结果保存路径(.jtl),此文
HBase的架构介绍,安装及简单操作
pk_xz123456
大数据 hbase 架构 数据库
一、HBase安装1.环境准备Java环境:确保系统中已经安装了Java8或更高版本。可以通过在命令行中输入java-version来检查Java版本。Hadoop环境:HBase依赖于Hadoop,需要先安装并配置好Hadoop集群。确保Hadoop的相关服务(如HDFS、YARN等)已经正常启动。2.下载HBase从HBase官方网站(https://hbase.apache.org/)下载适
Nginx负载均衡策略详解:从轮询到智能分发,打造高可用服务架构
egzosn
nginx 负载均衡 架构 运维
Nginx负载均衡策略详解:从轮询到智能分发,打造高可用服务架构一、负载均衡的核心价值当单台服务器无法承载高并发流量时,负载均衡通过将请求分发到多台服务器,实现:横向扩展:突破单机性能瓶颈故障隔离:自动剔除异常节点动态调度:根据策略优化资源利用率二、Nginx原生负载均衡策略1.轮询(RoundRobin)配置示例:upstreambackend{server192.168.1.10:8080;s
蓝桥大使【算法赛】----贪心算法
wyshh119
算法 学习 贪心算法
这里比较的难点在于sort排序的根据是什么,为什么是两人的报酬差,我的理解是当两人报酬差越大,那么总报酬的损失就越大,其实是缺少具体的证明的,但是通过就说明确实是这样。也就不深究证明了。#include#includeusingnamespacestd;longlongans=0;constintN=100005;structnode{//结构体inta;intb;};nodea[N];intma
Vue相关面试题
努力的搬砖人.
vue.js
以下是150道Vue相关面试题及详细答案:Vue基础1.Vue.js是什么?Vue.js是一个用于构建用户界面的渐进式JavaScript框架,专注于视图层,允许开发者以声明式的方式构建用户界面,具有轻量、高效、易上手等特点。2.Vue实例的作用是什么?Vue实例是应用程序的核心,它管理数据、方法、生命周期钩子等,通过数据双向绑定将数据与视图层连接起来,实现数据驱动视图。3.如何创建一个Vue实例
openwrt路由器禁止某台设备上网操作失败问题解决
无级程序员
智能路由 openwrt rax3000m 智能路由
家有一台移动RAX3000M,改造成了多功能服务器,同时,还能限制小孩上网,但时间长了就发现移除可添加限制上网设备时无法操作。到处搜索也没找到它是怎么限制的,于是用mac地址在/etc目录下搜索,搜索命令:grep-r"62:19"/etc上面的“62:19”是被限制了上网的一个设备mac地址中的一部分。终于发现了是配置在/etc/config/security里面,内容如下:configfire
Linux下文件名中文乱码导致无法访问的问题解决方法
无级程序员
linux 文件名 乱码
一个基于openwrt路由器做文件服务器,硬盘里面有些文件的中文名乱码了,导致无法打开,也无法复制,想改名也无法操作,怎么办呢,网上搜了一大圈,都是说如何转换乱码,但文件都无法访问了,怎么转换?比如其中一个文件名是:“IVItripsummaryV1.0❁´◡`❁.xlsx",我试着如下命令发现能唯一的找到它:ls"IVItripsummaryV1.0"*于是,试着改名:mv"IVItripsum
【概念】Node.js,Express.js MongoDB Mongoose Express-Validator Async Handler
一袋米扛几楼98
各类概念 node.js express javascript
1.Node.js定义:Node.js是一个基于ChromeV8引擎的JavaScript运行时环境,允许你在服务器端运行JavaScript代码。作用:它使得开发者可以使用JavaScript编写服务器端代码,从而实现前后端使用同一种语言。比喻:Node.js就像是“工厂的电力系统”,它为整个工厂(应用程序)提供动力(运行环境)。没有电力系统,工厂的机器(代码)就无法运转。特点:非阻塞I/O:N
linux渲染农场大连教程,Deadline 渲染农场搭建记录
温柔彭于晏
linux渲染农场大连教程
渲染农场的工作模式:多台机器组建集群进行渲染,比如:集群中有2台渲染机器A和B,服务器会同时分配给A和B任务,A渲染第一帧,B渲染第二帧,当A完成那么服务器会继续分配第三帧,同样B服务器完成以后服务器分配第四帧,以此类推。渲染农场分服务端和节点,服务器端也可以加入集群中当做节点,当然节点也可以提交渲染任务建议:服务器端单独安装,主要插件及自定义修改内容可单独存放,当多节点接入或大批量渲染任务上传时
文本转语音常用的几个python库
天蓝海乡
python 开发语言 人工智能 nlp 语音识别
在Python编程领域,文本到语音(Text-to-Speech,TTS)的转换是一个常见的需求,尤其是在开发能够与用户交互的应用程序时。以下是几个流行的Python库,它们可以帮助开发者实现文本到语音的转换,并且有的可以将转换后的语音保存为MP3文件。gTTS(GoogleText-to-Speech)gTTS是一个依赖于Google的文本转语音API的Python库。它能够将文本转换为自然听起
网络管理 Introducing Meraki – Your Complete Network Management S
AI天才研究院
Python实战 自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
作者:禅与计算机程序设计艺术1.简介Meraki网络管理平台是一款专为企业级网络管理员设计的网络安全解决方案。它帮助用户轻松管理和监控其组织中的所有网络设备、VLANs及其设置。Meraki网络管理平台包括许多内置功能,如集中管理,安全,可视化分析等。此外,Meraki还提供强大的RESTAPI接口,开发者可以利用这些API来定制属于自己的应用。通过将现有工具、流程和工具合成为一体的网络管理解决方
P2P下载器项目
我的sun&shine
项目
1.项目介绍该项目完成一个在局域网中进行附近文件共享下载功能的工具;能够进行搜索匹配局域网中运行工具的主机;获取到局域网在线主机列表;能够获取指定主机所共享的文件信息列表(指定的共享目录下的文件信息);能够对指定主机上的指定文件进行多进程分块下载来提高传输效率。2.项目使用的技术Socket套接字编程(了解最基本线程池版本任务处理的tcp服务端程序)HTTP协议格式(了解最基本的http服务器中数
CAD二次开发踩过的坑
我的sun&shine
CAD二次开发 c++
CAD二次开发踩过的坑CAD二次开发踩过的坑一、3D图形编译不过二、智能指针三、多文档操作规范流程四、CAD系统变量(参数)大全五、细节注意CAD图纸在软件中出现许多连接线线怎么关闭C++try无法展开无调试信息:重新生成变量已被优化掉,因而不可用两个列表中选中第一个再选第二个时第一个的选中见了预览时无法找到k3DDrawing无法缩放:静态框的通知打开intersectWith无法求交点对话框老
CAD二次开发之图纸特性字段AcDbDatabaseSummaryInfo
我的sun&shine
CAD二次开发 开发语言 c++
一、CAD接口类AcDbDatabaseSummaryInfo接口函数acdbGetSummaryInfo(pDb,pSum);addCustomSummaryInfo(key,value);acdbPutSummaryInfo(pSum);二、使用方法1.实现功能:在一张图纸中定义好字段,插入到另外一张图中,对应的字段会更新值。原图纸需要将对应位置写入字段的表达式例如%%%%%%%%新图纸在创建
CAD开发经验总结
我的sun&shine
CAD二次开发 c++
作为一个拥有三年CAD二次开发经验的C++程序员,今天将积累的经验总结整理了一下,希望对二次开发人员有帮助,一个word文档,放到下载里面了,挣点积分,文档目录截个图
算法设计与分析4(变治法)
songx_99
算法设计与分析 算法
变治法将问题转化为一个或数个有一定关联当形式上不同的更加简单或更加好解决的子问题。变治法的应用:预排序思想用预排序可以简化许多问题,如检查元素唯一性,检查出现次数最多的元素等堆算法堆的定义首先它是一个完全二叉树,完全二叉树表明树的每一层都是满的,只有最后一层最右边的元素有可能缺位。且父结点的值大于它的两个子节点,则称是一个大根堆,若值小于两个子节点,称小根堆堆化有向下调整,向上调整两种,大致思路相
Spring Boot详解
这河里吗l
SpringBoot spring boot 后端 java spring
目录1.SpringBoot介绍1.1什么是SpringBoot1.2SpringBoot特点1.3Javaweb、spring、springmvc和springboot有什么区别?1.4SpringBoot的Starter2.SpringBoot入门HelloWorld3.SpringBoot的全局配置文件3.1properties配置文件3.2yml配置文件3.3yml与properties的
apache ftpserver-CentOS config
gengzg
apache
<server xmlns="http://mina.apache.org/ftpserver/spring/v1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://mina.apache.o
优化MySQL数据库性能的八种方法
AILIKES
sql mysql
1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的 性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很
JeeSite 企业信息化快速开发平台
Kai_Ge
JeeSite
JeeSite 企业信息化快速开发平台
平台简介
JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台。
JeeSite本身是以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流
通过Spring Mail Api发送邮件
120153216
邮件 main
原文地址:http://www.open-open.com/lib/view/open1346857871615.html
使用Java Mail API来发送邮件也很容易实现,但是最近公司一个同事封装的邮件API实在让我无法接受,于是便打算改用Spring Mail API来发送邮件,顺便记录下这篇文章。 【Spring Mail API】
Spring Mail API都在org.spri
Pysvn 程序员使用指南
2002wmj
SVN
源文件:http://ju.outofmemory.cn/entry/35762
这是一篇关于pysvn模块的指南.
完整和详细的API请参考 http://pysvn.tigris.org/docs/pysvn_prog_ref.html.
pysvn是操作Subversion版本控制的Python接口模块. 这个API接口可以管理一个工作副本, 查询档案库, 和同步两个.
该
在SQLSERVER中查找被阻塞和正在被阻塞的SQL
357029540
SQL Server
SELECT R.session_id AS BlockedSessionID ,
S.session_id AS BlockingSessionID ,
Q1.text AS Block
Intent 常用的用法备忘
7454103
.net android Google Blog F#
Intent
应该算是Android中特有的东西。你可以在Intent中指定程序 要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料 。都指定好后,只要调用startActivity(),Android系统 会自动寻找最符合你指定要求的应用 程序,并执行该程序。
下面列出几种Intent 的用法
显示网页:
Spring定时器时间配置
adminjun
spring 时间配置 定时器
红圈中的值由6个数字组成,中间用空格分隔。第一个数字表示定时任务执行时间的秒,第二个数字表示分钟,第三个数字表示小时,后面三个数字表示日,月,年,< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
测试的时候,由于是每天定时执行,所以后面三个数
POJ 2421 Constructing Roads 最小生成树
aijuans
最小生成树
来源:http://poj.org/problem?id=2421
题意:还是给你n个点,然后求最小生成树。特殊之处在于有一些点之间已经连上了边。
思路:对于已经有边的点,特殊标记一下,加边的时候把这些边的权值赋值为0即可。这样就可以既保证这些边一定存在,又保证了所求的结果正确。
代码:
#include <iostream>
#include <cstdio>
重构笔记——提取方法(Extract Method)
ayaoxinchao
java 重构 提炼函数 局部变量 提取方法
提取方法(Extract Method)是最常用的重构手法之一。当看到一个方法过长或者方法很难让人理解其意图的时候,这时候就可以用提取方法这种重构手法。
下面是我学习这个重构手法的笔记:
提取方法看起来好像仅仅是将被提取方法中的一段代码,放到目标方法中。其实,当方法足够复杂的时候,提取方法也会变得复杂。当然,如果提取方法这种重构手法无法进行时,就可能需要选择其他
为UILabel添加点击事件
bewithme
UILabel
默认情况下UILabel是不支持点击事件的,网上查了查居然没有一个是完整的答案,现在我提供一个完整的代码。
UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(60, 0, listV.frame.size.width - 60, listV.frame.size.height)]
NoSQL数据库之Redis数据库管理(PHP-REDIS实例)
bijian1013
redis 数据库 NoSQL
一.redis.php
<?php
//实例化
$redis = new Redis();
//连接服务器
$redis->connect("localhost");
//授权
$redis->auth("lamplijie");
//相关操
SecureCRT使用备注
bingyingao
secureCRT 每页 行数
SecureCRT日志和卷屏行数设置
一、使用securecrt时,设置自动日志记录功能。
1、在C:\Program Files\SecureCRT\下新建一个文件夹(也就是你的CRT可执行文件的路径),命名为Logs;
2、点击Options -> Global Options -> Default Session -> Edite Default Sett
【Scala九】Scala核心三:泛型
bit1129
scala
泛型类
package spark.examples.scala.generics
class GenericClass[K, V](val k: K, val v: V) {
def print() {
println(k + "," + v)
}
}
object GenericClass {
def main(args: Arr
素数与音乐
bookjovi
素数 数学 haskell
由于一直在看haskell,不可避免的接触到了很多数学知识,其中数论最多,如素数,斐波那契数列等,很多在学生时代无法理解的数学现在似乎也能领悟到那么一点。
闲暇之余,从图书馆找了<<The music of primes>>和<<世界数学通史>>读了几遍。其中素数的音乐这本书与软件界熟知的&l
Java-Collections Framework学习与总结-IdentityHashMap
BrokenDreams
Collections
这篇总结一下java.util.IdentityHashMap。从类名上可以猜到,这个类本质应该还是一个散列表,只是前面有Identity修饰,是一种特殊的HashMap。
简单的说,IdentityHashMap和HashM
读《研磨设计模式》-代码笔记-享元模式-Flyweight
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java
PS人像润饰&调色教程集锦
cherishLC
PS
1、仿制图章沿轮廓润饰——柔化图像,凸显轮廓
http://www.howzhi.com/course/retouching/
新建一个透明图层,使用仿制图章不断Alt+鼠标左键选点,设置透明度为21%,大小为修饰区域的1/3左右(比如胳膊宽度的1/3),再沿纹理方向(比如胳膊方向)进行修饰。
所有修饰完成后,对该润饰图层添加噪声,噪声大小应该和
更新多个字段的UPDATE语句
crabdave
update
更新多个字段的UPDATE语句
update tableA a
set (a.v1, a.v2, a.v3, a.v4) = --使用括号确定更新的字段范围
hive实例讲解实现in和not in子句
daizj
hive not in in
本文转自:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2842855.html
当前hive不支持 in或not in 中包含查询子句的语法,所以只能通过left join实现。
假设有一个登陆表login(当天登陆记录,只有一个uid),和一个用户注册表regusers(当天注册用户,字段只有一个uid),这两个表都包含
一道24点的10+种非人类解法(2,3,10,10)
dsjt
算法
这是人类算24点的方法?!!!
事件缘由:今天晚上突然看到一条24点状态,当时惊为天人,这NM叫人啊?以下是那条状态
朱明西 : 24点,算2 3 10 10,我LX炮狗等面对四张牌痛不欲生,结果跑跑同学扫了一眼说,算出来了,2的10次方减10的3次方。。我草这是人类的算24点啊。。
然后么。。。我就在深夜很得瑟的问室友求室友算
刚出完题,文哥的暴走之旅开始了
5秒后
关于YII的菜单插件 CMenu和面包末breadcrumbs路径管理插件的一些使用问题
dcj3sjt126com
yii framework
在使用 YIi的路径管理工具时,发现了一个问题。 <?php  
对象与关系之间的矛盾:“阻抗失配”效应[转]
come_for_dream
对象
概述
“阻抗失配”这一词组通常用来描述面向对象应用向传统的关系数据库(RDBMS)存放数据时所遇到的数据表述不一致问题。C++程序员已经被这个问题困扰了好多年,而现在的Java程序员和其它面向对象开发人员也对这个问题深感头痛。
“阻抗失配”产生的原因是因为对象模型与关系模型之间缺乏固有的亲合力。“阻抗失配”所带来的问题包括:类的层次关系必须绑定为关系模式(将对象
学习编程那点事
gcq511120594
编程 互联网
一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧!
接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去
Reverse Linked List II
hcx2013
list
Reverse a linked list from position m to n. Do it in-place and in one-pass.
For example:Given 1->2->3->4->5->NULL, m = 2 and n = 4,
return 
Spring4.1新特性——页面自动化测试框架Spring MVC Test HtmlUnit简介
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
Hadoop集群工具distcp
liyonghui160com
1. 环境描述
两个集群:rock 和 stone
rock无kerberos权限认证,stone有要求认证。
1. 从rock复制到stone,采用hdfs
Hadoop distcp -i hdfs://rock-nn:8020/user/cxz/input hdfs://stone-nn:8020/user/cxz/运行在rock端,即源端问题:报版本
一个备份MySQL数据库的简单Shell脚本
pda158
mysql 脚本
主脚本(用于备份mysql数据库): 该Shell脚本可以自动备份
数据库。只要复制粘贴本脚本到文本编辑器中,输入数据库用户名、密码以及数据库名即可。我备份数据库使用的是mysqlump 命令。后面会对每行脚本命令进行说明。
1. 分别建立目录“backup”和“oldbackup” #mkdir /backup #mkdir /oldbackup
300个涵盖IT各方面的免费资源(中)——设计与编码篇
shoothao
IT资源 图标库 图片库 色彩板 字体
A. 免费的设计资源
Freebbble:来自于Dribbble的免费的高质量作品。
Dribbble:Dribbble上“免费”的搜索结果——这是巨大的宝藏。
Graphic Burger:每个像素点都做得很细的绝佳的设计资源。
Pixel Buddha:免费和优质资源的专业社区。
Premium Pixels:为那些有创意的人提供免费的素材。
thrift总结 - 跨语言服务开发
uule
thrift
官网
官网JAVA例子
thrift入门介绍
IBM-Apache Thrift - 可伸缩的跨语言服务开发框架
Thrift入门及Java实例演示
thrift的使用介绍
RPC
POM:
<dependency>
<groupId>org.apache.thrift</groupId>