阅读更多
本文阐述如何利用 HTMLParser 项目对 HTML 或者 WML 文档中出现的一些特殊的或者是自定义的标签进行处理。
HTMLParser 是一个用来解析 HTML 文档的开放源码项目,它具有小巧、快速、使用简单的特点以及拥有强大的功能。对该项目还不了解的朋友可以参照 2004 年三月份我发表的文章--《从HTML中攫取你所需的信息》,这篇文章介绍如何通过 HTMLParser 来提取 HTML 文档中的文本数据以及提取出文档中的所有链接或者是图片等信息。
现在该项目的最新版本是 Integration Build 1.6,与之前版本的差别在于代码结构的调整、当然也有一些功能的提升以及 BugFix,同时对字符集的处理也更加自动了。比较遗憾的该项目并没有详尽的使用文档,你只能借助于它的 API 文档、一两个简单例子以及源码来熟悉它。
如果是 HTML 文档,那么用 HTMLParser 已经差不多可以满足你至少 90% 的需求。一个 HTML 文档中可能出现的标签差不多在 HTMLParser 中都有对应的类,甚至包括一些动态的脚本标签,例如 <%...%> 这种 JSP 和 ASP 用到的标签都有相应的 JspTag 对应。HTMLParser 的强大功能还体现在你可以修改每个标签的属性或者它所包含的文本内容并生成新的 HTML 文档,比如你可以文档中的链接地址偷偷的改成你自己的地址等等。关于 HTMLParser 的强大功能,其实上一篇文章已经介绍很多,这里不再累赘,我们今天要讲的是另外一个用途--处理自定义标签。
首先我们先解释一下什么叫自定义标签,我把所有不是 HTML 脚本语言中定义的标签称之为自定义标签,比如可以是 、 等等,这是我们自己创造出来的标签。你可能会很奇怪,因为这些标签一旦用在 HTML 文档中是没有任何效果的,那么我们换另外一个例子,假如你要解析的不是 HTML 文档,而是一个 WML(Wireless Markup Lauguage)文档呢?WML 文档中的 card,anchor 等标签 HTMLParser 是没有现成的标签类来处理的。还有就是你同样可以用 HTMLParser 来处理 XML 文档,而 XML 文档中所有的标签都是你自己定义的。
为了使我们的例子更具有代表意义,接下来我们将给出一段代码用来解析出 WML 文档中的所有链接,了解 WML 文档的人都知道,WML 文档中除了与 HTML 文档相同的链接写法外,还多了一种标签叫 ,例如在一个 WML 文档我们可以用下面两种方式来表示一个链接。
(更多的时候使用 anchor 的链接用来提交一个表单。) 如果我们还是使用 LinkTag 来遍历整个 WML 文档的话,那 Anchor 中的链接将会被我们所忽略掉。
下面我们先给出一个简单的例子,然后再叙述其中的道理。这个例子包含两个文件,一个是WML 的测试脚本文件 test.wml,另外一个是 Java 程序文件 HyperLinkTrace.java,内容如下:
test.wml 中的粗体部分是我们需要提取出来的链接。
上面这段代码比较长,可以分成下面几部分来看:
1. getWmlContent方法: 该方法用来获取在同一个包中的test.wml脚本文件的内容并返回字符串。
2. 静态属性lnkFilter:这是一个NodeFilter的匿名类所构造的实例。该实例用来传递给HTMLParser告知需要提取哪些节点。在这个例子中我们仅需要提取链接标签以及我们自定义的一个GO标签。
3. 嵌套类WmlGoTag:这也是最为重要的一部分,这个类用来告诉HTMLParser如何去解析这样一个节点。我们先看看下面这个HTMLParser的节点类层次图:
如上图所示,HTMLParser将一个文档分成三种节点分别是:Remark(注释);Text(文本);Tag(标签)。而标签又分成两种分别 是简单标签(Tag)和复合标签(CompositeTag),像 这种标签称为简单标签,因为标签不会再包 含其它内容。而像Home 这种类型的标签,因为标签会嵌套文本或者其他标签的称为复合标签,也就是对应着 CompositeTag这个类。简单标签的实现类很简单,只需要扩展Tag类并覆盖getIds方法以返回标签的识别文本,例如 标签应该返回包含"img"字符串的数组,具体的代码可以参考HTMLParser自带的ImageTag标签类的实现。
从上图可清楚看出,复合标签事实上是对简单标签的扩展,HTMLParser在处理一个复合标签时需要知道该标签的起始标识以及结束标识,也就是我 们在前面给出的源码中的两个方法getIds和getEnders,一般来讲,标签出现都是成对的,因此这两个方法一般返回相同的值。另外一个方法 getEndTagEnders,这个方法用来返回父一级的标签名称,例如
的父一级标签应该是。这个方法 的必要性在于HTML对格式的要求很不严格,在很多的HTML文档中的一些标签经常是有开始标识,但是没有结束标识,由于浏览器的超强适应能力使这种情况 出现的很频繁,因此HTMLParser利用这个方法来辅助判断一个标签是否已经结束。由于WML文档的格式要求非常严格,因此上例源码中的 getEndTagEnders方法事实上可有可无。
4. 入口方法main:该方法初始化HTMLParser并注册新的节点解析器,解析文档并打印运行结果。
最后我们编译并运行这个例子,便可以得到下面的运行结果:
GO: /wap/user.do
LINK: /wap/index.vm
HTMLParser本身就是一个开放源码的项目,它对于HTML文档中出现的标签定义已经应有尽有,我们尽可以参考这些标签解析类的源码来学习如何实现一个标签的解析类,从而扩展出更丰富多彩的应用程序。
HTMLParser http://htmlparser.sourceforge.net/
你可能感兴趣的:(WAP,Go,脚本,ASP.net,HTML)
Gson、Fastjson 和 Jackson 对比解析
小张0.0
JavaWeb json
目录1.Gson(Google)基本介绍:核心功能:特点:使用场景:2.Fastjson(Alibaba)基本介绍:核心功能:特点:使用场景:3.Jackson基本介绍:核心功能:特点:使用场景:4.对比总结5.选择建议Gson、Fastjson和Jackson这三种都是Java生态中广泛使用的JSON处理库,用于实现Java对象与JSON数据之间的相互转换。在项目中使用不同的方法即可调用不同的J
MacOS 安装k8s
MartinDai1993
macos kubernetes 容器
安装前准备确保本地已经安装并启动好了DockerDesktop拉取k8s镜像(如果本地网络好可以正常拉取到k8s官方镜像,可以跳过这一步)克隆git仓库到本地gitclonehttps://github.com/gotok8s/k8s-docker-desktop-for-mac.git进入项目目录,执行./load_images.sh等待所有镜像拉取完成部署k8s进入DockerDecktop的
RWMutex 注意事项
-睡到自然醒~
golang
RWMutex是单写多读锁,该锁可以加多个读锁或者一个写锁⚫读锁占用的情况下会阻止写,不会阻止读,多个Goroutine可以同时获取读锁⚫写锁会阻止其他Goroutine(无论读和写)进来,整个锁由该Goroutine独占⚫适用于读多写少的场景⚫RWMutex类型变量的零值是一个未锁定状态的互斥锁⚫RWMutex在首次被使用之后就不能再被拷贝⚫RWMutex的读锁或写锁在未锁定状态,解锁操作都会引
gRPC-Go基础(3)基础gRPC服务
-睡到自然醒~
golang qt 开发语言
文章目录1.服务定义1.1一元RPC1.2服务端流式RPC1.3客户端流式RPC1.4双向流式RPC2.生成GRPC代码3.构建逻辑代码3.1Server端3.2Client端3.3一元RPC3.4服务端流式RPC3.5客户端流式RPC3.6双向流式RPC1.服务定义前面说过,proto中定义消息结构体的关键字是message,同样,定义服务的关键字是service。serviceRoute{//
简化 Go 开发:使用强大的工具提高生产力
-睡到自然醒~
golang 开发语言 后端 qt 笔记 spring
作为Go开发人员,应该都知道维持简洁高效开发工作流程的重要性。为了提高工作效率和代码质量,简化开发流程并自动执行重复性任务至关重要。在本文中,我们将探讨一些强大的工具和技术,它们将简化Go开发过程,助力您的编码之旅。Cookiecutter:使用一致的模板快速启动项目问题描述从头开始创建新的Go项目通常涉及设置标准项目结构和配置基本文件。此过程可能非常耗时且容易出错。Cookiecutter通过允
关于Go语言的底层,Slice,map
-睡到自然醒~
golang 开发语言 后端 gin spring boot
1SliceSlice底层实现原理切片是基于数组实现的,它的底层是数组,它自己本身非常小,可以理解为对底层数组的抽象。因为基于数组实现,所以它的底层的内存是连续分配的,效率非常高,还可以通过索引获得数据,可以迭代以及垃圾回收优化。切片本身并不是动态数组或者数组指针。它内部实现的数据结构通过指针引用底层数组,设定相关属性将数据读写操作限定在指定的区域内。切片本身是一个只读对象,其工作机制类似数组指针
nodejs的npm
思静鱼
node.js npm 前端 node.js
1.什么是npm?npm(NodePackageManager)是Node.js的默认包管理工具,用于:安装和管理依赖(第三方库、框架等)。运行项目脚本(如启动服务、测试、构建等)。发布和共享代码(可将自己的模块发布到npm仓库)。2.为什么推荐用npmstart启动项目?在Node.js项目中,npmstart是标准的启动命令,以下是推荐原因:(1)标准化流程项目根目录的package.json
机器学习数据预处理阶段为什么需要——归一化处理
参考:https://www.cnblogs.com/bjwu/p/8977141.html通常,在DataScience中,预处理数据有一个很关键的步骤就是数据的标准化。这里主要引用sklearn文档中的一些东西来说明,主要把各个标准化方法的应用场景以及优缺点总结概括,以来充当笔记。提升模型精度在机器学习算法的目标函数(例如SVM的RBF内核或线性模型的l1和l2正则化),许多学习算法中目标函数
Python FastMCP:让你的AI工具链飞起来
PythonFastMCP:让你的AI工具链飞起来FastMCPFastMCP是什么?1.工具(Tools):赋予LLM执行能力2.Resources(资源):安全数据通道3.Prompts(提示模板):标准化LLM交互4.组件协同:构建项目AI工具链5.部署架构与性能优化博主热门文章推荐:官方文档:FastMCP官方文档:https://gofastmcp.com/MCP协议规范:https:/
Python 解析 PDF 文件的基础方法
电脑维修员xy
python pdf 前端
```htmlPython解析PDF文件的基础方法Python解析PDF文件的基础方法在现代数据处理和信息提取任务中,PDF文件是一种常见的文档格式。然而,PDF文件的结构复杂且难以直接解析,尤其是当需要从中提取文本或数据时。幸运的是,Python提供了多种强大的库来帮助我们轻松地解析PDF文件。1.PyPDF2库PyPDF2是一个功能强大的Python库,用于处理PDF文件。它可以读取、分割、合
Operators功能介绍
天高云淡_fa55
Operators(运算)1.()+(),计算两个数字相加的结果执行下面的脚本,小猫会说“7”2.()-(),计算两个数字相减的结果3.()*(),计算两个数字相乘的结果4.()/(),计算两个数字相除的结果*试一试,5/0看看能得到什么结果?5.pickrandom1to10,从1到10之间随机取一个数字,最小值是1,最大值是106.()(),判断左边的数字是否大于右边的数字9.()and(),
前端Vue自定义顶部搜索框 热门搜索 历史搜索 用于搜索跳转使用
前端组件分享
前端Vue自定义顶部搜索框热门搜索历史搜索用于搜索跳转使用,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13128效果图如下:####自定义顶部搜索框用于搜索跳转使用方法```使用方法```####HTML代码实现部分```htmlimportCCBProjectListfrom'../../components/CCPro
“重复”定义函数的睿智(Python/与ai助手“智普清言”深度交流)
梦幻精灵_cq
笔记 学习
镜像双胞谬重复,定制便捷巧活工。 笔记模板由python脚本于2025-07-1612:16:30创建,本篇笔记适合至少通晓一门语言,熟悉基本编程范式的coder翻阅。学习的细节是欢悦的历程 博客的核心价值:在于输出思考与经验,而不仅仅是知识的简单复述。Python官网: 这里,才python前沿。英文原版,原汁原味,才是寻根溯源的正统。地址:https://www.python.org/F
偶拾《退让》,一阙仿七律带出的文化思考(中文诗创作)
梦幻精灵_cq
笔记 学习
礼貌温言沐春风,谦让理解通彼此。 笔记模板由python脚本于2025-07-0111:29:03创建,本篇笔记适合喜欢中文仿古七言诗的coder翻阅。学习的细节是欢悦的历程 博客的核心价值:在于输出思考与经验,而不仅仅是知识的简单复述。Python官网: 这里,才python前沿。英文原版,原汁原味,才是寻根溯源的正统。地址:https://www.python.org/Free: 大咖
SmartETL中数据库操作与流程解耦的设计与应用
正如ETL这个概念本身所指示的,数据库读写访问是ETL的最常用甚至是最主要的操作。现代信息系统的设计与运行基本都是围绕数据库展开的,很多应用的核心功能都是对数据库的CRUD(创建、检索、更新、删除)操作。SmartETL框架设计之初就考虑到了这个情况,在早期就根据团队的技术栈,实现了对MongoDB、MySQL、ElasticSearch、ClickHouse等数据库的Extract操作(即Loa
python爬大学生就业信息报告_Python语言爬虫——Python 岗位分析报告
weixin_39578457
本文主要向大家介绍了Python语言爬虫——Python岗位分析报告,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。前两篇我们分别爬取了糗事百科和妹子图网站,学习了Requests,BeautifulSoup的基本使用。不过前两篇都是从静态HTML页面中来筛选出我们需要的信息。这一篇我们来学习下如何来获取Ajax请求返回的结果。本篇以拉勾网为例来说明一下如何获取Ajax请求内容
Apache Ignite控制脚本(control.sh/bat)完全指南
秋泉律Samson
ApacheIgnite控制脚本(control.sh/bat)完全指南概述ApacheIgnite的控制脚本(control.sh/bat)是管理Ignite集群的强大工具,它提供了丰富的命令行接口来监控和控制集群状态。本文将全面介绍这个工具的使用方法,帮助管理员高效管理Ignite集群。控制脚本基础控制脚本位于Ignite安装目录的/bin/文件夹下,根据操作系统不同分为:Unix/Linux
解决百度网盘上传请求中或上传慢的方法
百度网盘正常情况下是超快的,不应该是"上传请求中"或几k的速度。原因是因为DNS解释问题。尤其是海外用户。例如,使用DNS8.8.8.8PSC:\WINDOWS\system32>nslookupDefaultServer: dns.googleAddress: 8.8.8.8>server8.8.8.8DefaultServer: dns.googleAddress: 8.8.8.8>c.pcs
Linux 定时任务全解析:atd 与 crond 的区别及实战案例(含日志备份 + 时间写入)
睡觉的时候不会困
Linux linux 服务器 运维
1.atd和crond两个任务管理程序的区别atd:用于执行一次性的定时任务,即设置任务在某个特定的时间点仅执行一次,适合处理不需要重复执行的定时操作,比如在未来某个确切时间执行一个脚本、发送一份文件等场景。crond:用于执行周期性的定时任务,可按照设定的周期(如每分钟、每小时、每天、每周等)重复执行任务,常用来做系统监控、日志备份、定期数据清理或生成等周期性需求。对比项atdcrond任务执行
重学前端006 --- 响应式网页设计 CSS 弹性盒子
文章目录盒模型一、盒模型的基本概念二、两种盒模型的对比举例三、总结Flexbox弹性盒子布局一、Flexbox的核心概念二、Flexbox的基本语法1.定义Flex容器2.Flex容器的主要属性3.Flex项目的主要属性三、Flexbox的常见布局示例四、FlexboxvsGrid布局五、总结imgobject-fitgapCSS::after伪元素详解1.基本概念2.基础语法3.关键注意事项以下
Shell脚本编程:从入门到精通的实战指南
Monkey的自我迭代
Linux linux ssh
一、Shell与Shell脚本概述Shell是用户与操作系统内核之间的命令解释器,它接收用户输入的命令并转换为系统调用,是Unix/Linux系统的核心交互界面。Shell脚本(ShellScript)则是将一系列Shell命令组织成文本文件,通过解释器批量执行的自动化工具,广泛应用于系统管理、日志分析和软件部署等领域。主流Shell类型:Bash(Bourne-AgainShell):Linux
政务云,私有云,还有移动云的区别到底是什么?
1.政务云(GovernmentCloud)定位:面向政府机构(如委办局、事业单位)提供的专属云平台。核心特点:强合规性与安全性:必须符合国家信息安全等级保护(如等保三级)、数据本地化要求,并通过严格的安全审计(如《网络安全法》《数据安全法》)。独立资源池:物理或逻辑隔离的计算/存储资源,确保政府数据与其他行业数据分离。专属服务目录:提供适配政府业务的标准化服务(如电子政务、协同办公、数据共享交换
linux shell watchdog,使用shell编写的极简WatchDog
weixin_39743603
linux shell watchdog
WatchDog-看门狗程序用于自动监测进程的运行状态,并按照需要重启进程。对于嵌入式系统的存储服务、网络服务程序经常因为各种错误出现中断,可以使用WatchDog来自动保持服务的可用。WatchDog可以使用shell来进行编写,这里给出一个极简的实现。1、基本逻辑检查进程是否存在。如果进程不存在,则启动之。如果进程存在,则跳过,休眠给定时间。再次检查进程,重复上面的步骤。2、极简版本编写脚本,
推荐一个 免费高速图床imgos.cn
爱睡觉的猪猪
网络
imgos.cn图床推荐:重新定义高效图片托管体验在数字化内容创作中,图片管理的高效性直接影响创作体验。作为深耕行业多年的技术团队,我们推出的imgos.cn图床,以极致的稳定性、便捷性和功能性,成为内容创作的最佳拍档。以下从核心优势、场景适配、用户权益等维度展开解析,助您快速了解为何imgos.cn值得成为首选图床。一、核心优势:重新定义图片托管体验1.极速稳定,全球畅享CDN加速网络:采用分布
Here-Document的`<<` 与 `<<-` 与 `<<<` 多解说笔记250722
kfepiza
# Linux # 控制台命令行 Shell bash cmd 等 笔记 linux bash
Here-Document的poem.txt静夜思床前明月光疑是地上霜FORMATTED#2.空格敏感的配置catconfig.ymlindentation:level:4#必须4空格SPACE何时用tabs.txt重要制表符:→这里Tab会被保留但行首Tab会被移除TABS#2.空格缩进的环境#(如Python脚本)技术原理图解HereDocumentquery.sqlSELECT*FROM${
PHP continue与break区别
苏康申
Modelwhile($foo){<--------------------┐continue;---goesbackhere--┘break;-----jumpshere----┐}|<--------------------┘Example$i=10;while(--$i){if($i==8){continue;}if($i==5){break;}echo$i."\n";}输出976
全球企业生成式AI应用图谱:601个案例揭示11行业×6类智能体实践,全网最详细!
写在前面:本文为谷歌发布的《601real-worldgenAIusecasesfromtheworld’sleadingorganizations》原文链接为:https://cloud.google.com/transform/101-real-world-generative-ai-use-cases-from-industry-leaders?hl=en以下案例按照“汽车与物流、商业与专用
解决pip指令超时问题
好学近乎知o
pip python
用pip指令,在安装Django3.2时报错,询问ChatGpt后得到的解决方案pip下载超时——是当前网络连接到PyPI官方源太慢或不稳定,甚至可能连不上了,而pip默认的超时时间又太短,就导致了中途失败:ReadTimeoutError:HTTPSConnectionPool(host='files.pythonhosted.org',port=443):Readtimedout.解决方案:换
mysql 清理磁盘空间
汐猫
mysql 数据库
数据库相关学习资料:https://edu.51cto.com/video/655.htmlMySQL清理磁盘空间:代码示例与流程指南MySQL是一种广泛使用的开源关系数据库管理系统,它在处理大量数据时可能会占用大量的磁盘空间。随着时间的推移,数据库可能会积累许多不再需要的数据,导致磁盘空间不足。本文将介绍如何清理MySQL数据库中的磁盘空间,包括代码示例和流程图。清理磁盘空间的原因性能提升:清理
Go语言面试宝典:50道必会题目与精解_golang面试必问50个问题
2401_86436851
golang 面试 开发语言
1.指针与引用2.并发编程3.切片与数组4.接口5.垃圾回收6.错误处理7.包管理8.Map9.Defer语句10.类型断言11.并发同步12.接口实现13.错误跟踪14.并发性能15.内存管理16.编译和运行17.泛型18.网络编程19.测试20.代码组织21.Goroutine泄漏22.闭包23.指针与性能24.错误封装25.接口与空接口26.并发错误27.切片操作28.字符串处理29.环境变
ViewController添加button按钮解析。(翻译)
张亚雄
c
<div class="it610-blog-content-contain" style="font-size: 14px"></div>// ViewController.m
// Reservation software
//
// Created by 张亚雄 on 15/6/2.
mongoDB 简单的增删改查
开窍的石头
mongodb
在上一篇文章中我们已经讲了mongodb怎么安装和数据库/表的创建。在这里我们讲mongoDB的数据库操作
在mongo中对于不存在的表当你用db.表名 他会自动统计
下边用到的user是表明,db代表的是数据库
添加(insert):
log4j配置
0624chenhong
log4j
1) 新建java项目
2) 导入jar包,项目右击,properties—java build path—libraries—Add External jar,加入log4j.jar包。
3) 新建一个类com.hand.Log4jTest
package com.hand;
import org.apache.log4j.Logger;
public class
多点触摸(图片缩放为例)
不懂事的小屁孩
多点触摸
多点触摸的事件跟单点是大同小异的,上个图片缩放的代码,供大家参考一下
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener
有关浏览器窗口宽度高度几个值的解析
换个号韩国红果果
JavaScript html
1 元素的 offsetWidth 包括border padding content 整体的宽度。
clientWidth 只包括内容区 padding 不包括border。
clientLeft = offsetWidth -clientWidth 即这个元素border的值
offsetLeft 若无已定位的包裹元素
数据库产品巡礼:IBM DB2概览
蓝儿唯美
db2
IBM DB2是一个支持了NoSQL功能的关系数据库管理系统,其包含了对XML,图像存储和Java脚本对象表示(JSON)的支持。DB2可被各种类型的企 业使用,它提供了一个数据平台,同时支持事务和分析操作,通过提供持续的数据流来保持事务工作流和分析操作的高效性。 DB2支持的操作系统
DB2可应用于以下三个主要的平台:
工作站,DB2可在Linus、Unix、Windo
java笔记5
a-john
java
控制执行流程:
1,true和false
利用条件表达式的真或假来决定执行路径。例:(a==b)。它利用条件操作符“==”来判断a值是否等于b值,返回true或false。java不允许我们将一个数字作为布尔值使用,虽然这在C和C++里是允许的。如果想在布尔测试中使用一个非布尔值,那么首先必须用一个条件表达式将其转化成布尔值,例如if(a!=0)。
2,if-els
Web开发常用手册汇总
aijuans
PHP
一门技术,如果没有好的参考手册指导,很难普及大众。这其实就是为什么很多技术,非常好,却得不到普遍运用的原因。
正如我们学习一门技术,过程大概是这个样子:
①我们日常工作中,遇到了问题,困难。寻找解决方案,即寻找新的技术;
②为什么要学习这门技术?这门技术是不是很好的解决了我们遇到的难题,困惑。这个问题,非常重要,我们不是为了学习技术而学习技术,而是为了更好的处理我们遇到的问题,才需要学习新的
今天帮助人解决的一个sql问题
asialee
sql
今天有个人问了一个问题,如下:
type AD value
A  
意图对象传递数据
百合不是茶
android 意图Intent Bundle对象数据的传递
学习意图将数据传递给目标活动; 初学者需要好好研究的
1,将下面的代码添加到main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http:/
oracle查询锁表解锁语句
bijian1013
oracle object session kill
一.查询锁定的表
如下语句,都可以查询锁定的表
语句一:
select a.sid,
a.serial#,
p.spid,
c.object_name,
b.session_id,
b.oracle_username,
b.os_user_name
from v$process p, v$s
mac osx 10.10 下安装 mysql 5.6 二进制文件[tar.gz]
征客丶
mysql osx
场景:在 mac osx 10.10 下安装 mysql 5.6 的二进制文件。
环境:mac osx 10.10、mysql 5.6 的二进制文件
步骤:[所有目录请从根“/”目录开始取,以免层级弄错导致找不到目录]
1、下载 mysql 5.6 的二进制文件,下载目录下面称之为 mysql5.6SourceDir;
下载地址:http://dev.mysql.com/downl
分布式系统与框架
bit1129
分布式
RPC框架 Dubbo
什么是Dubbo
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 集群容错: 提供基于接
那些令人蛋痛的专业术语
白糖_
spring Web SSO IOC
spring
【控制反转(IOC)/依赖注入(DI)】:
由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
简单的说:对象的创建又容器(比如spring容器)来执行,程序里不直接new对象。
Web
【单点登录(SSO)】:SSO的定义是在多个应用系统中,用户
《给大忙人看的java8》摘抄
braveCS
java8
函数式接口:只包含一个抽象方法的接口
lambda表达式:是一段可以传递的代码
你最好将一个lambda表达式想象成一个函数,而不是一个对象,并记住它可以被转换为一个函数式接口。
事实上,函数式接口的转换是你在Java中使用lambda表达式能做的唯一一件事。
方法引用:又是要传递给其他代码的操作已经有实现的方法了,这时可以使
编程之美-计算字符串的相似度
bylijinnan
java 算法 编程之美
public class StringDistance {
/**
* 编程之美 计算字符串的相似度
* 我们定义一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为:
* 1.修改一个字符(如把“a”替换为“b”);
* 2.增加一个字符(如把“abdd”变为“aebdd”);
* 3.删除一个字符(如把“travelling”变为“trav
上传、下载压缩图片
chengxuyuancsdn
下载
/**
*
* @param uploadImage --本地路径(tomacat路径)
* @param serverDir --服务器路径
* @param imageType --文件或图片类型
* 此方法可以上传文件或图片.txt,.jpg,.gif等
*/
public void upload(String uploadImage,Str
bellman-ford(贝尔曼-福特)算法
comsci
算法 F#
Bellman-Ford算法(根据发明者 Richard Bellman 和 Lester Ford 命名)是求解单源最短路径问题的一种算法。单源点的最短路径问题是指:给定一个加权有向图G和源点s,对于图G中的任意一点v,求从s到v的最短路径。有时候这种算法也被称为 Moore-Bellman-Ford 算法,因为 Edward F. Moore zu 也为这个算法的发展做出了贡献。
与迪科
oracle ASM中ASM_POWER_LIMIT参数
daizj
ASM oracle ASM_POWER_LIMIT 磁盘平衡
ASM_POWER_LIMIT
该初始化参数用于指定ASM例程平衡磁盘所用的最大权值,其数值范围为0~11,默认值为1。该初始化参数是动态参数,可以使用ALTER SESSION或ALTER SYSTEM命令进行修改。示例如下:
SQL>ALTER SESSION SET Asm_power_limit=2;
高级排序:快速排序
dieslrae
快速排序
public void quickSort(int[] array){
this.quickSort(array, 0, array.length - 1);
}
public void quickSort(int[] array,int left,int right){
if(right - left <= 0
C语言学习六指针_何谓变量的地址 一个指针变量到底占几个字节
dcj3sjt126com
C语言
# include <stdio.h>
int main(void)
{
/*
1、一个变量的地址只用第一个字节表示
2、虽然他只使用了第一个字节表示,但是他本身指针变量类型就可以确定出他指向的指针变量占几个字节了
3、他都只存了第一个字节地址,为什么只需要存一个字节的地址,却占了4个字节,虽然只有一个字节,
但是这些字节比较多,所以编号就比较大,
phpize使用方法
dcj3sjt126com
PHP
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,下面介绍一个它的使用方法,需要的朋友可以参考下
安装(fastcgi模式)的时候,常常有这样一句命令:
代码如下:
/usr/local/webserver/php/bin/phpize
一、phpize是干嘛的?
phpize是什么?
phpize是用来扩展php扩展模块的,通过phpi
Java虚拟机学习 - 对象引用强度
shuizhaosi888
JAVA虚拟机
本文原文链接:http://blog.csdn.net/java2000_wl/article/details/8090276 转载请注明出处!
无论是通过计数算法判断对象的引用数量,还是通过根搜索算法判断对象引用链是否可达,判定对象是否存活都与“引用”相关。
引用主要分为 :强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Wea
.NET Framework 3.5 Service Pack 1(完整软件包)下载地址
happyqing
.net 下载 framework
Microsoft .NET Framework 3.5 Service Pack 1(完整软件包)
http://www.microsoft.com/zh-cn/download/details.aspx?id=25150
Microsoft .NET Framework 3.5 Service Pack 1 是一个累积更新,包含很多基于 .NET Framewo
JAVA定时器的使用
jingjing0907
java timer 线程 定时器
1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等。
对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。
privatejava.util.Timer timer;
timer = newTimer(true);
timer.schedule(
newjava.util.TimerTask() { public void run()
Webbench
流浪鱼
webbench
首页下载地址 http://home.tiscali.cz/~cz210552/webbench.html
Webbench是知名的网站压力测试工具,它是由Lionbridge公司(http://www.lionbridge.com)开发。
Webbench能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相
第11章 动画效果(中)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
windows下制作bat启动脚本.
sanyecao2314
java cmd 脚本 bat
java -classpath C:\dwjj\commons-dbcp.jar;C:\dwjj\commons-pool.jar;C:\dwjj\log4j-1.2.16.jar;C:\dwjj\poi-3.9-20121203.jar;C:\dwjj\sqljdbc4.jar;C:\dwjj\voucherimp.jar com.citsamex.core.startup.MainStart
Java进行RSA加解密的例子
tomcat_oracle
java
加密是保证数据安全的手段之一。加密是将纯文本数据转换为难以理解的密文;解密是将密文转换回纯文本。 数据的加解密属于密码学的范畴。通常,加密和解密都需要使用一些秘密信息,这些秘密信息叫做密钥,将纯文本转为密文或者转回的时候都要用到这些密钥。 对称加密指的是发送者和接收者共用同一个密钥的加解密方法。 非对称加密(又称公钥加密)指的是需要一个私有密钥一个公开密钥,两个不同的密钥的
Android_ViewStub
阿尔萨斯
ViewStub
public final class ViewStub extends View
java.lang.Object
android.view.View
android.view.ViewStub
类摘要: ViewStub 是一个隐藏的,不占用内存空间的视图对象,它可以在运行时延迟加载布局资源文件。当 ViewSt