目录贴:跟我学Shiro目录贴身份验证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。在shiro中,用户需要提供principals(身份)和credentials(证明)给shiro,从而应用能验证用户身份:principals:身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个principals,但只有一个Primaryprincipal
系统 2019-08-29 22:00:47 1961
Terms数据磁盘文件存储细节从这篇开始,已经涉及到倒排索引表的信息存储问题了。我们都知道倒排索引表中的Dictionary有许多不同的terms组成,Lucene关于这些terms数据的存储,就放在磁盘的.tii和.tis文件中。★.tii词典索引文件.tis词典数据文件1、tii保存了tis中每隔IndexInterval个词的位置信息,这是为了加快对词典文件tii中词的查找速度具体结构如下:TermInfoIndex(.tii)-->TIVersio
系统 2019-08-29 21:59:40 1961
在前面我写了《如何在spring框架中解决多数据源的问题》,通过设计模式中的Decorator模式在spring框架中解决多数据源的问题,得到了许多网友的关注。在与网友探讨该问题的过程中,我发现我的方案并不完善,它只解决了一部分问题。总结多数据源的问题,其实它需要分为以下三种情况:各个数据源的数据结构不同、各个数据源的数据结构相同、各个数据源的数据结构部分相同又有部分不同。对于第二种情况,各个数据源的数据结构相同,我们使用一个sessionFactory,
系统 2019-08-29 21:58:54 1961
献给初学者,老鸟别扔砖头编写SQL语句一直都是比较纳闷的事,编写时没有一个良好的检错机制,只能运行时才能发现错误,特别是关联的表一多起来,思绪不免会被搞得晕头转向最后不知迷失在什么地方了。近日偶然发现并不是M$没有提供一个良好的傻瓜化界面给我们这帮懒兄懒弟们使用,而是我们自己视而不见,那就是SQLServer中的视图管理器,它不仅可以让我们方便地在多个表中进行查询而不去理会他们之间的关系(当然多个表之间必须存在必要的关系),还可以用它进行别名、排序、条件等
系统 2019-08-29 21:55:37 1961
一个JTable的例子importjava.awt.BorderLayout;importjava.awt.Dimension;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjavax.swing.JFrame;importjavax.swing.JOptionPane;importjavax.swing.JScrollPane;importjavax.s
系统 2019-08-12 09:30:37 1961
第二篇《程序员必知8大排序3大查找(二)》《程序员必知8大排序3大查找(三)》每天都在叫嚣自己会什么技术,什么框架,可否意识到你每天都在被这些新名词、新技术所迷惑,.NET、XML等等技术固然诱人,可是如果自己的基础不扎实,就像是在云里雾里行走一样,只能看到眼前,不能看到更远的地方。这些新鲜的技术掩盖了许多底层的原理,要想真正的学习技术还是走下云端,扎扎实实的把基础知识学好,有了这些基础,要掌握那些新技术也就很容易了。要编写出优秀的代码同样要扎实的基础,如
系统 2019-08-12 09:30:03 1961
1.ajax提交后输出:{"status":1,"info":"\u5bc6\u7801\u4fee\u6539\u6210\u529f!"}而没有提交到指定的页面.2.点击修改,发现验证的样式飘到最上方去了,后来才发现,也是一个逗号引发的错误.错误标注如下:对应的错误:1.art.dialog({title:'修改成功',content:responseText.info,width:300,height:100,//此处的逗号引发了IE6下ajax提交
系统 2019-08-12 09:29:27 1961
概述模块Pickle实现了对一个Python对象结构的二进制的序列化和反序列化。即当Python程序持续运行一些字符串、列表字典、甚至自定义的类等数据对象,需要持久化存储,即存储在磁盘中,防止运行在内存中,因断电等情况丢失数据。那么Pickle模块就派上用场了,它可以将对象转换为一种可以传输或存储的格式。python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过
系统 2019-09-27 17:56:58 1960
try:print('1111')#1/0print('2222')#name#2+'3'#[][3]#{}['k']ret=int(input('number>>>'))print(ret*'*')exceptValueError:print('输入的数据类型有误')exceptException:print('你错了,老铁')else:print('没有异常的时候执行else中的代码')print('===========')deffunc():try
系统 2019-09-27 17:55:50 1960
Python算术运算符以下假设变量a为10,变量b为20:运算符描述实例+加-两个对象相加a+b输出结果30-减-得到负数或是一个数减去另一个数a-b输出结果-10*乘-两个数相乘或是返回一个被重复若干次的字符串a*b输出结果200/除-x除以yb/a输出结果2%取模-返回除法的余数b%a输出结果0**幂-返回x的y次幂a**b输出结果20//取整除-返回商的整数部分9//2输出结果4,9.0//2.0输出结果4.0以下实例演示了Python所有算术运算符
系统 2019-09-27 17:55:21 1960