在上一篇《 HTML5本地存储之Web Storage篇》中,简单介绍了如何利用localStorage实现本地存储;实际上,除了sessionStorage和localStorage外,HTML5还支持通过本地数据库进行本地数据存储,HTML5采用的是"SQLLite"这种文件型数据库,该数据库多集中在嵌入式设备上,熟悉IOS/Android开发的同学,应该对SQLLite数据库比较熟悉。
HTML5中的数据库操作比较简单,主要有如下两个函数:
1、通过openDatabase方法创建一个访问数据库的对象
var db = openDatabase(databasename,version,description,size)
该方法有四个参数,作用分别为:
databasename:数据库名;
version:数据库版本号,可不填;
description:数据库描述;
size:给数据库分配的空间大小;
2、使用第一步创建的数据库访问对象(如db)执行transaction方法,用来执行事务处理
db.transaction(function(tx)){
//执行访问数据库的语句
});
transaction方法使用一个回调函数作为参数,在这个函数中,执行访问数据库的具体操作;
3、通过executeSql方法执行查询
tx.executeSql(sqlQuery,[value1,value2..],dataHandler,errorHandler)
executeSql方法有四个参数,作用分别如下:
sqlQuery:需要具体执行的sql语句,可以是create、select、update、delete;
[value1,value2..]:sql语句中所有使用到的参数的数组,在executeSql方法中,将sql语句中所要使用的参数先用“?”代替,然后依次将这些参数组成数组放在第二个参数中;
dataHandler:执行成功是调用的回调函数,通过该函数可以获得查询结果集;
errorHandler:执行失败时调用的回调函数;
本文通过HTML5的数据库支持,重新实现一遍上篇文章中的通讯录管理,待实现功能如下:
可创建联系人并保存到数据库中,联系人字段包括:姓名、手机号码、公司、创建时间;
列出当前已保存的所有联系人信息;
可删除特定联系人信息;
同样,先准备一个HTML页面,如下 :
界面展现如下:
要实现创建新联系人并存入数据库功能,需要如下简单的JS代码:
//打开数据库
var db = openDatabase('contactdb','','local database demo',204800);
//保存数据
function save(){
var user_name = document.getElementById("user_name").value;
var mobilephone = document.getElementById("mobilephone").value;
var company = document.getElementById("company").value;
//创建时间
var time = new Date().getTime();
db.transaction(function(tx){
tx.executeSql('insert into contact values(?,?,?,?)',[user_name,mobilephone,company,time],onSuccess,onError);
});
}
//sql语句执行成功后执行的回调函数
function onSuccess(tx,rs){
alert("操作成功");
loadAll();
}
//sql语句执行失败后执行的回调函数
function onError(tx,error){
alert("操作失败,失败信息:"+ error.message);
}
要展现当前所有已保存的联系人列表,可通过如下JS代码实现:
//将所有存储在sqlLite数据库中的联系人全部取出来
function loadAll(){
var list = document.getElementById("list");
db.transaction(function(tx){
//如果数据表不存在,则创建数据表
tx.executeSql('create table if not exists contact(name text,phone text,company text,createtime INTEGER)',[]);
//查询所有联系人记录
tx.executeSql('select * from contact',[],function(tx,rs){
if(rs.rows.length>0){
var result = "
";
result += "序号 姓名 手机 公司 添加时间 操作 ";
for(var i=0;ivar row = rs.rows.item(i);
//转换时间,并格式化输出
var time = new Date();
time.setTime(row.createtime);
var timeStr = time.format("yyyy-MM-dd hh:mm:ss");
//拼装一个表格的行节点
result += ""+(i+1)+" "+row.name+" "+row.phone+" "+row.company+" "+timeStr+" ";
}
list.innerHTML = result;
}else{
list.innerHTML = "目前数据为空,赶紧开始加入联系人吧";
}
});
});
}
其中,涉及到格式化时间的format函数,可参考如下JS实现 :
Date.prototype.format = function(format)
{
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1 ? o[k] :
("00"+ o[k]).substr((""+ o[k]).length));
return format;
}
最后,界面实现效果如下:
要实现具体某个联系人,需执行如下JS代码 :
//删除联系人信息
function del(phone){
db.transaction(function(tx){
//注意这里需要显示的将传入的参数phone转变为字符串类型
tx.executeSql('delete from contact where phone=?',[String(phone)],onSuccess,onError);
});
}
如上截图中的表格样式,可参考如下CSS代码 :
th {
font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
color: #4f6b72;
border-right: 1px solid #C1DAD7;
border-bottom: 1px solid #C1DAD7;
border-top: 1px solid #C1DAD7;
letter-spacing: 2px;
text-transform: uppercase;
text-align: left;
padding: 6px 6px 6px 12px;
}
td {
border-right: 1px solid #C9DAD7;
border-bottom: 1px solid #C9DAD7;
background: #fff;
padding: 6px 6px 6px 12px;
color: #4f6b72;
}
你可能感兴趣的:(HTML5本地存储之Database Storage应用介绍)
基于 Python 的机器学习模型部署到 Flask Web 应用:从训练到部署的完整指南
m0_74825223
python 机器学习 flask
目录引言技术栈步骤一:数据预处理步骤二:训练机器学习模型步骤三:创建FlaskWeb应用步骤四:测试Web应用步骤五:模型的保存与加载保存模型加载模型并在Flask中使用步骤六:Web应用的安全性考量示例:简单的输入验证示例:自定义错误处理示例:使用Flask-JWT-Extended进行认证结论参考资料引言在当今数据驱动的时代,机器学习模型已经广泛应用于各行各业,从金融、医疗到教育等领域。然而,
Python数据分析与程序设计-番外:在vscode中使用Jupyter Notebook
想当糕手
python 数据分析 vscode jupyter
前言在系列文章的第二篇中,我们介绍了使用“if__name__=="__main__":”来模拟c语言中的main函数+封装测试函数的方法来提高代码可读性。当然,这并不是最佳的选择,本篇博客为您将介绍更为高效便捷的工具,希望能对你有所帮助!关于JupyterNotebookJupyterNotebook是一个开源的Web应用程序,它允许你创建和共享包含实时代码、方程、可视化和解释性文本的文档。它是
纯HTML+CSS网页设计期末作业(个人网站)
m0_67403143
前端 html vue.js typescript javascript
目录纯HTML+CSS网页设计期末作业(个人网站)源码链接效果展示index页面about页面hobbies页面书籍介绍页面元曲介绍页面源码index.htmlindex.cssabout.htmlhobbies.htmlhobbies.cssme.htmlme.cssbook1.htmlbook.cssyuanqu.htmlyuanqu.css缺陷纯HTML+CSS网页设计期末作业(个人网站)源
智能体(AI Agent)全解析:概念、原理至应用深度探索
网安猫叔
人工智能 语言模型 自然语言处理 AIGC 机器学习
一、智能体概念的深度剖析1.1智能体(Agent)的本质智能体,作为人工智能领域的一颗璀璨明珠,是那些能够主动感知周遭环境、自主决策并付诸实践的系统实体。它们不仅拥有自主性、交互性、反应灵敏及高度适应性等鲜明特征,更在复杂多变的情境中展现出卓越的自我管理与任务执行能力。智能体的诞生,标志着人工智能技术从机械式的规则遵循迈向了更为灵活、智能的自主决策新时代。智能体的核心精髓在于其内置的学习与决策引擎
第01章 14 VTK数据集(DataSet)的类型
捕鲸叉
VTK编程学习 VTK
在VTK(VisualizationToolkit)中,数据类型(DataTypes)主要用于表示不同类型的数据集(DataSets),这些数据集可以是几何和拓扑信息的组合,用于描述三维空间中的对象。每种数据类型都有其独特的特点和应用场合。以下是VTK中常用的数据类型及其特点和应用:1.vtkPolyData特点:vtkPolyData是一种简单的数据类型,用于表示多边形数据。它由点(Points
第01章 15 vtkDataArray的特点与应用
捕鲸叉
VTK编程学习 VTK
在VTK(VisualizationToolkit)中,vtkDataArray是一个用于存储数组的基类,可以用于存储不同类型的数值数据。虽然vtkDataArray本身是一个抽象类,但VTK提供了多种具体的实现类,如vtkFloatArray、vtkDoubleArray、vtkIntArray等,用于存储不同类型的数值数据。vtkDataArray的特点多类型支持:每个vtkDataArray
JupyterLab Debugger 安装和配置指南
万毓璐
JupyterLabDebugger安装和配置指南debuggerAvisualdebuggerforJupyternotebooks,consoles,andsourcefiles项目地址:https://gitcode.com/gh_mirrors/de/debugger1.项目基础介绍和主要编程语言项目基础介绍JupyterLabDebugger是一个用于JupyterLab的视觉调试器扩展
使用Python进行后端开发
code_welike
python 开发语言 后端
在现代的Web应用程序中,后端开发扮演着至关重要的角色。后端是负责处理数据、逻辑和业务规则的部分,它与前端交互并提供必要的功能和服务。Python是一种广泛使用的编程语言,具有丰富的库和框架,非常适合用于后端开发。本文将介绍如何使用Python进行后端开发,并提供一些示例代码。安装Python和相关工具首先,我们需要安装Python和一些常用的后端开发工具。你可以从Python官方网站(https
《一个月教你玩转C++》系列第九章:C++中的 if 和 else(2)
c++布丁
C++ c++ 开发语言
第九章:C++中的if和else(2)本章布丁将介绍elseif语句,关系运算符和逻辑运算符。我们将通过简单的例子来展示它们的用法哟!elseif语句elseif语句是if语句的扩展,它允许我们在第一个条件不满足时继续检查其他条件。基本用法:当我们需要根据多个条件执行不同的代码块时,elseif语句就显得非常有用。它的基本用法如下:if(条件1){//如果条件1为真,则执行这里的代码}elseif
chatgpt赋能python:Python当前文件目录:了解Python中的文件路径
atest166
ChatGpt python chatgpt 机器学习 计算机
Python当前文件目录:了解Python中的文件路径Python是一个流行的编程语言,用于开发各种类型的应用程序。在Python中,文件路径是一个非常重要的概念,特别是在操作文件和文件夹时。在本篇文章中,我们将深入探讨Python当前文件目录及其相关概念。什么是当前文件目录?当前文件目录是指当前正在运行的Python文件的位置。在Python中,我们可以使用“os”模块中的函数轻松获得当前文件目
改进yolov8缺陷检测+swin+transformer
QQ_1309399183
计算机视觉实战项目集锦 YOLO transformer 深度学习 人工智能 计算机视觉 opencv 机器学习
使用NEU-DET数据集进行缺陷检测的YOLOv8改进模型应用详解在现代工业生产过程中,质量控制是至关重要的一个环节。随着机器视觉技术和人工智能算法的发展,基于深度学习的方法已经成为自动化缺陷检测的重要工具。本篇将介绍一种基于NEU-DET数据集,利用YOLOv8及其改进版本(包含坐标注意力机制和SwinTransformer)进行缺陷检测的应用开发过程。我们将详细探讨从数据准备到模型训练,再到最
自建 MongoDB 实战 | MongoDB 文档查询
新钛云服
mongodb 数据库 nosql
新钛云服已累计为您分享703篇技术干货专题介绍:八篇文章,近五万字。自建MongoDB实践系列文章,为您阐述日常工作中常用的NoSQL产品——MongoDB运维相关的日常实战。主要涉及到:·MongoDB的安装及基本使用(点击进入)·MongoDB文档查询(本期内容)·MongoDB复制集的介绍及搭建(后续更新)·MongoDB分片集群的介绍及搭建(后续更新)·MongoDB的备份及恢复(后续更新
全网最全Stable diffusion保姆级教程「安装-配置-画图」,小白必收藏!!
AI想象家
stable diffusion AI作画 midjourney 人工智能 深度学习
随着chatgpt爆火之后,越来越多的人开始关注人工智能,人工智能相关的其他应用如AI绘画,也再次得到人们的关注。AI绘画的确很上头,最近几天小编也研究一下,这里把研究的过程以及中间遇到的问题整理一下,我这里遇到的问题,相信新入门的小白也会遇到,希望本文对你能有一定的帮助。给大家带来了全新保姆级教程资料包(文末可获取)目前常用的AI绘画工具主要有两种:stablediffusion和midjour
【java小灶课】详解java与python的不同之处
wit_@
python java big data web
以下是一篇详细的博客,全面介绍了Java与Python在多方面的区别,包括语法、类型系统、内存管理、面向对象特性、并发编程以及常见应用场景等,希望能帮助你深入理解这两门语言的异同,为学习或实际应用提供指导。目录语言概述语法对比类型系统内存管理与垃圾回收面向对象特性函数式编程与Lambda表达式异常处理标准库与第三方库生态并发和多线程运行效率与性能优化常见应用场景学习曲线与社区支持总结1.语言概述J
使用 Caffeine 和 Redis 实现高效的二级缓存架构
微技术
redis 架构 数据库 缓存
在现代应用开发中,缓存是提升系统性能的关键手段。为了兼顾本地缓存的高性能和分布式缓存的扩展能力,常见的实现方式是结合使用Caffeine和Redis实现二级缓存架构。本文将详细介绍如何通过SpringBoot实现一个Caffeine+Redis二级缓存,并通过合理的架构设计和代码实现,确保缓存的一致性、性能和容错性。一、需求与挑战1.多级缓存的需求:•一级缓存(Caffeine):快速响应,存储本
Wi-Fi 7、Wi-Fi 6 与 5G、4G 的全方位对比
微凉的衣柜
科技头条 5G 网段
随着无线通信技术的飞速发展,Wi-Fi7、Wi-Fi6,以及5G、4G已经成为人们生活和工作中不可或缺的网络技术。无论是家庭网络、高速移动通信,还是工业物联网,这些技术都在发挥各自的作用。那么,它们之间有什么区别?适用的场景又有哪些呢?本文将从速度、延迟、覆盖范围、网络架构和应用场景等多方面为大家做一个详细的对比分析。1.技术基本概念Wi-Fi7(802.11be):最新一代Wi-Fi标准,主打超
MacOS/C/C++下怎样进行软件性能分析(CPU/GPU/Memory)
捕鲸叉
软件调试和诊断 软件调试 软件验证
在macOS环境下进行C/C++软件性能分析,可以使用多种工具和技术来测量和优化CPU、GPU和内存的性能。macOS提供了丰富的性能分析工具,如Instruments、gprof、Perf、以及NVIDIA和Intel的专用工具。下面详细介绍了实现思想和操作方法。1.性能分析的目标CPU:分析CPU的使用情况,找出性能瓶颈、热点代码。GPU:分析GPU的使用情况,确保GPU资源被有效利用。内存:
《重生到现代之从零开始的C++生活》—— 入门基础语法2
yttandb
c++ 生活
缺省参数缺省参数就是在函数的声明和定义里制定一个缺省值,如果没有指定的实参就用该形参的缺省值voidadd(inta=0,intb=0){returna+b;}简单的的说就是将形式参数附一个值,如果没有实参传入的话,就默认用形参的值voidadd(inta=0,intb=3){returna+b;}intmain(){inta=1;intb=5;add(a,b);//结果为6add(a);//结果
《重生到现代之从零开始的数据结构生活》—— 复杂度
yttandb
c语言 数据结构 c++
前言进入代码世界已经有一阵了,C语言学的差不多了打算看看数据结构以前都没想过我能学到这嘞哈哈哈哈所以,《重生到现代之从零开始的数据结构生活》开始啦数据结构我们天天说数据结构怎么怎么了,那什么是数据结构你知道吗数据结构(DataStructure)是计算机存储、组织数据的⽅式,指相互之间存在⼀种或多种特定关系的数据元素的集合这么说可能有点抽象了,但是如果举一个例子:intarr[3]={0};不就是
《重生到现代之从零开始的C语言生活》——C语言的数据类型和变量
yttandb
c语言 生活
C语言的数据类型和变量数据类型C语言中的数据类新用来描述数据,而类型可以理解为是数据的分类。数据类型可以分为以下几个内置类型字符型整型浮点型布尔类型自定义类型数组结构体-struct枚举-enum联合体-union在下面我们着重讲解内置类型字符型char可以创建一个字符型的变量(变量会在下文进行描述,在这知道即可)整形短整型shortint整形int长整型longint更长的整形longlongi
Python魔法方法__call__深入详解
图灵学者
python精华 python 开发语言
目录1、魔法方法__call__初探♂️1.1什么是__call__?1.2基础用法演示1.3自定义行为与参数传递2、实现轻量级装饰器模式️2.1装饰器概念回顾2.2利用__call__构建装饰器2.3深入理解装饰器应用场景3、类实例变身函数调用3.1类似函数的行为模拟3.2动态执行与灵活性提升3.3实战案例:日志记录器4、实现状态机模式4.1状态机概念回顾4.2通过__call__管理状态转换
Python魔法参数:深入解析*args和**kwargs的强大用途
图灵学者
python精华 python java linux
目录引言基础概念解析*args:处理位置参数**kwargs:处理关键字参数*args和**kwargs的实际应用场景1.函数装饰器中使用*args和**kwargs2.类构造函数中使用*args和**kwargs3.API调用中使用**kwargs与其他参数类型的结合使用结合默认参数位置参数与关键字参数的混合使用高级技巧和注意事项参数解包与重打包性能考量调试技巧案例研究场景描述实现步骤实际应用案
python封装成exe文件
wenangou
python
这篇文章主要介绍了一个有趣的事情,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。Python打包exe文件方法汇总【4种】Python作为解释型语言,发布即公开源码,虽然是提倡开源但是有些时候就是忍不住想打包成exe,不仅仅是为了对代码进行加密,而是为了跨平台。防止有些没有安装py环境的电脑无法运行软件小神猪。目录对python代码打包成
使用Python解决数独谜题的实用指南
werf456456asddd
python 开发语言
在这篇文章中,我们将探讨如何编写一个Python函数来解决数独谜题。这个函数将接收一个9x9的数独网格作为输入,并使用回溯算法来解决谜题。如果谜题无法解决,函数将返回None。此外,我们还会确保输入网格是一个有效的数独谜题。技术背景介绍数独是一种经典的逻辑游戏,目标是填满一个9x9的网格,使每列、每行和每个3x3的子网格都包含1到9之间的数字。在计算机科学中,数独可以通过回溯算法来求解,这是一种尝
服务器性能监控与优化系统:实战指南与代码案例
我的运维人生
服务器 运维 运维开发 技术共享
服务器性能监控与优化系统:实战指南与代码案例在现代IT基础设施中,服务器性能监控与优化是确保业务连续性和高效运行的关键环节。通过实时监控和调优,能够及时发现并解决潜在的性能瓶颈,从而提升用户体验和系统稳定性。本文将详细介绍服务器性能监控与优化系统的实践方法,并通过具体代码案例进行说明。一、性能监控的重要性性能监控是服务器管理的核心任务之一,通过实时监控关键性能指标(如CPU使用率、内存使用率、磁盘
1、Java 环境搭建与基本概念:开启 Java 编程之旅的第一步
翻晒时光
从0学Java java 开发语言
大家好,欢迎来到我们的Java学习系列博客,今天是第一课,我们将一起探索Java环境搭建与基本概念。无论你是编程新手,还是想要学习一门新语言的老手,Java都是一个非常值得学习的语言,它在众多领域都有着广泛的应用,从企业级软件开发、安卓应用开发到大数据处理,都能看到Java的身影。让我们开始这充满挑战与乐趣的Java学习之旅吧!一、Java的发展历程与特点Java诞生于SunMicrosystem
python调用oracle存储过程传入多参数_精通 Oracle+Python,第 5 部分:存储过程、Python 编程...
weixin_39669133
调用数据库存储过程及其他感兴趣的高级Python编程功能。2010年3月发布对于涉及数据库的软件开发来说,有两种主流开发方法:一种是在应用程序中(对于三层体系结构,也可以是在中间件中)实现所有业务逻辑,另一种是在数据库内部实现所有业务逻辑。本教程不讨论这两种解决方案的优缺点;不过,使用Oracle数据库方法还是会为面向数据库的应用程序带来某些好处。用PL/SQL嵌入所有业务逻辑可大大减少应用程序与
AI引领工业制造智能化革命:机器视觉与时序数据预测的双重驱动
火山说数
人工智能 制造
AI在工业制造的应用正在经历从传统自动化向智能化的巨大飞跃。在众多AI技术中,基于机器视觉的工业辅助检测和基于时序数据的智能预测,毫无疑问是目前备受关注的两个重要方向。它们不仅极大提升了生产效率,还通过精准的决策和实时监控,推动着各行各业的智能转型。一、基于机器视觉的工业辅助检测:让机器的眼睛比人类更聪明如果你曾经站在生产线旁边,眼睛盯着一个个小零件,试图快速判断它们的质量,你应该知道那种疲惫和压
深入理解Oracle DB的事务
小小不董
Oracle DB管理及运维 oracle 数据库 服务器 linux dba
1.引言本节详细介绍OracleDB的事务。2.理解事务的基本概念与特性2.1事务的定义与特性2.1.1定义在Oracle数据库中,事务是一组逻辑相关的数据库操作单元,这些操作要么全部成功执行并提交(使数据库状态发生永久性改变),要么全部失败并回滚(撤销所有已执行的操作,使数据库恢复到事务开始前的状态)。例如,在银行转账系统中,从一个账户扣款并在另一个账户收款这两个操作就构成一个事务。2.1.2事
机器学习数学基础-定积分应用-经济问题
华东算法王(原聪明的小孩子
小孩哥解析宋浩微积分 算法
定积分在经济学中的应用广泛,特别是用来解决与累积量、平均值、总收入、成本、利润等相关的问题。以下是定积分在经济学中的几个常见应用场景:1.总收入和总成本的计算在经济学中,定积分常用于计算总收入、总成本等累积量。如果给定价格函数和需求函数或供应函数,定积分可以帮助我们计算从某一数量到另一数量之间的总收入或总成本。总收入:假设某商品的价格随数量的变化而变化,价格函数为(p(x)),其中(x)表示销售的
枚举的构造函数中抛出异常会怎样
bylijinnan
java enum 单例
首先从使用enum实现单例说起。
为什么要用enum来实现单例?
这篇文章(
http://javarevisited.blogspot.sg/2012/07/why-enum-singleton-are-better-in-java.html)阐述了三个理由:
1.enum单例简单、容易,只需几行代码:
public enum Singleton {
INSTANCE;
CMake 教程
aigo
C++
转自:http://xiang.lf.blog.163.com/blog/static/127733322201481114456136/
CMake是一个跨平台的程序构建工具,比如起自己编写Makefile方便很多。
介绍:http://baike.baidu.com/view/1126160.htm
本文件不介绍CMake的基本语法,下面是篇不错的入门教程:
http:
cvc-complex-type.2.3: Element 'beans' cannot have character
Cb123456
spring Webgis
cvc-complex-type.2.3: Element 'beans' cannot have character
Line 33 in XML document from ServletContext resource [/WEB-INF/backend-servlet.xml] is i
jquery实例:随页面滚动条滚动而自动加载内容
120153216
jquery
<script language="javascript">
$(function (){
var i = 4;$(window).bind("scroll", function (event){
//滚动条到网页头部的 高度,兼容ie,ff,chrome
var top = document.documentElement.s
将数据库中的数据转换成dbs文件
何必如此
sql dbs
旗正规则引擎通过数据库配置器(DataBuilder)来管理数据库,无论是Oracle,还是其他主流的数据都支持,操作方式是一样的。旗正规则引擎的数据库配置器是用于编辑数据库结构信息以及管理数据库表数据,并且可以执行SQL 语句,主要功能如下。
1)数据库生成表结构信息:
主要生成数据库配置文件(.conf文
在IBATIS中配置SQL语句的IN方式
357029540
ibatis
在使用IBATIS进行SQL语句配置查询时,我们一定会遇到通过IN查询的地方,在使用IN查询时我们可以有两种方式进行配置参数:String和List。具体使用方式如下:
1.String:定义一个String的参数userIds,把这个参数传入IBATIS的sql配置文件,sql语句就可以这样写:
<select id="getForms" param
Spring3 MVC 笔记(一)
7454103
spring mvc bean REST JSF
自从 MVC 这个概念提出来之后 struts1.X struts2.X jsf 。。。。。
这个view 层的技术一个接一个! 都用过!不敢说哪个绝对的强悍!
要看业务,和整体的设计!
最近公司要求开发个新系统!
Timer与Spring Quartz 定时执行程序
darkranger
spring bean 工作 quartz
有时候需要定时触发某一项任务。其实在jdk1.3,java sdk就通过java.util.Timer提供相应的功能。一个简单的例子说明如何使用,很简单: 1、第一步,我们需要建立一项任务,我们的任务需要继承java.util.TimerTask package com.test; import java.text.SimpleDateFormat; import java.util.Date;
大端小端转换,le32_to_cpu 和cpu_to_le32
aijuans
C语言相关
大端小端转换,le32_to_cpu 和cpu_to_le32 字节序
http://oss.org.cn/kernel-book/ldd3/ch11s04.html
小心不要假设字节序. PC 存储多字节值是低字节为先(小端为先, 因此是小端), 一些高级的平台以另一种方式(大端)
Nginx负载均衡配置实例详解
avords
[导读] 负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。负载均衡先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解 负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。
负载均衡
先来简单了解一下什么是负载均衡
乱说的
houxinyou
框架 敏捷开发 软件测试
从很久以前,大家就研究框架,开发方法,软件工程,好多!反正我是搞不明白!
这两天看好多人研究敏捷模型,瀑布模型!也没太搞明白.
不过感觉和程序开发语言差不多,
瀑布就是顺序,敏捷就是循环.
瀑布就是需求、分析、设计、编码、测试一步一步走下来。而敏捷就是按摸块或者说迭代做个循环,第个循环中也一样是需求、分析、设计、编码、测试一步一步走下来。
也可以把软件开发理
欣赏的价值——一个小故事
bijian1013
有效辅导 欣赏 欣赏的价值
第一次参加家长会,幼儿园的老师说:"您的儿子有多动症,在板凳上连三分钟都坐不了,你最好带他去医院看一看。" 回家的路上,儿子问她老师都说了些什么,她鼻子一酸,差点流下泪来。因为全班30位小朋友,惟有他表现最差;惟有对他,老师表现出不屑,然而她还在告诉她的儿子:"老师表扬你了,说宝宝原来在板凳上坐不了一分钟,现在能坐三分钟。其他妈妈都非常羡慕妈妈,因为全班只有宝宝
包冲突问题的解决方法
bingyingao
eclipse maven exclusions 包冲突
包冲突是开发过程中很常见的问题:
其表现有:
1.明明在eclipse中能够索引到某个类,运行时却报出找不到类。
2.明明在eclipse中能够索引到某个类的方法,运行时却报出找不到方法。
3.类及方法都有,以正确编译成了.class文件,在本机跑的好好的,发到测试或者正式环境就
抛如下异常:
java.lang.NoClassDefFoundError: Could not in
【Spark七十五】Spark Streaming整合Flume-NG三之接入log4j
bit1129
Stream
先来一段废话:
实际工作中,业务系统的日志基本上是使用Log4j写入到日志文件中的,问题的关键之处在于业务日志的格式混乱,这给对日志文件中的日志进行统计分析带来了极大的困难,或者说,基本上无法进行分析,每个人写日志的习惯不同,导致日志行的格式五花八门,最后只能通过grep来查找特定的关键词缩小范围,但是在集群环境下,每个机器去grep一遍,分析一遍,这个效率如何可想之二,大好光阴都浪费在这上面了
sudoku solver in Haskell
bookjovi
sudoku haskell
这几天没太多的事做,想着用函数式语言来写点实用的程序,像fib和prime之类的就不想提了(就一行代码的事),写什么程序呢?在网上闲逛时发现sudoku游戏,sudoku十几年前就知道了,学生生涯时也想过用C/Java来实现个智能求解,但到最后往往没写成,主要是用C/Java写的话会很麻烦。
现在写程序,本人总是有一种思维惯性,总是想把程序写的更紧凑,更精致,代码行数最少,所以现
java apache ftpClient
bro_feng
java
最近使用apache的ftpclient插件实现ftp下载,遇见几个问题,做如下总结。
1. 上传阻塞,一连串的上传,其中一个就阻塞了,或是用storeFile上传时返回false。查了点资料,说是FTP有主动模式和被动模式。将传出模式修改为被动模式ftp.enterLocalPassiveMode();然后就好了。
看了网上相关介绍,对主动模式和被动模式区别还是比较的模糊,不太了解被动模
读《研磨设计模式》-代码笔记-工厂方法模式
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 工厂方法模式:使一个类的实例化延迟到子类
* 某次,我在工作不知不觉中就用到了工厂方法模式(称为模板方法模式更恰当。2012-10-29):
* 有很多不同的产品,它
面试记录语
chenyu19891124
招聘
或许真的在一个平台上成长成什么样,都必须靠自己去努力。有了好的平台让自己展示,就该好好努力。今天是自己单独一次去面试别人,感觉有点小紧张,说话有点打结。在面试完后写面试情况表,下笔真的好难,尤其是要对面试人的情况说明真的好难。
今天面试的是自己同事的同事,现在的这个同事要离职了,介绍了我现在这位同事以前的同事来面试。今天这位求职者面试的是配置管理,期初看了简历觉得应该很适合做配置管理,但是今天面
Fire Workflow 1.0正式版终于发布了
comsci
工作 workflow Google
Fire Workflow 是国内另外一款开源工作流,作者是著名的非也同志,哈哈....
官方网站是 http://www.fireflow.org
经过大家努力,Fire Workflow 1.0正式版终于发布了
正式版主要变化:
1、增加IWorkItem.jumpToEx(...)方法,取消了当前环节和目标环节必须在同一条执行线的限制,使得自由流更加自由
2、增加IT
Python向脚本传参
daizj
python 脚本 传参
如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?
需要模块:sys
参数个数:len(sys.argv)
脚本名: sys.argv[0]
参数1: sys.argv[1]
参数2: sys.argv[
管理用户分组的命令gpasswd
dongwei_6688
passwd
NAME: gpasswd - administer the /etc/group file
SYNOPSIS:
gpasswd group
gpasswd -a user group
gpasswd -d user group
gpasswd -R group
gpasswd -r group
gpasswd [-A user,...] [-M user,...] g
郝斌老师数据结构课程笔记
dcj3sjt126com
数据结构与算法
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
yii2 cgridview加上选择框进行操作
dcj3sjt126com
GridView
页面代码
<?=Html::beginForm(['controller/bulk'],'post');?>
<?=Html::dropDownList('action','',[''=>'Mark selected as: ','c'=>'Confirmed','nc'=>'No Confirmed'],['class'=>'dropdown',])
linux mysql
fypop
linux
enquiry mysql version in centos linux
yum list installed | grep mysql
yum -y remove mysql-libs.x86_64
enquiry mysql version in yum repositoryyum list | grep mysql oryum -y list mysql*
install mysq
Scramble String
hcx2013
String
Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrings recursively.
Below is one possible representation of s1 = "great":
跟我学Shiro目录贴
jinnianshilongnian
跟我学shiro
历经三个月左右时间,《跟我学Shiro》系列教程已经完结,暂时没有需要补充的内容,因此生成PDF版供大家下载。最近项目比较紧,没有时间解答一些疑问,暂时无法回复一些问题,很抱歉,不过可以加群(334194438/348194195)一起讨论问题。
----广告-----------------------------------------------------
nginx日志切割并使用flume-ng收集日志
liyonghui160com
nginx的日志文件没有rotate功能。如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件。第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志。在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linux是靠文件描述符而不是文件名定位文件。第二步向nginx主
Oracle死锁解决方法
pda158
oracle
select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and a.process=b.process and c.object_id=b.
java之List排序
shiguanghui
list排序
在Java Collection Framework中定义的List实现有Vector,ArrayList和LinkedList。这些集合提供了对对象组的索引访问。他们提供了元素的添加与删除支持。然而,它们并没有内置的元素排序支持。 你能够使用java.util.Collections类中的sort()方法对List元素进行排序。你既可以给方法传递
servlet单例多线程
utopialxw
单例 多线程 servlet
转自http://www.cnblogs.com/yjhrem/articles/3160864.html
和 http://blog.chinaunix.net/uid-7374279-id-3687149.html
Servlet 单例多线程
Servlet如何处理多个请求访问?Servlet容器默认是采用单实例多线程的方式处理多个请求的:1.当web服务器启动的