随笔分类 -  SSH

摘要:只要做过WEB开发人对于“404”已经再熟悉不过了吧。当我们访问的资源不存在时,它就会跑出来跟你打招呼啦。但是默认情况下,404页面比较简陋,不是很友好。而且一般用户不知道404是个神马东东,还以为是程序写的有问题呢。这样一来用户体验就打折扣了。所以通常情况下,我们都需要对这些常见的错误进行处理。... 阅读全文
posted @ 2014-10-29 17:12 刘水镜 阅读(1256) 评论(3) 推荐(0) 编辑
摘要:项目用的是SSH基础框架,其中有一些信息很类似,但又不尽相同。如果每一个建一个实体的话,那样实体会太多,如果分组抽象,然后继承,又不是特别有规律。鉴于这种情况,就打算让用户自己配置要添加的字段,然后生成对应的表。 需要动态配置的部分实例: 上图只是一小部分,一个一个组合起来大概有三百多... 阅读全文
posted @ 2014-10-20 10:45 刘水镜 阅读(1780) 评论(0) 推荐(0) 编辑
摘要:很早之前就想写一篇关于SSH整合的博客了,但是一直觉得使用SSH的时候那么多的配置文件,严重破坏了我们代码整体性,比如你要看两个实体的关系还得对照*.hbm.xml文件,要屡清一个Action可能需要对照applicationContext*.xml和struts*.xml文件。总之过多的配置文件坏... 阅读全文
posted @ 2014-08-19 14:41 刘水镜 阅读(1859) 评论(2) 推荐(4) 编辑
摘要:前面说完了Spring、Hibernate,很自然今天轮到struts了。struts的核心原理就是通过拦截器来处理客户端的请求,经过拦截器一系列的处理后,再交给Action。下面先看看struts官方的工作原理图: 图1 struts原理图 简单分析一下:首先客户端发来HttpServle... 阅读全文
posted @ 2014-07-31 01:42 刘水镜 阅读(1132) 评论(3) 推荐(0) 编辑
摘要:之前写了Spring的实现原理,今天我们接着聊聊Hibernate的实现原理,这篇文章只是简单的模拟一下Hibernate的原理,主要是模拟了一下Hibernate的Session类。好了,废话不多说,先看看我们的代码:package com.tgb.hibernate;import java.la... 阅读全文
posted @ 2014-07-25 08:05 刘水镜 阅读(1321) 评论(1) 推荐(1) 编辑
摘要:之前写了一篇关于IOC的博客——《Spring容器IOC解析及简单实现》,今天再来聊聊AOP。大家都知道Spring的两大特性是IOC和AOP,换句话说,容器的两大特性就是IOC和AOP。IOC负责将对象动态的注入到容器,从而达到一种需要谁就注入谁,什么时候需要就什么时候注入的效果,可谓是招之则来,... 阅读全文
posted @ 2014-07-16 16:52 刘水镜 阅读(1268) 评论(5) 推荐(3) 编辑
摘要:最近一段时间,“容器”两个字一直萦绕在我的耳边,甚至是吃饭、睡觉的时候都在我脑子里蹦来蹦去的。随着这些天一次次的交流、讨论,对于容器的理解也逐渐加深。理论上的东西终归要落实到实践,今天就借助Spring容器实现原理,简单说说吧。简单的说,Spring就是通过工厂+反射将我们的bean放到它的容器中的... 阅读全文
posted @ 2014-06-30 08:08 刘水镜 阅读(1429) 评论(1) 推荐(1) 编辑
摘要:前几天向大家介绍了一种用工具类生成数据表的方法,不过之前的方法需要使用一个跟项目关系不大的工具类。不免让人觉得有些多余,所以呢,今天再向大家介绍一种方法。即Hibernate与Spring配合生成表结构。 首先,要将Spring的信息配置的web.xml,配置Spring用于初始化容器对象的监听... 阅读全文
posted @ 2014-05-23 12:05 刘水镜 阅读(1873) 评论(1) 推荐(0) 编辑
摘要:今天说点基础的东西,说说如何通过SchemaExport跟Hibernate的配置文件生成表结构。其实方法非常简单,只需要两个配置文件,两个Java类就可以完成。 首先要生成表,得先有实体类,以Person.java为例:/** * * @author Administrator * @hib... 阅读全文
posted @ 2014-05-05 08:29 刘水镜 阅读(1369) 评论(4) 推荐(4) 编辑
摘要:在使用Hibernate的时候,我们通常都会用的Configuration、SessionFactory、Session、Transaction、Query和Criteria等接口。通过这些接口可以,不仅可以存储与取出持久化对象,还可以对事务进行管理。下面对着几个接口一一介绍: 几个接口之间的层次关系如下图: Configuration: Configuration是Hibernate的入口,负责将配置文件信息加载到内存,并创建一个SessionFactory对象,把读入的配置信息加载到SessionFactory对象的内存里。 特点: Configuration对象的作用是除... 阅读全文
posted @ 2014-02-22 19:20 刘水镜 阅读(774) 评论(0) 推荐(0) 编辑
摘要:Session的save()方法用来将一个临时对象转变为持久化对象,也就是将一个新的实体保存到数据库中。通过save()将持久化对象保存到数据库需要经过以下步骤:1,系统根据指定的ID生成策略,为临时对象生成一个唯一的OID;2,将临时对象加载到缓存中,使之变成持久化对象;3,提交事务时,清理缓存,利用持久化对象包含的信息生成insert语句,将持久化对象保存到数据库。 OK,下面来看一个实例: //创建SessionFactory Configuration config = new Configuration(); ServiceRegistr... 阅读全文
posted @ 2014-02-19 20:32 刘水镜 阅读(4013) 评论(0) 推荐(0) 编辑
摘要:前面写了几篇关于SSH的博客,但不是Struts就是Spring,Hibernate还从来没写过呢。说好是SSH的,怎么可以光写那两个,而不写Hibernate呢对吧。今天就先说说Hibernate对象的三种状态,Hibernate对象有三种状态,分别是:临时态(Transient)、 持久态(Persistent)、游离态(Detached)。 临时状态:是指从对象通过new语句创建到被持久化之前的状态,此时对象不在Session的缓存中。 处在此状态的对象具备以下特点: 1,不在Session缓存中,不与任何Session实例相关联。 2,在数据库中没有与之对应的记录。 通常在... 阅读全文
posted @ 2014-02-11 08:14 刘水镜 阅读(1851) 评论(0) 推荐(1) 编辑
摘要:Struts、Hibernate、Spring这类的框架给我们开发带来非常大的好处,让我们更加快速、有效的开发。所以我们在开发中通常都会用到各种框架,每个框架都有很多jar包,每个jar都有各自不同的功能。开发不同的功能用到的jar也不尽相同,所以当我们用到相关框架的时候,并不是把它所有的jar都引入系统。那么怎么确定自己将会用到框架中的哪些jar包呢?这就需要我们知道框架中每个jar都是干什么的。今天我先向大家介绍一下Spring的相关jar包。Follow me! spring.jar中包含除了 spring-mock.jar里所包含的内容外其它所有jar包的内容(因为只有在开发环境下.. 阅读全文
posted @ 2013-12-24 08:26 刘水镜 阅读(1593) 评论(1) 推荐(2) 编辑
摘要:Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作。今天一起学习一下Spring的事务管理。Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。Da... 阅读全文
posted @ 2013-12-17 17:39 刘水镜 阅读(1355) 评论(1) 推荐(1) 编辑
摘要:上传文件在一个系统当中是一个很常用的功能,也是一个比较重要的功能。今天我们就一起来学习一下Struts2如何上传文件。今天讲的上传文件的方式有三种:1,以字节为单位传输文件;2,Struts2封装的一种方式;3,以字符的方式传输文件。 其实这三种方式都差不多,都是将文件先从客户端一临时文件的形式,传输到服务器的临时文件夹下,然后在将该临时文件复制到我们要上传的目录。另外,有一个需要注意,就是上传过程中产生的这些临时文件,Struts2不会自动清理,所以我们需要手动清理临时文件,这一个下面的代码中有提到。 用Action来完成我们上传的核心功能:package com.action;im... 阅读全文
posted @ 2013-12-11 08:12 刘水镜 阅读(1013) 评论(1) 推荐(0) 编辑
摘要:什么是拦截器拦截器(Interceptor)是Struts 2的一个强有力的工具,有许多功能都是构建于它之上,如国际化(前两篇博客介绍过)、转换器,校验等。拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。说到拦截器有一个东西不能落下——拦截器链(Interceptor Chain,在Struts 2中称为拦截器栈Interceptor Stack)。拦截器链就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截 阅读全文
posted @ 2013-12-04 10:43 刘水镜 阅读(2596) 评论(0) 推荐(1) 编辑
摘要:前几天发了一篇Struts国际化的博客——《菜鸟学习SSH(二)——Struts2国际化手动切换版》,有网友提了一个意见,见下图: 于是就有了下面修改的版本: web.xml index struts2 org.apache.struts2.dispat... 阅读全文
posted @ 2013-11-27 21:11 刘水镜 阅读(1635) 评论(0) 推荐(0) 编辑
摘要:国际化(internationalization,i18n)和本地化(localization,l10n)指让产品(出版物,软件,硬件等)能够适应非本地环境,特别是其他的语言和文化。程序在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面。 国际化原理: 国际化资源文件:用不同国家的语言描述相同的信息,并放在各自对应的.properties属性文件中,程序根据运行时环境决定加载哪个文件。 国际化主要通过以下类完成: java.util.Locale:对应一个特定的国家/区域、语言环境。 java.util.ResourceBundle:用于加载一个资源包。 I18nIntercep.. 阅读全文
posted @ 2013-11-20 08:05 刘水镜 阅读(2398) 评论(4) 推荐(1) 编辑
摘要:从今天开始,一起跟各位聊聊java的三大框架——SSH。先从Struts开始说起,Struts对MVC进行了很好的封装,使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。今天通过一个简单的例子来说说Struts。 登录页面: 这里面没啥东西,主要就是将action命名成“.do”的形式,让Struts通过配置文件来执行相应操作。Insert title here 用户: 密码: PS:表单中的name值... 阅读全文
posted @ 2013-10-07 10:23 刘水镜 阅读(3212) 评论(4) 推荐(3) 编辑

点击右上角即可分享
微信分享提示