【Jsp精品源码栏目提醒】:网学会员,鉴于大家对Jsp精品源码十分关注,论文会员在此为大家搜集整理了“【精品】J2EE相关技术 - 其它管理文献”一文,供大家参考学习!
1.Jquery ............................................... 2 2.Struts ............................................... 3 3.Hibernate........................................... 5 4.Spring ............................................... 6 5.JDBC ................................................. 8 PHP ................................................... 10 MVC ................................................... 10 JFreeChart ............................................ 11 JavaScript ............................................ 11 JavaBean .............................................. 12 POI ................................................... 13 1、
jsp ................................................ 13 2、servlet ............................................ 13 3、
jsp和servlet的区别 ................................ 13 4、Servlet的生命周期 .................................. 14 EJB ................................................... 14 JavaMail .............................................. 16 AJax .................................................. 16 您应当具备的基础知识 ................................ 16 AJAX 基于 Web 标准 .................................. 16 AJAX 是更优秀的应用程序 ............................. 16 今天您就可以使用 AJAX ............................... 16 CVS系统 ............................................... 17 EXT ................................................... 17 JNI ................................................... 18 PowerDesigner.......................................... 18 WebService总结 ........................................ 20 Flex .................................................. 20 1.ibatis简单介绍 ...................................... 21 2.ibatis的优缺点 .................................... 22 3.ibatis与hibernate的区别 .......................... 22 Dojo .................................................. 22 DWR ................................................... 23 mySQL ................................................. 24 ORACLE ................................................ 30 SqlServer ............................................. 31 1.Jquery Jquery是继prototype之后又一个优秀的Javascrīpt框架。
它是轻量级的js库压缩后只有21k 它兼容CSS3还兼容各种浏览器 IE 6.0 FF 1.5 Safari 2.0 Opera 9.0。
jQuery使用户能更方便地处理HTML documents、events、实现动画效果并且方便地为网站提供AJAX交互。
jQuery还有一个比较大的优势是它的文档说明很全而且各种应用也说得很详细同时还有许多成熟的插件可供选择。
jQuery能够使用户的html页保持代码和html内容分离也就是说不用再在html里面插入一堆js来调用命令了只需定义id即可。
jQuery由美国人John Resig创建至今已吸引了来自世界各地的众多javascript高手加入其team包括来自德国的Jampoumlrn Zaefferer罗马尼亚的Stefan Petre等等。
jQuery是继prototype之后又一个优秀的Javascrīpt框架。
其宗旨是——WRITE LESSDO MORE写更少的代码做更多的事情。
1.4重要新特性 ·常用方法的性能大幅提升重写了大部分较早期的函数 ·更容易使用的设置函数setter function为所有对象新增了许多易用的设置函数 ·对Ajax的改进引入了许多Ajax和JSON处理方面的更新包括HTML5元素的序列化 ·attribute改进了.attr的性能、jQuery核心函数、CSS.css性能有两倍提升、特效和事件、DOM操作等也有显著改进 1.5 重要变化 1. Ajax重写 Ajax模块完全进行了重写。
新增一个jXHR对象为不同浏览器内置的XMLHttpRequest提供了一致的超集。
对于XMLHttpRequest之外的传输机制比如JSONP请求jXHR对象也可以进行处理。
此外系统的可扩展性大大增强可以附加各种数据处理器、过滤器和传输机制为开发新的Ajax插件提供了方便。
2. 延迟对象 延迟对象Deferred ObjectjQuery.Deferred对象是一个可链接的chainable实用工具对象实现了Promise接口可以在回调队列中注册多个回调、调用回调队列并转发任何同步/异步函数的成败状态。
正如Using Deferreds in jQuery 1.5一文中说明的其结果是在jQuery中能够将依赖于某个任务事件结果的逻辑与任务本身解耦了。
这一点在JavaScript中其实并不新鲜Mochikit和Dojo等已经实现有些日子了。
由于jQuery 1.5的Ajax模块内置使用了延迟对象因此现在通过jQuery编写Ajax程序将自动获得这一功能 3. jQuery.sub jQuery 1.5提供了一种创建和修改jQuery副本的方式。
可以用来添加不向外部公开的方法或者对jQuery的某些方法进行重新定义以提供新功能或者提供更好的封装、避免名称空间冲突。
当然也可以用来开发插件但Resig强烈建议在开发插件之前先考虑jQuery UI widget工厂。
值得注意的是sub函数并不提供真正的隔离所有方法、数据、调用仍然依靠jQuery本身来支持。
4. 遍历性能提高 在新版本中.children .pre .next几个常用的遍历函数性能有了显著提高。
详细的测试用例和数据可以参考这里。
5. 内部开发系统 John Resig还特别提到了jQuery团队内部开发系统的两点改变一是服务器端用Node.js替换了老的Java/Rhino系统使得团队可以专注于JavaScript环境的新变化二是所用的代码优化程序从Google Closure切换到UglifyJS新工具的压缩效果非常令人满意。
2.Struts struts是开源软件。
使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。
在Model 1 架构中
JSP 直接处理Web 浏览器送来之请求 Request 并辅以JavaBean 处理应用相关逻辑。
Model 1 架构单纯编写比较容易但在Model 1 中
JSP 可能同时肩负View 与Controller 角色两类程序代码有可能混杂而不易维护。
而Model 2 中将Servlet 纳入架构中扮演前端Controller 角色将Web 浏览器送出之请求集中送至Servlet Servlet 可集中管理使用者登入、权限控制、多国语言转换等前置处理再视需求转向给对应之
JSP 处理。
Model 2 中采用了较佳之MVC 模式但增加了编写复杂度。
Model部分 由JavaBean组成ActionForm用于封装用户的请求参数封装成ActionForm对象该对象被ActionServlet转发给ActionAction根据ActionFrom里面的请求参数处理用户的请求。
JavaBean则封装了底层的业务逻辑包括数据库访问等。
View部分 该部分采用
JSP实现。
Struts提供了丰富的标签库通过标签库可以减少脚本的使用自定义的标签库可以实现与Model的有效交互并增加了现实功能。
对应上图的
JSP部分。
Controller组件 Controller组件有两个部分组成——系统核心控制器业务逻辑控制器。
系统核心控制器对应上图的ActionServlet。
该控制器由Struts框架提供继承HttpServlet类因此可以配置成标注的Servlet。
该控制器负责拦截所有的HTTP请求然后根据用户请求决定是否要转给业务逻辑控制器。
业务逻辑控制器负责处理用户请求本身不具备处理能力而是调用Model来完成处理。
对应Action部分。
框架 struts框架具有组件的模块化灵活性和重用性的优点同时简化了基于MVC的web应用程序的开发。
struts可以清晰地区分控制事务逻辑和外观从而简化了开发应用程序的过程。
struts提供的类使得开发工作更加简单这些类包括 a. 控制程序流程的类 b. 实现和执行程序事务逻辑的类 c. 自定义的标记库使得创建和验证HTML表单更加容易 框架中的组件 ActionServlet 控制器 ActionClass 包含事务逻辑 ActionForm 显示模块数据 ActionMapping 帮助控制器将请求映射到操作 ActionForward 用来指示操作转移的对象 ActionError 用来存储和回收错误 Struts标记库 可以减轻开发显示层次的工作 Struts 2是Struts的下一代产品。
是在 struts 和WebWork的技术基础上进行了合并全新的Struts 2框架。
其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。
Struts 2以WebWork为核心采用拦截器的机制来处理用户的请求这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开所以Struts 2可以理解为WebWork的更新产品。
因为Struts 2和Struts 1有着太大的变化但是相对于WebWorkStruts 2只有很小的变化。
Struts2体系结构 Struts2的体系与Struts1体系的差别非常大因为Struts2使用了WebWork的设计核心而不是Struts1的设计核心。
Struts2中大量使用拦截器来处理用户的请求从而允许用户的业务逻辑控制器与Servlet API分离。
1、浏览器发送一个请求。
2、核心控制器FilterDispatcher根据请求决定调用合适Action。
3、WebWork的拦截器链自动对请求应用通用功能如验证等。
4、回调Action的execute方法该execute方法根据请求的参数来执行一定的操作。
5、Action的execute方法处理结果信息将被输出到浏览器中支持多种形式的视图。
Struts2和Struts1的对比 通过上面对Struts2体系结构的了解我们发现Struts2对Struts1进行了巨大的改进。
主要表现在如下几个方面 在Action的实现方面Struts1要求必须统一扩展自Action类而Struts2中可以是一个普通的POJO。
线程模型方面Struts1的Action工作在单例模式一个Action的实例处理所有的请求。
Struts2的Action是一个请求对应一个实例。
没有线程安全方面的问题。
Servlet依赖方面Struts1的Action依赖于Servlet API比如Action的execute方法的参数就包括request和response对象。
这使程序难于测试。
Struts2中的Action不再依赖于Servlet API有利于测试并且实现TDD。
封装请求参数Struts1中强制使用ActionForm对象封装请求的参数。
Struts2可以选择使用POJO类来封装请求的参数或者直接使用Action的属性。
表达式语言方面Struts1中整合了EL但是EL对集合和索引的支持不强Struts2整合了OGNLObject Graph Navigation Language。
绑定值到视图技术Struts1使用标准的JSPStruts2使用“ValueStack”技术。
类型转换Struts1中的ActionForm基本使用String类型的属性。
Struts2中使用OGNL进行转换可以更方便的使用。
数据校验Struts1中支持覆盖validate方法或者使用Validator框架。
Struts2支持重写validate方法或者使用XWork的验证框架。
Action执行控制的对比Struts1支持每一个模块对应一个请求处理但是模块中的所有Action必须共享相同的生命周期。
Struts2支持通过拦截器堆栈为每一个Action创建不同的生命周期。
WebWork和Struts2的对比 从某种程度上看Struts2是从WebWork2上升级得到的。
甚至Apache的官方文档也讲WebWork2到Struts2是平滑的过渡。
我们甚至也可以说Struts2就是WebWork2.3而已。
在很多方面Struts仅仅是改变了WebWork下的名称。
Struts2对应的有自己的标签并且功能强大。
Webwork也有自己的标签。
3.Hibernate Hibernate是一个开放源代码的对象关系映射框架它对JDBC进行了非常轻量级的对象封装使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合既可以在Java的客户端程序使用也可以在Servlet/
JSP的Web应用中使用最具革命意义的是Hibernate可以在应用EJB的J2EE架构中取代CMP完成数据持久化的重任。
核心接口简介 Hibernate的核心接口一共有5个分别为:Session、SessionFactory、Transaction、Query和Configuration。
这5个核心接口在任何开发中都会用到。
通过这些接口不仅可以对持久化对象进行存取还能够进行事务控制。
下面对这五个核心接口分别加以介绍。
Session接口 Session接口负责执行被持久化对象的CRUD操作CRUD的任务是完成与数据库的交流包含了很多常见的SQL语句。
。
但需要注意的是Session对象是非线程安全的。
同时Hibernate的session不同于
JSP应用中的HttpSession。
这里当使用session这个术语时其实指的是Hibernate中的session而以后会将HttpSession对象称为用户session。
SessionFactory接口 SessionFactory接口负责初始化Hibernate。
它充当数据存储源的代理并负责创建Session对象。
这里用到了工厂模式。
需要注意的是SessionFactory并不是轻量级的因为一般情况下一个项目通常只需要一个SessionFactory就够当需要操作多个数据库时可以为每个数据库指定一个SessionFactory。
Configuration接口 Configuration接口负责配置并启动Hibernate创建SessionFactory对象。
在Hibernate的启动的过程中Configuration类的实例首先定位映射文档位置、读取配置然后创建SessionFactory对象。
Transaction接口 Transaction接口负责事务相关的操作。
它是可选的开发人员也可以设计编写自己的底层事务处理代码。
Query和Criteria接口 Query和Criteria接口负责执行各种数据库查询。
它可以使用HQL语言或SQL语句两种表达方式。
缓存管理 Hibernate 中提供了两级Cache第一级别的缓存是Session级别的缓存它是属于事务范围的缓存。
这一级别的缓存由hibernate管理的一般情况下无需进行干预第二级别的缓存是SessionFactory级别的缓存它是属于进程范围或群集范围的缓存。
这一级别的缓存可以进行配置和更改并且可以动态加载和卸载。
Hibernate还为查询结果提供了一个查询缓存它依赖于第二级缓存。
一级缓存的管理 当应用程序调用Session的save、update、saveOrUpdate、get或load以及调用查询接口的 list、iterate或filter方法时如果在Session缓存中还不存在相应的对象Hibernate就会把该对象加入到第一级缓存中。
当清理缓存时Hibernate会根据缓存中对象的状态变化来同步更新数据库。
Session为应用程序提供了两个管理缓存的方法 evictObject obj从缓存中清除参数指定的持久化对象。
clear清空缓存中所有持久化对象。
二级缓存的管理 3.1. Hibernate的二级缓存策略的一般过程如下 1 条件查询的时候总是发出一条select from table_name where ??. 选择所有字段这样的SQL语句查询数据库一次获得所有的数据对象。
2 把获得的所有数据对象根据ID放入到第二级缓存中。
3 当Hibernate根据ID访问数据对象的时候首先从Session一级缓存中查查不到如果配置了二级缓存那么从二级缓存中查查不到再查询数据库把结果按照ID放入到缓存。
4 删除、更新、增加数据的时候同时更新缓存。
Hibernate的二级缓存策略是针对于ID查询的缓存策略对于条件查询则毫无作用。
为此Hibernate提供了针对条件查询的Query Cache。
3.2. 什么样的数据适合存放到第二级缓存中 1 很少被修改的数据 2 不是很重要的数据允许出现偶尔并发的数据 3 不会被并发访问的数据 4 参考数据指的是供应用参考的常量数据它的实例数目有限它的实例会被许多其他类的实例引用实例极少或者从来不会被修改。
3.3. 不适合存放到第二级缓存的数据 1 经常被修改的数据 2 财务数据绝对不允许出现并发 3 与其他应用共享的数据。
Hibernate与延迟加载 Hibernate对象关系映射提供延迟的与非延迟的对象初始化。
非延迟加载在读取一个对象的时候会将与这个对象所有相关的其他对象一起读取出来。
这有时会导致成百的如果不是成千的话select语句在读取对象的时候执行。
这个问题有时出现在使用双向关系的时候经常会导致整个数据库都在初始化的阶段被读出来了。
当然你可以不厌其烦地检查每一个对象与其他对象的关系并把那些最昂贵的删除但是到最后我们可能会因此失去了本想在ORM工具中获得的便利。
在Web层进行延迟加载 幸运的是Spring框架为Hibernate延迟加载与DAO模式的整合提供了一种方便的解决方法。
以一个Web应用为例Spring提供了OpenSessionInViewFilter和OpenSessionInViewInterceptor。
我们可以随意选择一个类来实现相同的功能。
两种方法唯一的不同就在于interceptor在Spring容器中运行并被配置在web应用的上下文中而Filter在Spring之前运行并被配置在web.xml中。
不管用哪个他们都在请求将当前会话与当前数据库线程绑定时打开Hibernate会话。
一旦已绑定到线程这个打开了的Hibernate会话可以在DAO实现类中透明地使用。
这个会话会为延迟加载数据库中值对象的视图保持打开状态。
一旦这个逻辑视图完成了Hibernate会话会在Filter的doFilter方法或者Interceptor的postHandle方法中被关闭。
4.Spring spring在英文里有春天、弹簧、跳跃和泉眼的意思。
Spring 也表示是一个开源框架是为了解决企业应用程序开发复杂性由Rod Johnson创建的。
框架的主要优势之一就是其分层架构分层架构允许使用者选择使用哪一个组件同时为 J2EE 应用程序开发提供集成的框架。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言任何Java应用都可以从Spring中受益。
特点 ◆方便解耦简化开发 通过Spring提供的IoC容器我们可以将对象之间的依赖关系交由Spring进行控制避免硬编码所造成的过度程序耦合。
有了Spring用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码可以更专注于上层的应用。
◆AOP编程的支持 通过Spring提供的AOP功能方便进行面向切面的编程许多不容易用传统OOP实现的功能可以通过AOP轻松应付。
◆声明式事务的支持 在Spring中我们可以从单调烦闷的事务管理代码中解脱出来通过声明式方式灵活地进行事务的管理提高开发效率和质量。
◆方便程序的测试 可以用非容器依赖的编程方式进行几乎所有的测试工作在Spring里测试不再是昂贵的操作而是随手可做的事情。
◆方便集成各种优秀框架 Spring不排斥各种优秀的开源框架相反Spring可以降低各种框架的使用难度Spring提供了对各种优秀框架如StrutsHibernate、Hession、Quartz等的直接支持。
◆降低Java EE API的使用难度 Spring对很多难用的Java EE API如JDBCJavaMail远程调用等提供了一个薄薄的封装层通过Spring的简易封装这些Java EE API的使用难度大为降低。
◆Java
源码是经典学习范例 Spring的
源码设计精妙、结构清晰、匠心独用处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。
Spring框架
源码无疑是Java技术的最佳实践范例。
如果想在短时间内迅速提高自己的Java技术水平和应用开发水平学习和研究Spring
源码将会使你收到意想不到的效果. 好处 在我们进入细节以前让我们看一下Spring可以给一个工程带来的一些好处: ◆Spring能有效地组织你的中间层对象无论你是否选择使用了EJB。
如果你仅仅使用了Struts或其他的包含了J2EE特有APIs的framework你会发现Spring关注了遗留下的问题。
◆Spring能消除在许多工程上对Singleton的过多使用。
根据我的经验这是一个主要的问题它减少了系统的可测试性和面向对象特性。
◆Spring能消除使用各种各样格式的属性定制文件的需要在整个应用和工程中可通过一种一致的方法来进行配置。
曾经感到迷惑一个特定类要查找迷幻般的属性关键字或系统属性为此不得不读Javadoc乃至源编码吗有了Spring你可很简单地看到类的JavaBean属性。
倒置控制的使用在下面讨论帮助完成这种简化。
◆Spring能通过接口而不是类促进好的编程习惯减少编程代价到几乎为零。
◆Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。
在Spring应用中的大多数业务对象没有依赖于Spring。
◆使用Spring构建的应用程序易于单元测试。
◆Spring能使EJB的使用成为一个实现选择而不是应用架构的必然选择。
你能选择用POJOs或local EJBs来实现业务接口却不会影响调用代码。
◆Spring帮助你解决许多问题而无需使用EJB。
Spring能提供一种EJB的替换物它们适于许多web应用。
例如Spri.