自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Spring框架概念

Spring是一个J2EE框架,提供了IoC和AOP的封装,各个模块可以独立运行。 Spring框架共分7个部分:SpringCore、SpringContext、SpringWeb、SpringWeb MVC、SpringDAO、SpringORM、SpringAOP。 SpringCore:是Spring框架的核心容器,最重要组件BeanFactory使用工厂模式创建所需的对象。同时Bean

2016-11-10 22:34:31 553

原创 AOP概念

AOP指面向方向编程。面向方向编程的优点是可以不改变原有业务逻辑代码的基础上,增加日志、安全,异常处理的功能。 以下是不侵入业务地增加对”方法的开始和结束”的跟踪。 编写以下测试类,然后在配置文件中配置,不需要修改原有的业务代码。public class traceBeforeCall implements MethodBeforeAdvice{ public void beforeCa

2016-11-10 22:34:02 241

原创 反射控制IoC的概念

反向控制也称为依赖注入,是一种降低对象耦合的设计思想。一般在分层体系结构中都是上层调用下层,调用者依赖被调用者。通过IoC的方式,可以使上层不再依赖下层接口。它通过注入一个实例化对象达到解耦的目的。使用这种方法的对象不会被显式调用,而是由IoC容器提供。对于实现基类的不同实现类问题,AbstractClass c1=new SubClassA()能够完成功能。但问题在于换用其它基类实现类如SubCl

2016-11-10 22:33:29 381

原创 Struts与Struts2的区别

struts1和struts2区别: 1) 风险控制方面,struts1应用广泛,开发风险小成本低。 2) Action实现类方面,struts1要求继承Action抽象类。而struts2即可以实现Action接口,也可以实现其它接口,使定制服务成为可能。 3) 线程安全方面,struts1是单例模式需要为其保让线程安全。struts2为每个请求产生单独的实例,没有线程安全的问题。

2016-11-10 11:44:33 781

原创 forward与global-forward的区别

forward的作用是根据Action返回值寻找JSP页面。global-forward用于多个Action返回同一个值的情况(指向相同的JSP,如分页)。<foward name="login" path="/login.jsp" redirect="true" /><global-fowards><foward name="login" path="/login.jsp" redirect

2016-11-10 11:43:39 386

原创 ActionForm执行步骤

步骤: 1) 检查Action中的是否已配置了对ActionForm的映射。 2) 由name属性查找ActionFormBean的配置信息。 3) 由scope属性确定ActionFormBean的使用范围内是否已有ActionFormBean实例。有则重用,无则重构一个ActionFormBean实例。 4) 调用reset()方法重置。 5) 调用setter()方法对状态

2016-11-10 11:43:11 1266

原创 ActionForm Bean的作用

Action类用于业务逻辑的处理,ActionFormBean用于封装客户端请求数据。页面接收到的用户请求数据先被封装在ActionFormBean中,然后再转交给Action处理。具有以下两个特点: ActionFormBean本质也是JavaBean,只不过是专用于传递表单数据的数据传递对象(DTO,data transfer object)。除了具有JavaBean的方法,还有表单验证和重置

2016-11-10 11:42:47 1185

原创 Struts配置文件中的action元素属性

name:指定要传递给Action的ActionFormBean。 scope:指定ActionFormBean的存放范围,值为Request或Session。attribute:设置Action关联的ActionFormBean在request和session范围内的key。 className:设置和Action元素对应的配置元素,默认为org.apache.struts.action.Ac

2016-11-10 11:42:15 1464

原创 FormBean的表单验证流程

FormBean表单验证共4步: 1) 客户端提交HTML表单后,Struts框架自动把表单封装成ActionForm对象。 2) Struts框架调用ActionForm的validate()方法进行表单验证。 3) 如果validate()方法返回ActionErrors对象为null或不包含任何ActionMessage的ActionErrors,则通过验证。 4) 如果val

2016-11-10 11:41:44 379

原创 Struts框架的数据校验类型

数据验证可分为表单验证和业务逻辑验证。表单验证通过ActionForm类的validate()方法实现,该方法对所有字段进行校验。如果出现不符要求的输入,则将错误提示信息封装在ActionError对象中,最后将多个ActionError对象合并成ActionErrors对象。 业务逻辑验证由Action处理,通过在Action类的execute()方法前增加数据校验代码段实现。

2016-11-10 11:41:00 225

原创 Struts框架响应客户端请求的流程

虽然Struts框架的控制器主要由ActionServlet,而业务控制却由Action、ActionMapping、ActionFoward等组成共同完成。 Web应用服务器启动时会加载并初始化ActionServlet,ActionServlet从struts-config.xml读取配置信息并保存到ActionMapping对象,当ActionServlet接收到客户端请求则执行如下流程:

2016-11-10 11:40:26 558

原创 Struts框架响应客户端请求的流程

虽然Struts框架的控制器主要由ActionServlet,而业务控制却由Action、ActionMapping、ActionFoward等组成共同完成。 Web应用服务器启动时会加载并初始化ActionServlet,ActionServlet从struts-config.xml读取配置信息并保存到ActionMapping对象,当ActionServlet接收到客户端请求则执行如下流程:

2016-11-08 18:08:12 357

原创 Structs框架

Struts由客户端Client、MVC设计模式、业务逻辑组成。其中的MVC设计模式由视图View、模型Model、控制器Action组成。  客户端的功能是:发送HTTP请求和接收HTTP响应。  视图是一个JSP文件,即没有业务逻辑,也不保存系统状态信息,而只是通过标签把数据展现出来。标签库主要有HTML Tags,Bean Tags,Logic Tags等。  模型分成

2016-11-08 18:07:23 682

原创 JDO概念 JDBC与Hibernate的区别

JDO的含义为Java数据对象JavaDataObject,是用于数据仓库对象的标准化API。 由于JDO提供了直接的对象存储,使开发人员将更多的精力放在业务逻辑上。Hibernate是对JDBC的轻量封装,数据库的连接参数被配置在XML文件中,而数据库访问仍由JDBC完成。 Hibernate作为持久层框架将表信息映射到XML文件中,再从XML文件映射到相应的持久化类中。 区别: 

2016-11-08 11:24:57 934

原创 使用JDBC应注意的问题

JDBC编程需要先建立数据库连接才能进行对数据库的访问,因而数据库连接成了非常重要的资源。JDBC连接池提供了JDBC连接定义和有限的连接资源。编程时需要保证数据库接的正常和及时地关闭,及时释放不使用的连接。Statement和PreparedStatement的使用原则:  放在循还外面初始化。因为每次执行conn.createStatement()和conn.preparedStatem

2016-11-08 11:24:11 439

原创 getString()方法和getObject()方法区别

JDBC调用getString()/getInt()/getData()方法时,程序一次性查询结果数据读入内存,然后通过ResultSet()的next()方法和getString()方法获取数据。而getObject()每次直接从数据库获取数据,避免了内存不足的问题。 一般对于数据量较小,不用考虑性能问题则使用getString()/getInt()/getData()。若数据量较大则报错ora

2016-11-08 11:23:40 3039

原创 Statement,PrepareStatement,CallableStatement的区别

Statement执行不带参数的SQL语句并返回结果集,每次执行SQL都需要编译SQL。 PreparedStatement执行带参数的预编译的SQL语句。 CallableStatement用来实现调用数据库存储过程的接口。由prepareCall()方法创建。 PreparedStatement在建立状态时,填上SQL命令的字符串。执行SQL时只填上参数,无需再指明SQL语句。一个Prep

2016-11-08 11:23:14 567

原创 JDBC采用Class.forName加载驱动的意义

Class.forName()的作用是返回一个带有给定字符的类或接口相关联的Class对象、加载这个类、同时执行该类的静态代码块。 使用new同样可以达到加载数据库驱动的目的,而使用类加载机制是为了提高代码的可重用性。 软件开发的业务类通常面向接口BusinessInterface编程。各项目根据业务不同实现不同的接口实现类,接口实现类被配置在XML文件中。这样开发了新的接口实现类,只需要修改配

2016-11-08 11:22:27 2934

原创 JDBC处理事务的方法

JDBC中通常使用setAutoCommit(false)禁止自动提交,然后将多个数据库表达式作为1个事务,显式调用commit()方法提交。如有表达式操作失败则抛出异常,在异常捕获块中调用rollback()方法回滚。4个读一致性问题: 脏读:一个事务读到了另一事务的未提交事务。 不可重复读:一个事务前后两次读到不同数据。 虚读:一个事务前后两次查询结果数量不同。 丢失修改:两个事务读入同

2016-11-07 23:20:32 919

原创 通过JDBC访问数据库

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-11-07 23:19:27 223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除