09 2013 档案

struts2整合spring的思路
摘要:struts2整合spring有有两种策略: 》sping容器负责管理控制器Action,并利用依赖注入为控制器注入业务逻辑组件。 》利用spring的自动装配,Action将自动会从Spring容器中获取所需的业务逻辑组件。 让Spring管理控制器: 我们知道struts2的核心控制器首先拦截到用户请求,然后将请求转发给对应的Action处理,在此过程中,Struts2将负责创建Action实例,并调用相应的方法,这个过程是固定的(除非改写struts2的核心控制器)。现在的情形是:我们已经把Action实例交由Spring容器来管理,而不是由struts2产生的。那么,核... 阅读全文

posted @ 2013-09-22 12:52 Arts&Crafts 阅读(842) 评论(0) 推荐(0) 编辑

struts2整合spring出现的Unable to instantiate Action异常
摘要:在struts2整合spring的时候,完全一步步按照官方文档上去做的,最后发现出现 Unable to instantiate Action,网上一搜发现很多人和我一样的问题,配置什么都没有错误,就是出现这个问题,其实这个原因很简单就是Spring容器没有启动,struts2容器到spring容器里面找Action的时候当然就找不到了。 问题就出在web.xml配置的问题,按照struts2官方文档上面步骤,在web.xml里面配置加入以下代码: contextConfigLocation /WEB-INF/applicationContext-*.xml,classpat... 阅读全文

posted @ 2013-09-21 15:51 Arts&Crafts 阅读(1949) 评论(0) 推荐(0) 编辑

图示Servelet请求过程
摘要:静态文件的请求处理过程: 客户端浏览器向WebServer发送一个HTTP请求,WebServer解析HTTP请求,然后找到对应的静态文件,读取文件的内容,然后返回给客户端浏览器HTML文本,浏览器解析HTML文本显示结果。请求-》读取-》返回。 Servlet请求属于动态文件请求,但是处理流程跟静态本质是一样的,无非就是最后产生 HTML文本的内容不是直接从已有的HTML文件读取出来,而是由Servlet产生的,最后再由Web服务器把产生的HTML文本返回给浏览器。 阅读全文

posted @ 2013-09-20 21:55 Arts&Crafts 阅读(246) 评论(0) 推荐(0) 编辑

CGlib使用案例
摘要:实际对象:1 public class RealObject {2 public void doSomething() {3 System.out.println("RealObject.doSomething()");4 }5 } CGlib代理: 1 /** 2 * CGlib代理 3 * 4 * @author Arts&Crafts 5 * 要让CGlibProxyFactory这个类的对象作为代理的话,必须实现MethodInterceptor 6 */ 7 public class CglibProxy implements Meth... 阅读全文

posted @ 2013-09-16 21:35 Arts&Crafts 阅读(376) 评论(0) 推荐(0) 编辑

Java动态代理
摘要:代理是基本的设计模式之一,它是为了提供额外的或不同的操作,而插入的用来代理"实际"对象的对象。这些操作通常涉及与”实际“对象的通信,因此代理通常充当着中间人的角色。下面的一个用例展示代理结构的简单示例。 接口:/** * 接口 * @author Arts&Crafts * */public interface Interface { void doSomething(); void somethingElse(String arg);} 实际类: 1 /** 2 * 实际类 3 * @author Arts&Crafts 4 * 5 */ 6 public 阅读全文

posted @ 2013-09-16 20:51 Arts&Crafts 阅读(251) 评论(0) 推荐(0) 编辑

计算机书籍处理了
摘要:要毕业了买的书太多了,准备卖掉以后可能就用不上的书。以后搞Java,C++书籍就用不上了,这些C++书都是大二买的,不过一直都保存着,没翻过,绝对新的。《C++程序设计语言》原价99C++语言之父写的,全新的,买的时候在实体店花了99买的,现在20块处理。《VisualC++2010入门经典》原价128也是实体店买的,看了两页,全新的。也没翻过也20快处理了。还有《C#高级编程第六版》原价158《LINQ高级编程》原价48全部9成新一起20块钱。还有几本Python的书籍《HeadFirstPython》《Python计算域编程实现多媒体方法》不用怀疑全是新的,当时买了是为了进阶Python. 阅读全文

posted @ 2013-09-16 16:25 Arts&Crafts 阅读(173) 评论(0) 推荐(0) 编辑

Spring资源访问
摘要:创建Spring容器时通常需要访问XML配置文件,除此之外,我们可能有大量地方需要访问各种类型的文件,二进制——Spring把这些文件,二进制流等统称为资源。 在 SUN所提供的标准API里,资源访问通常由java.net.URL和文件IO完成,尤其是当我们需要访问来自网络的资源时,通常会选择URL类。 URL类可以处理一些常规的资源访问问题,但依然不能很好地满足所有底层资源的访问需要,比如,暂时还无法在类加载路径,或相对于ServletContext的路径中访问资源,虽然Java允许使用特定的如URL前缀注册新的处理类(例如已有http:前缀的处理类),但是这样做通常比较复杂,而且U... 阅读全文

posted @ 2013-09-15 21:36 Arts&Crafts 阅读(949) 评论(0) 推荐(0) 编辑

初谈使用Spring的感受
摘要:我记得刚开始学Spring的时候,只是很自然的把它当做一个类似其他J2EE的框架来学习。那时候学Spring很大一部分是为了以后面试需要,因为毕竟搞Java的,你说不会Spring这都有点说不过去。当时学完能搭个S2SH框架,并用S2SH开发几个系统,就把Spring扔在一边,因为毕竟还在学校,基本也用不上。本来那时候买了一本讲解Spring源码书的,想研究研究Spring源码,大家都说"Spring源码是一顿大餐",当时也想去尝尝。不过后来突然对Python感兴趣了,玩了一个学期Python,也就很少碰Java了,自然吃"Spring"大餐的事也就搁置 阅读全文

posted @ 2013-09-15 20:37 Arts&Crafts 阅读(305) 评论(0) 推荐(0) 编辑

Java I/O编程思路
摘要:我们在开发过程中不可避免遇到字符编码问题。遇到乱码问题的时候一定要保持清晰,网上很多关于字符编码集,这里我也就不介绍各种编码,这里我介绍自己编程中遇到字符编码问题时的思路。 乱码问题 无非就是 字节 与 字符 转换时出现问题。 下面一张图显示处理数据的过程: 上面过程中 最复杂的就是 编码 与 解码 两个过程,幸运的是 现在的高级语言都已经帮我们把整个步骤做了。 而 存储 与 读取这两个步骤之中我们最常见的就是 读取 问题,因为存储非常简单,而读取就要考虑到字符编码的问题了。 我们知道在C语言中读取文件最基本的方法是read(int fd, void *bu... 阅读全文

posted @ 2013-09-13 22:52 Arts&Crafts 阅读(275) 评论(0) 推荐(0) 编辑

SpEL快速入门
摘要:Spring表达式语言(简称SpEL)是一种鱼JSP2 EL功能类似的变道时语言,它可以在运行时查询和操作对象图。与JSP 2的EL相比,SpEL功能更加强大,它甚至支持方法的调用和基本字符串模板。 SpEL可以独立Spring容器使用——只是当初简单的表达式语言来使用;也可以在Annotation或XML配置中使用SpEL,这样可以充分利用SpEL简化Spring Bean的配置。 Spring的SpEL可以单独使用,可以使用SpEL对表达式计算,求值。SpEL主要提供如下两个重要的接口。 》ExpressionParser:该接口的实例负责解析一个SpEL表达式,返回一个Expr... 阅读全文

posted @ 2013-09-13 17:09 Arts&Crafts 阅读(1765) 评论(0) 推荐(1) 编辑

Spring ApplicationContext的事件机制
摘要:ApplicationContext的事件机制是观察者设计模式的实现,通过 ApplicationEvent 类和 ApplicationListener 接口,可以实现 ApplicationContext 的事件处理。如果容器中有一个 ApplicationListener Bean 每当 ApplicationContext 发布 ApplicationEvent时,ApplicationListener Bean将自动触发。 Spring的事件框架有如下两个重要成员。 》ApplicationEvent: 容器事件,必须由 ApplicationContext发布。 》App... 阅读全文

posted @ 2013-09-13 10:34 Arts&Crafts 阅读(7224) 评论(0) 推荐(1) 编辑

畅谈Spring设计哲学
摘要:自己从学习编程开始到现在有一个习惯:一直喜欢把软件开发中的技术和思路放到实际生活中去类比考虑。自己平常也喜欢开一些关于软件哲学的书籍,事实证明这些书籍对自己的学习新技术很有很大的帮助。数学是一切学科的基础,也是一切学科的顶峰,如果有那个学科能超越这个顶峰,我认为是哲学。高中时候一直喜欢看奇幻类的小说,所有小说中的主人公最后都是要领悟"道"的,而这个"道"就是 “哲学”。只有领悟道 自己的 道 后才能创造出自己强大的武技。哲学 讲究的是 道 ,道 是 路 也就是方向的意思。我们只有确定方向了,才能有所成就。 “大道至简”一直是我信奉的一句话:大道理(指基本 阅读全文

posted @ 2013-09-12 22:49 Arts&Crafts 阅读(872) 评论(0) 推荐(0) 编辑

Spring ApplicationContext的国际化支持
摘要:ApplicationContext接口继承MessageSource接口,因此具备国际化功能。下面是MessageSource接口定义的三个国际化方法。 》String getMessage(String code, Object[] args, Locale loc) 》String getMessage(String code, Object[] args, String default, Locale loc) 》String getMessage(MessageSourceResolvable resolvable, Locale locale) ApplicationC... 阅读全文

posted @ 2013-09-12 19:39 Arts&Crafts 阅读(904) 评论(0) 推荐(0) 编辑

SQL中 WHERE与HAVING的区别
摘要:SQL语句中的Having子句与where子句之区别在说区别之前,得先介绍GROUP BY这个子句,而在说GROUP子句前,又得先说说“聚合函数”——SQL语言中一种特殊的函数。例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。如:SELECT SUM(population) FROM vv_t_bbc ; 这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有国家的总人口数。 而通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。当你指定 GROU... 阅读全文

posted @ 2013-09-10 19:49 Arts&Crafts 阅读(361) 评论(0) 推荐(0) 编辑

Hibernate的查询语言之HQL(二)——Hibernate查询的from字句
摘要:from 是最简单的HQL语句,也是最基本的HQL语句。from 关键字后紧跟持久化类的类名。例如:1 from Person 表明从Person持久化类中取出全部的实例。 大部分时候,推荐位该Person的每个实例取一个别名。例如:1 from Person as p 上面的as是可选的,但为了增加可读性,建议保留。 from 后面还可以同时出现多个持久化类,此时将产生一个笛卡尔积或跨表连接,但实际上这种用法很少使用,因为通常我们可能需要使用跨表连接时,可以考虑使用隐士连接或者显示连接,而不是直接在from后紧跟多个表名。 关联和连接 当程序需要从多个数据表中取得数据时,... 阅读全文

posted @ 2013-09-10 19:28 Arts&Crafts 阅读(1751) 评论(0) 推荐(0) 编辑

初窥struts2(二)OGNL表达式
摘要:Struts2总结 Struts2完整的处理流程: 1 客户端发送请求,交给struts2控制器(StrutsPrepareAndExecuteFilter)。 2 Filter控制器进行请求过滤,如果是/actionName.action,/actionName(默认)两种格式请求,执行后给Action处理。 3 Filter控制器创建一个ValueStack对象,讲Action对象压入栈顶,将request,session,application等对象装入Context区域。 4 Filter控制器执行拦截器的前期处理(默认调用defaultStack拦截器栈)。 5 Filter控制执. 阅读全文

posted @ 2013-09-10 16:07 Arts&Crafts 阅读(456) 评论(1) 推荐(0) 编辑

Hibernate的查询语言之HQL(一)——快速入门
摘要:Hibernate提供异常强大的查询体系,使用Hibernat有多种查询方式可以选择:即可以使用Hibernate的HQL查询,也可以使用条件查询,甚至可以使用原生的SQL查询语句。不仅如此, Hibernate还提供了一种数据过滤功能,这些都用于筛选目标数据。 Hibernate是 Hibernate Query Language的缩写,HQL的语法很像SQL,但HQL是一种面向对象的查询语言。SQL的操作对象是数据表,列表数据库对象,而HQL的操作对象是类,实例,属性等。 HQL是完全面向对象查询语言,因此可以支持继承,多态等特性。 HQL查询依赖于Query类,每个Query实... 阅读全文

posted @ 2013-09-10 16:06 Arts&Crafts 阅读(535) 评论(0) 推荐(0) 编辑

Hibernate的批量处理
摘要:Hibernate完全以面向对象的方式操作数据库,当程序员以面向对象的方式操作持久化对象时,将自动转换为对数据的操作。例如我们Session的delete()方法,来删除持久化对象,Hibernate将负责删除对应的数据记录;当我们执行持久化对象的setter方法时,Hibernate将自动转换为底层的update语句,修改数据库的对应记录。 问题是:如果我们需要同时更新100000条记录,是不是要逐一加载100000条记录,然后依次调用setter方法——这样不仅繁琐,数据访问的性能也十分糟糕。为了面对这种批量处理的场景,Hibernate提供了批量处理的解决方案。下面分别从批量插入,... 阅读全文

posted @ 2013-09-09 21:10 Arts&Crafts 阅读(533) 评论(0) 推荐(0) 编辑

Struts2 DMI的使用
摘要:Struts2的Action类中可以放置多个方法并在struts.xml中配置供页面调用。只要方法符合execute()方法的标准即返回类型是String就可以了。 同一个Action多个方法调用的方式中有三种方法 1.在标签中有一个method的属性可以配置自定义的方法。 2.使用DMI方法。 3.使用通配符 今天我们着重介绍第两种方法的使用: 第一种方法的弊端是你在Action类中定义多少方法就需要使用多少个标签,这样会导致struts.xml文件越来越大。 第二种方法的使用: Action类的: 1 package test.struts2.DMI; 2 3 import com... 阅读全文

posted @ 2013-09-05 19:35 Arts&Crafts 阅读(631) 评论(0) 推荐(0) 编辑

JSP EL表达式的运用
摘要:EL表达式的基本使用 1访问bean属性 第一种方式${user.name} 容器一次从pageContext,request,session,application中查找(实际上是调用request.getAttribute("user"))绑定为"user"的对象,如果找到了则不再向下继续查找,找到了以后调用该对象的getName方法,最后将结果输出。如果都找不到则不输出。 当然我们也可以制定查找的范围: 表达式语言包含了如下11个内置对象: 》pageContext:代表该页面的pageContext对象,与JSP的pageContext内置对象相 阅读全文

posted @ 2013-09-05 18:14 Arts&Crafts 阅读(339) 评论(0) 推荐(0) 编辑

Struts2+JQuery发送Ajax请求
摘要:Action类代码: 1 package com.example.action; 2 3 public class JsonAction { 4 private String name; 5 private int id; 6 7 public String test() { 8 name = "hello world"; 9 id = 100;10 return "success";11 }12 13 public String getName() {14 return name;1... 阅读全文

posted @ 2013-09-05 16:24 Arts&Crafts 阅读(548) 评论(0) 推荐(0) 编辑

完整的struts.xml文件骨架
摘要:完整的struts.xml文件骨架可以直接拿来用,修改一下就可以啦。 1 2 5 6 7 8 9 10 11 12 13 17 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34... 阅读全文

posted @ 2013-09-04 21:10 Arts&Crafts 阅读(311) 评论(0) 推荐(0) 编辑

Ant快速入门(四)-----Ant的任务(Task)
摘要:到目前为止,我们已经掌握了Ant生成文件的基本结构,以及,,等元素的配置方式。而元素的核心就是task,即每个由一个或多个task组成。 Ant提供了大量核心的task和可选的task ,除此之外,Ant还允许用户定义自己的task,这大大扩展了Ant的功能。 下面介绍几个常用的核心 task 》javac: 用于编译一个或多个Java源文件,通常需要srcdir和destdir两个属性,用于指定Java源文件的位置和编译后class文件的保存位置。 》java: 用于运行某个Java类,通常需要classname属性,用于指定需要运行那个类。 》jar: 用于生成JA... 阅读全文

posted @ 2013-09-02 15:52 Arts&Crafts 阅读(859) 评论(1) 推荐(0) 编辑

Ant快速入门(三)-----定义生成文件
摘要:适应Ant的关键就是编写生成文件,生成文件定义了该项目的各个生成任务(以target来表示,每个target表示一个生成任务),并定义生成任务之间的依赖关系。 Ant生成文件的默认名为build.xml,也可以取其他的名字。但如果为该生成文件起其他名字,将意味着要将该文件名作为参数传给Ant工具。生成文件可以放到项目的任何位置,但通常做法是放到项目的顶层目录中,这样有利于保持项目的简介和清晰。 下面是一个典型的项目层次结构 :该文件夹存放整个项目的全部资源 |—src: 存放源文件,各种配置文件的文件夹 |—classes: 存放编译后的class文件的文件夹... 阅读全文

posted @ 2013-09-02 15:37 Arts&Crafts 阅读(963) 评论(0) 推荐(0) 编辑

Ant快速入门(二)-----使用Ant工具
摘要:使用Ant非常简单,当正确安装Ant后,只要输入ant或ant.bat即可. 如果运行ant命令时没有指定任何参数,Ant会在当前目录下搜索build.xml文件。如果找到了就以该文件作为生成文件,并执行默认的target 如果运行时使用 -find或者-s 选项(这两个选项的作用完全相同),Ant就会到上级目录中搜索生成文件,直至到达文件系统的根路径。 要想让Ant使用其他生成文件,可以使用 -buildfile选项,其中-buildfile可以使用 -file或-f来代替,这三个选项的作用完全一样。例如使用如下命令:1 ant -f a.xml2 ant -file b.xml ... 阅读全文

posted @ 2013-09-01 21:37 Arts&Crafts 阅读(432) 评论(0) 推荐(0) 编辑

Ant快速入门(一)-----Ant介绍
摘要:Ant是一种基于Java的生成工具。从作用上来看,它类似于C编程(UNIX平台上使用比较多)的Make工具,C/C++项目经常使用Make工具来管理整个项目的编译,生成 Make使用Shell命令来定义完成任务,并定义任务之间的依赖关系,以便他们总是按照必须的顺序来执行。 Make工具主要有如下两个缺陷: 》Make工具的本质还是依赖UNIX平台的Shell语言,所以Make工具无法跨平台 》Make工具生成文件的格式比较严格,容易导致错误 Ant工具是基于Java语言的生成工具,所以具有跨平台的能力;而且Ant工具使用XML文件来编写生成文件,因而具有更好的适应性。 由此可见... 阅读全文

posted @ 2013-09-01 21:01 Arts&Crafts 阅读(688) 评论(0) 推荐(1) 编辑

配置Tomcat数据源
摘要:Tomcat提供了 两种配置数据源的方式,这两种方式所配置的数据源访问范围不同:一种数据源可以让所有的Web运用都访问,被称为全局数据源;另一种只能在单个Web运用中访问,被称为局部数据源。 不管配置那种数据源,都需要提供特定的数据库JDBC驱动。本书以MySQL为例来配置数据源,所以读者必须将MySQL的JDBC驱动程序复制到Tomcat的lib路径下 局部数据源无需修改系统的配置文件,之需要修改用户自己的Web部署文件,不会造成系统的混乱,而且数据源被封装在一个Web运用之内,防止被其他的Web运用访问,提供了更好的封装性。 局部数据源只与特定的Web运用相关,因此在该... 阅读全文

posted @ 2013-09-01 17:14 Arts&Crafts 阅读(321) 评论(0) 推荐(0) 编辑

Tomat部署Web运用
摘要:在Tomcat部署Web运用的方式主要有如下几种 》利用Tomcat的自动部署 》利用控制台部署 》增加自定义的Web部署文件 》修改server.xml问价部署Web运用 利用Tomcat自动部署的方式最简单,也是最常用的方式,我们只要将一个Web运用复制到Tomcat的Webapps下,系统自动将会把该运用部署到Tomcat中。 利用Tomcat为我们提供的Web控制台进行部署: 单击 "Deploy" 按钮,将会看到Tomcat的 webapps 目录下多了一个名为 demo 的文件夹,该文件夹的内容和 D:\webapps\ 路径下 webDemo文件夹的内容完全一 阅读全文

posted @ 2013-09-01 10:14 Arts&Crafts 阅读(250) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示