坚持不懈,才能有机会看到阳光大道!
通过(页面美观+js和lodop)来实现打印名片的功能
首先呢,咱们先把页面画出来(用bootstrap来实现)
页面代码
//画一个盒子,长900px,宽600px, margin:100px auto 意思是这个盒子上边距100px,居中
//这个盒子是包含3个button,margin:30px 是4边的外边距都是30px,不是那么紧凑,美观一些。
添加数据 //span标签的class 是显示图标
打印预览
开始打印
//用来显示下面的table
bootstrap组件(图标) : http://v3.bootcss.com/components/
js代码
var model={user:'',phone:'',companyName:''}//用来保存填写的数据
var head=['用户名','手机号码','公司名称']//生成table表头
//点击保存给model赋值,
$("#sure").bind("click",function(){
model = {};//初始化model,是为了防止多次保存,有多余数据
model.user = $("#UserName").val();
model.phone = $("#phone").val();
model.companyName = $("#companyName").val();
//这里需要判断一下是否已经存在表格,如果存在清空
if ($("tr th").length > 0) {
//清空表格
document.getElementById("SelectTableData").innerText = "";
creatTable(model,head);//生成table函数
} else {
creatTable(model,head);//生成table函数
}
})
//创建table,(model是数据源,head是表头)
function creatTable(model,head){
var table = $('');
$(".SelectTableData").append(table);
var caption = $('打印信息 ');
table.append(caption);
var thead = $(' ');
var tr=$(' ')
for (var th in head) {
tr.append('' + head[th] + ' ');
}
thead.append(tr);
var trs = $(' ');
for (var item in model) {
trs.append('' + model[item] + ' ');
thead.append(trs);
}
table.append(thead);
}
lodop代码
$("#preview").bind("click",function(){
//预览
LODOP = getLodop();
printInfo(model);
LODOP.PREVIEW();
})
$("#startPrint").bind("click",function(){
//打印
LODOP = getLodop();
printInfo(model);
LODOP.PRINT();
})
function printInfo(model){
LODOP.PRINT_INIT("打印测试");
LODOP.SET_PRINT_PAGESIZE(0, "90mm","50mm","");
LODOP.ADD_PRINT_LINE("10mm", "5mm", "10mm", "85mm", 0, 1);
LODOP.ADD_PRINT_LINE("10mm", "5mm", "40mm", "5mm", 0, 1);
LODOP.ADD_PRINT_LINE("10mm", "85mm", "40mm", "85mm", 0, 1);
LODOP.ADD_PRINT_LINE("40mm", "5mm", "40mm", "85mm", 0, 1);
LODOP.ADD_PRINT_TEXT("12mm", "45mm", "80mm", "8mm", model.user);
LODOP.SET_PRINT_STYLEA(0,"FontName", "方正姚体");//FontName设置字体为宋体
LODOP.SET_PRINT_STYLEA(0,"FontSize", 20);//FontSize设置字体大小(单位是:pt)
LODOP.SET_PRINT_STYLEA(0,"Bold", 1);//Bold:设定纯文本打印项是否粗体 (1是粗体,0不是粗体)。
LODOP.ADD_PRINT_TEXT("22mm", "45mm", "80mm", "8mm", model.phone);
LODOP.SET_PRINT_STYLEA(0,"FontName", "方正姚体");//FontName设置字体为宋体
LODOP.SET_PRINT_STYLEA(0,"FontSize", 20);//FontSize设置字体大小(单位是:pt)
LODOP.SET_PRINT_STYLEA(0,"Bold", 1);//Bold:设定纯文本打印项是否粗体 (1是粗体,0不是粗体)。
LODOP.ADD_PRINT_TEXT("32mm", "45mm", "80mm", "8mm", model.companyName);
LODOP.SET_PRINT_STYLEA(0,"FontName", "方正姚体");//FontName设置字体为宋体
LODOP.SET_PRINT_STYLEA(0,"FontSize", 20);//FontSize设置字体大小(单位是:pt)
}
lodop最基础代码(如何配置,每行代码的意思,参数的意思):http://www.jianshu.com/p/265247973e44
一名职场菜鸟,希望大家多提提意见。
你可能感兴趣的:(c_lodop升级打印(用户输入,打印自定义模版))
node-ddk, electron组件, 自定义本地文件协议,打开本地文件
eli960
node-ddk electron javascript 前端 node.js
node-ddk文件协议https://blog.csdn.net/eli960/article/details/146207062也可以下载demo直接演示http://linuxmail.cn/go#node-ddk安全考虑到安全,本系统禁止使用file:///在主窗口,自定义文件协议,可以多个importmain,{NODEDDK}from"node-ddk/main"main.protoc
众多主播都在用的超有趣桌面小宠物!
开开心心_Every
宠物 virtualenv eclipse python django pygame java
BongocatMver是一款主播直播必备萌系插件,是一款开源软件。软件由国外一个高中生kuroni开发出来,让手鼓猫中的手臂可以跟随鼠标,按键的操作而发生动作。萌系的猫咪造型以及键盘映射的交互动画,十分适合游戏主播、绘画主播、音游主播在直播时使用的虚拟造型插件,可以给你的直播间或视频带来无限的元气。软件采用Live2d模型来实现自定义形状,用户可以根据自己的设定来更换不同形状的猫。精准的面部捕捉
JS基础-事件模型(事件&事件流&自定义事件&事件冒泡/代理)
LYFlied
html&浏览器 javascript 事件模型 事件流 前端 面试
文章目录一、事件与事件流二、事件模型1.DOM0级模型2.IE事件模型3.DOM2级模型4.DOM3级事件处理方式三、事件对象四、事件绑定与解除1.事件绑定1.1对象.on事件名字=事件处理函数1.2.对象.addEventListener("没有on的事件名字",事件处理函数,false)3.对象.attachEvent("有on的事件名字",事件处理函数);2.解除绑定五、EventWrapp
Python UV - 安装、升级、卸载
云客Coder
python uv 开发语言
文章目录安装检查升级设置自动补全卸载UV命令官方文档详见:https://docs.astral.sh/uv/getting-started/installation/安装pipinstalluv检查安装后可运行下面命令,查看是否安装成功uv--version%uv--versionuv0.6.3(a0b9f22a22025-02-24)升级uvselfupdate将重新运行安装程序并可能修改您的
《Oracle DBA入门实战:十大高频问题详解与避坑指南》
鸿·蒙
数据库 Oracle数据库 DBA入门 数据库管理 IT技术干货 学习笔记
OracleDBA入门作业十问十答本文为OracleDBA入门作业整理,涵盖工具使用、配置管理及权限控制等核心知识点,适合新手快速上手。如有疑问或补充,欢迎评论区交流!1.DBA常用工具有哪些?OracleUniversalInstaller(OUI)用途:安装、升级或删除软件组件。OracleDatabaseConfigurationAssistant(DBCA)用途:通过图形界面创建、删除或修
fastjosn注册自定义序列化器
林发和
开发语言 java
自定义序列化器: importcom.alibaba.fastjson.serializer.JSONSerializer; importcom.alibaba.fastjson.serializer.ObjectSerializer; importorg.springframework.boot.actuate.health.Status; importjava.io.IOExcepti
SpringBoot 整合security 实现自定义Token和clientId登录及退出(二)
.猫的树
spring boot spring java
接上一篇6.认证相关处理创建登录成功DemoAuthenticationSuccessHandler.java/***用户身份验证通过处理*/@Component@SuppressWarnings("all")publicclassDemoAuthenticationSuccessHandlerimplementsAuthenticationSuccessHandler{@Autowiredpri
数据结构之链表(单链表)
Dust-Chasing
数据结构 链表 c语言
目录一、链表的概念二、链表的分类三、单链表的实现1.创建新的节点2.打印链表3.链表的头插和尾插尾插:要注意第一次插入时链表为空的情况。头插:4.单链表的头删和尾删尾删:注意链表中只有一个元素的情况。且要保存尾节点的前一个节点。头删:5.单链表的查找一、链表的概念链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表实际上就像一列火车一样,每一个
聊聊langchain4j的HTTP Client
langchain4j
序本文主要研究一下langchain4j的HTTPClientlangchain4j-http-clientlangchain4j提供了langchain4j-http-client模块,它实现了一个HttpClientSPI(服务提供者接口),其他模块通过该接口调用LLM提供商的RESTAPI。这意味着底层HTTP客户端可以被自定义,通过实现HttpClientSPI,还可以集成任何其他HTTP
Linux脚本实践1
一点多余.
linux 运维 服务器 脚本
前言日常在Liunx中用到多个版本的java修改很麻烦,一个脚本搞定。1.准备两个jdk(如下图所示)2.准备脚本文件viswitch_jdk.sh#!/bin/bash#提示用户输入JDK路径read-p"请输入JDK的绝对路径(例如/usr/local/jdk/jdk-11.0.21):"jdk_path#检查输入的路径是否存在if[!-d"$jdk_path"];thenecho"错误:路径
线上一个隐匿 Bug 的复盘
Wu_Candy
大数据测试 大数据
前言之前负责的一个项目上线好久了,最近突然爆出一Bug,最后评估影响范围将Bug升级成了故障,只因为影响的数据量有10000条左右,对业务方造成了一定的影响。但因为不涉及到资金损失,Bug修复后对数据进行修补,所以最终级别也是较低的。今天和大家分享这个线上隐匿的Bug,也好在工作的项目中得以借鉴哈~需求背景主题:民宿入住回访问卷描述:针对入住民宿的顾客,在离店后的当天或第二天内需要给顾客发送本次入
181.HarmonyOS NEXT系列教程之列表交换组件整体架构详解
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT系列教程之列表交换组件整体架构详解效果演示1.组件概述1.1功能介绍ListExchangeViewComponent是一个支持列表项交换和删除的自定义组件,主要用于实现如扣款列表等场景。主要功能包括:列表项拖拽排序滑动删除自定义列表项
论文阅读笔记——MAGICDRIVE: STREET VIEW GENERATION WITH DIVERSE 3D GEOMETRY CONTROL
寻丶幽风
论文阅读笔记 论文阅读 笔记 3d 人工智能 自动驾驶
MagicDrive论文MagicDrive通过对3D数据和文本数据的多模态条件融合和隐式视角转换,实现了高质量、多视角一致的3D场景生成。几何条件编码Cross-attention:针对顺序数据,适合处理文本标记和边界框等可变长度输入。Additiveencoderbranch:对于地图等网络状规则数据,能够有效保留空间结构。对于文本按照模版构建:“Adrivingsceneat{locatio
快速理解Vue3中Pinia里的subscribe方法使用
MXN_小南学前端
vue3 vue 前端
快速理解Vue3中Pinia里的subscribe方法使用一、Pinia简介Pinia是Vue3的状态管理库,类似Vue2中的Vuex,但使用更简洁高效二、subscribe方法简介subscribe方法是Pinia中的监听器函数,有点像watch,但监听的是store中的状态(数据/state)变化,在store中的状态变化时会执行自定义逻辑。可用于调试和定位问题、记录日志后续分析、触发操作(比
聊聊langchain4j的HTTP Client
hello_ejb3
http iphone 网络协议
序本文主要研究一下langchain4j的HTTPClientlangchain4j-http-clientlangchain4j提供了langchain4j-http-client模块,它实现了一个HttpClientSPI(服务提供者接口),其他模块通过该接口调用LLM提供商的RESTAPI。这意味着底层HTTP客户端可以被自定义,通过实现HttpClientSPI,还可以集成任何其他HTTP
常见的编码方式及特征
菜根Sec
服务器 网络 linux web安全 网络安全
一、BASE编码1、Base64Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。Base64,就是包括小写字母a-z、大写字母A-Z、数字0-9、符号"+“、”/"一共64个字符的字符集。(1)编码规则①把3个字节变成4个字节。②每76个字符加一个换行符。③最后的结束符也要处理(2)举例说明转前:s13先转成asci
C语言的scanf函数
海风有点咸
scanf函数 c语言
scanf函数简介scanf是ScanFormat的缩写,意思是格式化扫描,也就是从键盘获得用户输入。scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include。(在有一些实现中,printf函数与scanf函数在使用时可以不
C语言指针入门(二)
悄悄敲敲敲
c语言 开发语言 算法 c++
1.二级指针二级指针就是指针的指针,即存放指针变量地址的一个变量。#includeintmain(){inta=10;int*p=&a;int**pp=&p;printf("%d\n",a);printf("%d\n",*p);printf("%d\n",**pp);//打印结果全为10printf("%p\n",a);printf("%p\n",*p);printf("%p\n",**pp);/
Node.js 包管理配置文件详解:package.json、npmrc、package-lock.json 全面解析
还是鼠鼠
node.js node.js json javascript 前端 vscode
目录Node.js包管理配置文件详解1.package.json:Node.js项目的核心配置文件示例:完整的package.json配置关键字段解析2.package-lock.json:锁定依赖版本示例:部分package-lock.json作用如果package-lock.json出现问题3..npmrc:npm的自定义配置文件示例:修改npm源应用.npmrc配置4..nvmrc:Node
LeetCode剑指offer题目记录3
t.y.Tang
LeetCode记录 学语言 c++ leetcode 哈希算法
leetcode刷题开始啦,每天记录几道题.目录剑指offer05.替换空格题目描述思路pythonC++剑指offer06.从尾到头打印链表题目描述思路1python思路2pythonC++剑指offer05.替换空格题目描述让我们实现一个函数,把字符串s中的每个空格替换为%20.思路这个题目我只能想到遍历,在空间控制上应该有原地修改的办法会省一些.python如果用python,那直接用spl
conda篇----在已有conda环境的基础上升级python包
心惠天意
conda python jvm
conda篇----在已有conda环境的基础上升级python包原先的python版本第一步:condaupdate--all(py11)[xxx@aivrs01xxx]$condaupdate--allCollectingpackagemetadata(current_repodata.json):doneSolvingenvironment:done==>WARNING:Anewervers
Linux部署模型报错OSError: Error no file named pytorch_model.bin, tf_model.h5, model.ckpt.index or flax_mod
dkgee
linux pytorch 运维
报错内容:OSError:Errornofilenamedpytorch_model.bin,tf_model.h5,model.ckpt.indexorflax_model.msgpackfoundindirectory主要原因是transformer版本不对,需要升级pipinstall--upgradehuggingface_hubpipinstalltransformers[torch]其
conda将python低版本环境升级到高版本
dkgee
conda python 开发语言
conda将python低版本环境3.7.16升级到高版本3.81.激活你的Conda环境2.升级Python版本3.验证升级4.处理依赖问题5.测试环境注意事项可以将Conda环境中的Python版本从3.7.16升级到3.8。以下是具体步骤:1.激活你的Conda环境首先,你需要激活你想要升级Python版本的环境。假设你的环境名为myenv,你可以使用以下命令激活它:condaactivat
Anaconda常用命令汇总
y=520(2sinM-sin2M)
python问题解决方案 Anaconda 包管理 虚拟环境 conda命令 数据科学
Anaconda常用命令汇总方便打印出来做成卡片,随时可以看,命令如下:####基本的包管理命令#查看conda的版本信息conda--versionconda-V#更新condacondaupdateconda#查看anaconda的配置信息condaconfig--show#更新anacondacondaupdateanaconda#查询conda信息condainfo#根据关键字key寻找安
Spring容器初始化扩展点:ApplicationContextInitializer
web14786210723
面试 学习路线 阿里巴巴 spring java 后端
目录一、什么是ApplicationContextInitializer?1、核心作用2、适用场景二、ApplicationContextInitializer的使用方式1、实现ApplicationContextInitializer接口2、注册初始化器三、ApplicationContextInitializer的执行时机四、实际应用案例1、动态设置环境变量2、注册自定义的Bean定义五、注意
【第22节】windows网络编程模型(WSAAsyncSelect模型)
攻城狮7号
Windows编程(C++) windows 网络编程 windows编程 windows sdk c++
目录引言一、WSAAsyncSelect模型概述二、WSAAsyncSelect模型流程2.1自定义消息2.2创建窗口例程2.3初始化套接字2.4注册网络事件2.5绑定和监听2.6消息循环三、完整示例代码引言在网络编程的广袤天地中,高效处理网络事件是构建稳定应用的关键。WSAAsyncSelect模型作为一种独特且实用的网络编程模型,为开发者提供了异步处理网络事件的有力手段。它巧妙地将Window
Unity编辑器扩展快速回顾
托塔1
Unity知识快速回顾 unity 编辑器 游戏引擎
知识点来源:总结人间自有韬哥在,唐老狮,豆包目录1.自定义菜单栏拓展1.1.Editor文件夹用途1.2.添加自定义页签1.3.Component菜单加脚本1.4.Inspector脚本右键菜单1.5.快捷键设置2.自定义窗口扩展2.1.创建窗口类2.2显示窗口2.3.窗口事件回调函数2.4.窗口中常用的生命周期函数2.5.编辑器窗口类中的常用成员3.EditorGUI3.1.EditorWind
H200架构升级与实战解析
智能计算研究中心
其他
内容概要作为新一代高性能计算平台的核心载体,H200架构通过系统性硬件重构实现了计算性能的显著跃迁。本文将从芯片级设计革新出发,剖析其多维度升级路径:首先解读计算单元拓扑重组带来的并行效率提升,阐释内存子系统的带宽优化策略;继而拆解面向AI训练场景的混合精度加速机制,以及科学计算工作负载的动态资源调度方案。通过比对行业典型部署案例中的能效曲线与吞吐表现,系统化呈现H200在模型训练加速、大规模仿真
Vue.js 模板语法全解析:从基础到实战应用
予安灵
前端 vue.js 前端 javascript vue生命周期 vue指令 vue项目结构 vue插值
引言在Vue.js的开发体系中,模板语法是构建用户界面的核心要素,它让开发者能够高效地将数据与DOM进行绑定,实现动态交互效果。通过对《Vue.js快速入门实战》中关于Vue项目部署章节(实际围绕Vue模板语法展开)的深入研读,我们将全面剖析Vue项目结构、应用程序实例、生命周期、插值、指令以及自定义指令等关键内容,并通过实战案例加深理解。1.Vue项目详解项目目录结构以常见的vite-app项目
Spring Boot 项目 90% 存在这 15 个致命漏洞,你的代码在裸奔吗?
风象南
原创随笔 java spring boot 后端 web安全 系统安全
文章首发公众号【风象南】SpringBoot作为一款广泛使用的Java开发框架,虽然为开发者提供了诸多便利,但也并非无懈可击,其安全漏洞问题不容忽视。本文将深入探讨SpringBoot常见的安全漏洞类型、产生原因以及相应的解决方案,帮助开发者更好地保障应用程序的安全。1.SQL注入漏洞漏洞描述:当应用程序使用用户输入的数据来构建SQL查询时,如果没有进行适当的过滤或转义,攻击者就可以通过构造恶意的
ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术 jvm AOP 动态代理 ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
java编程思想 --内部类
百合不是茶
java 内部类 匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
泛型类的自定义
麦田的设计者
java android 泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
CSS清除浮动的4中方法
IT独行者
JavaScript UI css
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
Cygwin使用windows的jdk 配置方法
_wy_
jdk windows cygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
linux下安装maven
无量
maven linux 安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
tomcat的https 配置,syslog-ng配置
aichenglong
tomcat http跳转到https syslong-ng配置 syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
Test注解的两个属性:expected和timeout
bijian1013
java JUnit expected timeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
[Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
java netty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
[转]for 循环为何可恨?
dcj3sjt126com
程序员 读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
Oracle 复习笔记之序列
eksliang
Oracle 序列 sequence Oracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
使用KeleyiSQLHelper类进行分页查询
hvt
sql .net C# asp.net hovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
链表栈
luyulong
java 数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm 2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
spring配置定时任务
stunizhengjia
spring timer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http