菜鸟学SSH
文章平均质量分 59
分享SSH的使用技巧及心得。
刘水镜
【欢迎阅读我的最新专栏——《SpringBoot趣味私房课》https://www.imooc.com/read/75】【欢迎加入「开发者」技术交流群:168965372】【群链接:https://jq.qq.com/?_wv=1027&k=Inxd5Aa9】
展开
-
菜鸟学SSH——Hibernate动态模型+JRebel实现动态创建表
项目用的是SSH基础框架,其中有一些信息很类似,但又不尽相同。如果每一个建一个实体的话,那样实体会太多,如果分组抽象,然后继承,又不是特别有规律。鉴于这种情况,就打算让用户自己配置要添加的字段,然后生成对应的表。需要动态配置的部分实例:上图只是一小部分,一个一个组合起来大概有三百多。每一项对应一个实体,显然不好,就算是按照规律归归类还是有不少,于是就想到了在运行期来确定这些...原创 2014-10-20 10:39:11 · 5491 阅读 · 9 评论 -
菜鸟学SSH——基于注解的SSH将配置精简到极致
很早之前就想写一篇关于SSH整合的博客了,但是一直觉得使用SSH的时候那么多的配置文件,严重破坏了我们代码整体性,比如你要看两个实体的关系还得对照*.hbm.xml文件,要屡清一个Action可能需要对照applicationContext*.xml和struts*.xml文件。总之过多的配置文件坏破坏代码的整体性,会打乱代码的连续性,因为很多情况下你需要一边看Java代码,一边看xml的配置,采...原创 2014-08-19 08:22:27 · 29670 阅读 · 32 评论 -
菜鸟学SSH——Struts2内部是如何工作的
前面说完了Spring、Hibernate,很自然今天轮到struts了。struts的核心原理就是通过拦截器来处理客户端的请求,经过拦截器一系列的处理后,再交给Action。下面先看看struts官方的工作原理图:图1 struts原理图简单分析一下:首先客户端发来HttpServletRequest请求,传递给FilerDispatcher(ActionMapper是访...原创 2014-07-31 01:38:11 · 4349 阅读 · 14 评论 -
菜鸟学SSH——简单模拟Hibernate实现原理
之前写了Spring的实现原理,今天我们接着聊聊Hibernate的实现原理,这篇文章只是简单的模拟一下Hibernate的原理,主要是模拟了一下Hibernate的Session类。好了,废话不多说,先看看我们的代码:package com.shuijing.hibernate;import java.lang.reflect.Method;import java.sql.Conne...原创 2014-07-25 08:02:04 · 5324 阅读 · 18 评论 -
菜鸟学SSH——Spring容器AOP的实现原理——动态代理
之前写了一篇关于IOC的博客——《Spring容器IOC解析及简单实现》,今天再来聊聊AOP。大家都知道Spring的两大特性是IOC和AOP。IOC负责将对象动态的注入到容器,从而达到一种需要谁就注入谁,什么时候需要就什么时候注入的效果,可谓是招之则来,挥之则去。想想都觉得爽,如果现实生活中也有这本事那就爽歪歪了,至于有多爽,各位自己脑补吧;而AOP呢,它实现的就是容器的另一大好处了,就是可...原创 2014-07-16 16:16:21 · 9390 阅读 · 11 评论 -
菜鸟学SSH——Spring容器IOC解析及简单实现
最近一段时间,“容器”两个字一直萦绕在我的耳边,甚至是吃饭、睡觉的时候都在我脑子里蹦来蹦去的。随着这些天一次次的交流、讨论,对于容器的理解也逐渐加深。理论上的东西终归要落实到实践,今天就借助Spring容器实现原理,简单说说吧。简单的说,Spring就是通过工厂+反射将我们的bean放到它的容器中的,当我们想用某个bean的时候,只需要调用getBean("beanID")方法。原理...原创 2014-06-30 08:03:39 · 6682 阅读 · 12 评论 -
菜鸟学SSH——Hibernate与Spring配合生成表结构
前几天向大家介绍了一种用工具类生成数据表的方法,不过之前的方法需要使用一个跟项目关系不大的工具类。不免让人觉得有些多余,所以呢,今天再向大家介绍一种方法。即Hibernate与Spring配合生成表结构。首先,要将Spring的信息配置的web.xml,配置Spring用于初始化容器对象的监听器。web.xml<?xml version="1.0" encoding="UTF-...原创 2014-05-23 11:59:10 · 3343 阅读 · 17 评论 -
菜鸟学SSH——Hibernate之SchemaExport+配置文件生成表结构
今天说点基础的东西,说说如何通过SchemaExport跟Hibernate的配置文件生成表结构。其实方法非常简单,只需要两个配置文件,两个Java类就可以完成。首先要生成表,得先有实体类,以Person.java为例:/** * * @author Administrator * @hibernate.class table="T_Person" */public c...原创 2014-05-05 08:25:52 · 10596 阅读 · 20 评论 -
菜鸟学SSH——提高用户体验之404处理
只要做过WEB开发人对于“404”已经再熟悉不过了吧。当我们访问的资源不存在时,它就会跑出来跟你打招呼啦。但是默认情况下,404页面比较简陋,不是很友好。而且一般用户不知道404是个神马东东,还以为是程序写的有问题呢。这样一来用户体验就打折扣了。所以通常情况下,我们都需要对这些常见的错误进行处理。 Tomcat默认的404页 为了提升用户体验,我们需要简单的配置一下,来让...原创 2014-10-29 17:11:45 · 4126 阅读 · 14 评论 -
菜鸟学SSH——Hibernate核心接口
在使用Hibernate的时候,我们通常都会用的Configuration、SessionFactory、Session、Transaction、Query和Criteria等接口。通过这些接口可以,不仅可以存储与取出持久化对象,还可以对事务进行管理。下面对着几个接口一一介绍:几个接口之间的层次关系如下图: Configuration:Configuration是Hiberna...原创 2014-02-22 19:17:14 · 3712 阅读 · 24 评论 -
菜鸟学SSH——Hibernate——Session之save()方法
Session的save()方法用来将一个临时对象转变为持久化对象,也就是将一个新的实体保存到数据库中。通过save()将持久化对象保存到数据库需要经过以下步骤:1,系统根据指定的ID生成策略,为临时对象生成一个唯一的OID;2,将临时对象加载到缓存中,使之变成持久化对象;3,提交事务时,清理缓存,利用持久化对象包含的信息生成insert语句,将持久化对象保存到数据库。OK,下面来...原创 2014-02-19 20:27:14 · 31833 阅读 · 31 评论 -
菜鸟学SSH——Hibernate对象的三种状态
前面写了几篇关于SSH的博客,但不是Struts就是Spring,Hibernate还从来没写过呢。说好是SSH的,怎么可以光写那两个,而不写Hibernate呢对吧。今天就先说说Hibernate对象的三种状态,Hibernate对象有三种状态,分别是:临时态(Transient)、 持久态(Persistent)、游离态(Detached)。 临时状态:是指从对象通过new语句创建到被...原创 2014-02-11 08:11:22 · 6384 阅读 · 24 评论 -
菜鸟学SSH——Spring jar包详解
Struts、Hibernate、Spring这类的框架给我们开发带来非常大的好处,让我们更加快速、有效的开发。所以我们在开发中通常都会用到各种框架,每个框架都有很多jar包,每个jar都有各自不同的功能。开发不同的功能用到的jar也不尽相同,所以当我们用到相关框架的时候,并不是把它所有的jar都引入系统。那么怎么确定自己将会用到框架中的哪些jar包呢?这就需要我们知道框架中每个jar都是干什么的...原创 2013-12-24 08:23:25 · 17447 阅读 · 31 评论 -
菜鸟学SSH——Spring事务管理
Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作。今天一起学习一下Spring的事务管理。Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如...原创 2013-12-17 17:33:41 · 28874 阅读 · 28 评论 -
菜鸟学SSH——Struts2上传文件
上传文件在一个系统当中是一个很常用的功能,也是一个比较重要的功能。今天我们就一起来学习一下Struts2如何上传文件。今天讲的上传文件的方式有三种:1,以字节为单位传输文件;2,Struts2封装的一种方式;3,以字符的方式传输文件。 其实这三种方式都差不多,都是将文件先从客户端一临时文件的形式,传输到服务器的临时文件夹下,然后在将该临时文件复制到我们要上传的目录。另外,有...原创 2013-12-11 08:09:22 · 11117 阅读 · 32 评论 -
菜鸟学SSH——Struts2拦截器
什么是拦截器拦截器(Interceptor)是Struts 2的一个强有力的工具,有许多功能都是构建于它之上,如国际化(前两篇博客介绍过)、转换器,校验等。拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。说到拦截器有一...原创 2013-12-04 10:38:56 · 6798 阅读 · 28 评论 -
菜鸟学SSH——Struts2国际化自动检测浏览器语言版
前几天发了一篇Struts国际化的博客——《菜鸟学习SSH(二)——Struts2国际化手动切换版》,有网友提了一个意见,见下图:于是就有了下面修改的版本: web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml...原创 2013-11-27 21:06:43 · 4385 阅读 · 34 评论 -
菜鸟学SSH——Struts2国际化手动切换版
国际化(internationalization,i18n)和本地化(localization,l10n)指让产品(出版物,软件,硬件等)能够适应非本地环境,特别是其他的语言和文化。程序在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面。 国际化原理:国际化资源文件:用不同国家的语言描述相同的信息,并放在各自对应的.properties属性文件中,程序根据运行时环境决定加载哪...原创 2013-11-20 08:03:12 · 12079 阅读 · 41 评论 -
菜鸟学SSH——Struts实现简单登录(附源码)
从今天开始,一起跟各位聊聊java的三大框架——SSH。先从Struts开始说起,Struts对MVC进行了很好的封装,使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。今天通过一个简单的例子来说说Struts。 登录页面:这里面没啥东西,主要就是将act...原创 2013-10-08 11:25:41 · 7728 阅读 · 19 评论