`
caozuiba
  • 浏览: 904740 次
文章分类
社区版块
存档分类
最新评论
文章列表
在源码分析之前补充了一些知识,详见上三篇文章的转载,我感觉比较有用。 下面是servlet的加载顺序。 web.xml 中 对象的加载顺序为:先 listener >> filter >> servlet >> spring 在spring security demo例子中,所有的配置文件有几个: 1、web.xml 这个是web项目的标准配置文件。 2、applicationContext-security.xml 这个是和spring security相关的配置文件 3、applicationContext-business.xml 这个 ...
ApplicationContext是Spring的核心,Context我们通常解释为上下文环境,我想用“容器”来表述它更容易理解一些,ApplicationContext则是“应用的容器”了;在Web应用中,我们会用到WebApplicationContext,WebApplicationContext继承自ApplicationContext;WebApplicationContext的初始化方式和BeanFactory.ApplicationContext有所区别,因为WebApplicationContext需要ServletContext实例,也就是说它必须拥有Web容器的前提下才能完 ...
Listener我是这样理解他的,他是一种观察者模式的实现:我们在web.xml中配置listener的时候就是把一个被观察者放入的观察者的观察对象队列中,当被观察者触发了注册事件时观察者作出相应的反应。在jsp/servlet中具体的实现是在web.xml中注册Listener,由Container在特定事件发生时呼叫特定的实现Listener的类。 总体上说servlet中有主要有3类事件既:Servlet上下文事件、会话事件与请求事件总共有8个listener(部分类容转载于http://ritaleo.iteye.com/blog/48751)接口,我们在web.xml中注册时对应上自 ...
SAX是Simple API for XML的缩写,它并不是由W3C官方所提出的标准,虽然如此,使用SAX的还是不少,几乎所有的XML解析器都会支持它。 与DOM比较而言,SAX是一种轻量型的方法。我们知道,在处理DOM的时候,我们需要读入整个的XML文档,然后在内存中创建DOM树,生成DOM树上的每个Node对象。当文档比较小的时候,这不会造成什么问题,但是一旦文档大起来,处理DOM就会变得相当费时费力。特别是其对于内存的需求,也将是成倍的增长,以至于在某些应用中使用DOM是一件很不划算的事(比如在applet中)。这时候,一个较好的替代解决方法就是SAX。 SAX在概念上与DOM完全 ...
在研究spring security的时候,里面提到了一个重要的感念就是命名空间,当时以为是spring的一个什么特殊功能,后来研究后才发现是xml的一个知识点,顺便又研究了一下这个知识,找到一篇文章感觉挺好,在此做个记录。 转自:http://bbs.actionscript3.cn/thread-1556-1-1.html 关于命名空间有很多人回避。认为太难。其实命名空间使用很普遍,在xml中也大量存在。初学as3者搞不清楚是因为关于这方面的教程少且as3帮助文件中也没有从基础讲起。而从一本厚厚的xml书籍中查询或者看官方网站的介绍又是一种非常苦的事情。这里我把我学习和理解的过程总结 ...
要学习spring security 我个人的学习步骤是首先运行一个demo,让自己有个感性认识,上一篇文章已经介绍过了,在此就不介绍了。 然后分析demo工作包括哪些包,每个包什么作用,然后分析原理和验证流程,最后详细研究配置文件等内容。 下面就是对源码分析的过程。 spring security 包内容: Core-spring-security-core.jar 包含了核心认证和权限控制类和接口, 提供核心的程序支持和最基本的API。是使用Spring Security所必须使用的。支持单独运行的应用, 提供远程客户端,方法(服务层)的安全和JDBC用户验证。 ...
这两天在看spring security3的一些内容,走了一些路,也耗费了一些时间,在这里做一下记录,能给大家一些帮助是最好不过的了。 spring 官方网站下载地址:http://www.springsource.org/download/community 有的说需要先注册,其实不需要,spring所有产品在这里都可以下载到。 在这里我们下载spring security 最新版本3.1 下载完成后的文档和demo说明如下: 包名称为spring-security-3.1.0.RELEASE.zip 里面有文档和一堆的jar包,文档目录就不介绍了。 下面介绍一下中文文档的说明, ...
这个是对以前做的那个音乐播放器的优化版本,因为以前把控制音乐播放放在了activity里,这个版本已经放在了service中,在服务中控制播放音乐,通过BroadcastReceiver传递一些数据,并且实现了在电话打过来时,停止播放音乐,打完电话继续播放。当然还有上一个版本的甩歌功能,用的是加速度传感器,控制音乐的播放暂停。最突出的功能算是加入了歌词同步的功能,真正实现了音乐歌词的同步播放。废话不多说看几张截图吧: 主界面还是和以前一样,点击某一首进入播放界面: 外观上看不出和以前版本的区别,实际是开启了一个服务控制播放,下面的上一首下一首等按钮随便点不会死。 最后看看歌词 ...
配置文件,这个再平常不过了。不管你用的服务器,还是开发时用到的各种开发工具,还有我们自己开发的网站/软件,配置文件都是很重要的。今天说的就是.net环境下的配置问题。 先来段程序,以connectionString为例: web.config中初始的配置: ? 1 2 3 <connectionStrings>      <add name="TestConnStr" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Readers;P ...
原文:C++ 惯用法: const 常量和字面量 作者:Breaker <breaker.zy_AT_gmail> C++ 中 const 关键字、常量和字面量的惯用法 关键字:const, enum, const_cast, const_iterator, mutable, 左值, 字面量 本质和非本质上的常量 字面量 (literal),是指在 C++ 中直接书写的数字、字符和字符串,如 0x3f, '+', 1.23e-15L, "hello", L"world",具体语法参考 [CPP_LANG] 4.3.1 字符 4. ...
对于进程而言,数据之间都是相互隔离的,而多线程则不同,不同的线程除了堆栈空间之外所有的数据都是共享的。和进程相比,多线程是一种多任务,多并发得工作方式。它的优点有:1,提高应用程序响应。2,使cup系统工作更加有效。3,改善程序结构。 Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h。 下面看一个简单的多线程的例子: 我是在虚拟机中的linux中编辑的,没法拷贝,所以就上图吧。 首先在命令行下 vi thread.c 上面启动了两个线程分别和主线程打印一句话。 然后在命令行中输入gc ...
选择排序和冒泡排序差不多,只是冒泡排序在发现比它小的时候就交换,而选择排序是只有在确定了最小的数据之后,才会发生交换。 选择排序的基本思想:第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换。先临时记录其位置,只有在一趟 循环完以后确定了最小的数据,才会发生交换。 public class ChoiceSort { public static void _choiceSort(Integer[] a) { if (a == null || a.length <= 0) { return ...
首先介绍一下View类,View类是android的一个超类,每一个View都有一个用于绘画的画布,这个画布可以进行任意的扩展。有的时候我们需要自定义VIew实现自己想要的视图。view、SurfaceView是游戏开发中经常用到的视图。 View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在UI主线程内更新画面,速度较慢。 SurfaceView:基于view视图进行拓展的视图类,更适合2D游戏的开发;是view的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比view快。 下面介绍一下View和SurfaceView区别: View: ...
前面实现了快速排序算法,其实这个算是难点的,如果是无序打乱的,用快速排序比较好。冒泡排序是从我们刚接触编程到找工作面试经常能遇见到的,虽然它的效率并不高,但是很重要,不知道你忘记怎么实现了没有? 首先看一下冒泡排序的实例图: 冒泡排序的过程很简单,就是将第一个记录的关键字和第二个记录的关键字进行比较,如果后面的比前面的小则交换,然后比较第二个和第三个,依次类推。比完一趟,最大的那个已经放到了最后的位置,这样就可以对前面N-1个数再循环比较。 /* * 冒泡排序 */ public class BubbleSort { public void bubble(In ...
说来感到惭愧,昨天看别人的博客上面一一讲了一些算法,其实这些算法在大学都学过,不过几乎全部忘记了。虽然现在做java上层开发基本上用不到算法,但是还是感觉算法是一种思想,是一种灵魂,所以又不仅翻开了严蔚敏老师的数据结构,一个一个把以前忘记的算法实现一遍。 快速排序的基本思想: 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。 先看一下这幅图: 把整个序列看做一个数组,把第零个位置看做中轴,和最后一个比,如果比它小交换,比它大不做任何处理;交换了以后再和小的那端比,比它小不交换,比他大交 ...
Global site tag (gtag.js) - Google Analytics