编程技术

扩展Struts1.x核心类

在Struts1.1后新增RequestProcessor类别,有关于使用者请求的处理分配等动作已经大部份交由RequestProcessor来处理,下图是ActionServlet接收到请求之后的一些主要动作,藉由这张图可以了解struts-config.xml的组件设定意义,以及Struts运作的方式。下面将分两点来介绍如何扩展Struts核心类。1.扩展RequestProcessorRequestProcessor是Struts的核心类,而Stru

系统 2019-08-29 23:34:24 2087

编程技术

如何检测网内IP地址是否被占用

有时是在局域网内新增机器,但新增机器的IP地址设置是个问题,该网段内到底有哪些地址还未分配出去呢?总不能一台一台机器的IPCONFIG吧!那工作量可不小。还有一种情况就是,网络管理员在服务器端做了一些设置,有些IP地址可以访问Internet,有些IP地址不能访问Internet,因此这时候想访问Internet,就必须把自己的IP地址改成网管设置的可以访问Internet的范围内才可以。无论是哪一种情况,首先我们都必须要知道哪个地址尚未使用,那我们又怎样

系统 2019-08-29 23:26:58 2087

编程技术

Draw2d 学习笔记四 XYLayout

XYLayout就是采用绝对坐标来确定子figure的位置和大小。/***Calculatesandreturnsthepreferredsizeoftheinputfigure.SinceinXYLayoutthe*locationofthechildshouldbepreserved,thepreferredsizewouldbearegionwhich*wouldholdallthechildrenoftheinputfigure.Ifnoconst

系统 2019-08-29 22:51:04 2087

编程技术

SQL自定义函数学习(三):多语句表值型函数

3.多语句表值型函数多语句表值型函数是标量函数和单语句函数的结合体,该函数返回的是一个表,可以进行多次查询。3.1多语句表值型函数语法createfunction名称([{@参数名称参数类型[=默认值]}[,n]])returns@局部变量table[withencryption][as]begin函数体return函数返回值end3.2多语句表值型函数实例样例数据创建多语句表值型函数,用于返回一个数据表,该表存放Table_4和Table_5中的信息,并

系统 2019-08-29 22:43:38 2087

编程技术

给华育国际的学员分讲了一堂课:如何做技术

受朋友所托,傍晚的时候,给“华育国际”的中关村校区的一些学员讲了一堂课。主要内容是讲“如何学技术”,顺便在最后也翻了翻自己的特长,侃了部分有关workflow的知识。但主要还是讲如何成为一个好的技术员。给这些“孩子们”讲课还挺难的。称他们孩子,那是有根据的。这帮学员都刚刚高中毕业没多久,大学没读上,家长送到“华育国际”这种IT培训机构,希望短时间学点IT技能可以找个工作糊口。IT原先是很“高雅”的工作,不过现在真的已经是一个“普通”行当了。跟那些培训机构培

系统 2019-08-29 22:28:50 2087

编程技术

双重检查锁定与延迟初始化

在java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。比如,下面是非线程安全的延迟初始化对象的示例代码:publicclassUnsafeLazyInitialization{privatestaticInstanceinstance;publicstaticInstancegetInstance(){if(in

系统 2019-08-29 22:03:53 2087

编程技术

给老婆作的小账本 晒晒 上传源码了 哈哈

刚开始开发最近赶了几个晚上很多功能还未完善等全部OK了上源码,先大家LOOKLOOK昨天发现个问题,我在"今日账单"的Tab页中放置了ListView,可以选中,然后在通过Menu的"删除记录"实现删除功能,现在我想在删除之前弹出一个确认对话框AlertDialog,但是发现AlertDialog不能在Tab页内部去bulider,看了异常信息,应该是AlertDialog需要一个Acitivity的Context,但在Tab页内部的Class,是作为一个

系统 2019-08-29 22:01:57 2087

编程技术

我的Watir

今天是我第二天搞Watir,写了一段简单的代码:ie.goto("http://130.34.98.11:18080/bssframe");ie.text_field(:id,"STAFF_ID").set("SUPERUSR");ie.text_field(:id,"PASSWORD").set("XXXXXX");ie.button(:id,"bLoginSubmit").click;contentFrame=ie.frame(:id,"content

系统 2019-08-12 09:29:47 2087

Python

Python调用C语言的实现

Python中的ctypes模块可能是Python调用C方法中最简单的一种。ctypes模块提供了和C语言兼容的数据类型和函数来加载dll文件,因此在调用时不需对源文件做任何的修改。也正是如此奠定了这种方法的简单性。示例如下实现两数求和的C代码,保存为add.c//sampleCfiletoadd2numbers-intandfloats#includeintadd_int(int,int);floatadd_float(float,float);inta

系统 2019-09-27 17:56:20 2086

Python

糟了,上网记录被Python扒下来了!

来源|高级农民工(ID:Mocun6)责编|胡巍巍长时间使用浏览器会积累大量浏览器历史记录,这些是很隐私的数据,里面甚至可能有一些不可描述的网站或者搜索记录不想让别人知道。不过,我们自己可能会感兴趣,天天都在上网,想知道长期下来是都在摸鱼还是有认真工作。其次,了解下自己每天打开多少次网页、哪些网站上的最多、常搜哪些关键词,这些也很有趣。下面就来给大家介绍一款Python编写的神工具,可以一键分析你的上网行为。我用了后发现了很多不可思议的结论。比如访问次数最

系统 2019-09-27 17:56:03 2086

Python

只用3行代码,让Python提速4倍!最强辅助

Python是一门非常适合处理数据和自动化完成重复性工作的编程语言。我们在用数据训练机器学习模型之前,通常都需要对数据进行预处理,而Python就非常适合完成这项工作,比如需要重新调整几十万张图像的尺寸,用Python没问题!你几乎总是能找到一款可以轻松完成数据处理工作的Python库。虽然Python易于学习,使用方便,但它并非运行速度最快的语言。默认情况下,Python程序使用一个CPU以单个进程运行。如果你是在最近几年配置的电脑,通常都是四核处理器,

系统 2019-09-27 17:55:51 2086

Python

python tkinter组件摆放方式详解

1.最小界面组成#导入tkinter模块importtkinter#创建主窗口对象root=tkinter.Tk()#设置窗口大小(最小值:像素)root.minsize(300,300)#创建一个按钮组件btn=tkinter.Button(root,text='屠龙宝刀,点击送')btn.pack()#加入消息循环root.mainloop()设置初始化界面大小#设置初始化界面大小root.geometry('300x400')2.组件的摆放方式:1.

系统 2019-09-27 17:55:39 2086

Python

Python列表list数组array用法实例解析

本文以实例形式详细讲述了Python列表list数组array用法。分享给大家供大家参考。具体如下:Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构。创建列表复制代码代码如下:sample_list=['a',1,('a','b')]Python列表操作复制代码代码如下:sample_list=['a','b',0,1,3]得到列表中的某一个值复制代码代码如下:value_start=sample_list[0

系统 2019-09-27 17:54:57 2086

Python

python函数修饰符@的使用方法解析

python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志、性能测试、事务处理等等。创建函数修饰符的规则:(1)修饰符是一个函数(2)修饰符取被修饰函数为参数(3)修饰符返回一个新函数(4)修饰符维护被维护函数的签名例子1:被修饰函数不带参数deflog(func):defwrapper():print('log开始...')func()print('log结束...')returnwrapper@logdeftest():print('te

系统 2019-09-27 17:54:36 2086