java学习整理20170804

来源:互联网 发布:java实现国际化 编辑:程序博客网 时间:2024/06/05 06:04
一:什么是框架技术
1.框架有大量可重复代码,减轻程序员的开发强度,使之更加注重业务的开发;框架就像某种软件系统的半成品,是一组协同工作组件的集合
2.框架技术的特点
a.成熟的,健壮的
b.是用户专注于业务逻辑,提高效率,缩短周期
c.有利于分工,便于维护和扩展
d.良好的结构性和可扩展性
e.缺点:不适合简单的Web应用,小型的Web应用,业务逻辑简单,框架技术反而会增加开发工作量
3.Javaweb经典三层架构
a.我们常说的三层框架是由JavaWeb提出的,也就是说这是JavaWeb独有的!(MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中
 的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),即为MVC。它是一种软件设计的典范)
b.所谓三层是表述层(WEB层)、业务逻辑层(Business Logic),以及数据访问层(Data Access)。 
WEB层:包含JSP和Servlet等与WEB相关的内容; 
业务层:业务层中不包含JavaWeb API,它只关心业务逻辑; 
数据层:封装了对数据库的访问细节;  
4.自定义MVC框架实现
a.针对每一个JSP页面(JSP_i)的用户请求(request_i)写一个对应的处理类(handler_i)
b.web.xml文件配置使得请求进入Controller(它是一个Servlet)处理
c.Controller任务:通过请求(request_i)的URL路径(URL_i)截取到一个string_i,而这个string必须写在配置文件(.properties)中,string_i对应
 处理类handler_i,现在我们找到了处理类的名称HandlerClass_i,通过Class.forName(HandlerClass_i)反射出相应的实例HandlerClassInstance_i
d.接着所有处理类需要实现一个处理接口:HandlerInterface;这个接口有一个抽象方法execute;功能是需要实现该接口的所有类必须进行相应的请求处
 理,返回值是处理完后需要跳往(转发到)下一个页面的JSP名
e.Controller最后用返回的值进行跳转
5.MVC是一种设计模式(思想),不同程序员风格不一样,影响程序标准化,于是出现了流行框架如:struts,hibernate,spring
6.Struts1框架
a.定义通用控制器Controller,通过配置文件struts-config.xml对模型和视图进行隔离,并用Action(处理请求的接口)的概念对用户请求进行封装
b.控制器:ActionServlet根据配置文件进行转发映射,业务逻辑控制器,模型:各种形式的JavaBean,视图:JSP,Strust标签,ActionForm Bean(Struts1自动将请求的数据填充到对象中)
c.JSP Model1:JSP+JavaBean,实现了页面表现和业务逻辑的分离,但是JSP还是要负责V和C两部分
d.JSP Model2:JSP+Servlet+JavaBean,引入了MVC设计模式;而strust1则是为了更好的规范MVC开发而开发的一个框架
e.配置文件信息
web.xml:配置Struts1框架的核心控制器ActionServlet
struts-config.xml:配置Struts1框架的业务逻辑控制器(Action),模型(Model)和视图(View)
可选的应用资源文件:如国际化资源文件
f.ActionForm封装用户提交的表单内容,其成员属性名必须和表单元素同名才能接收到数据
g.项目中遇到的问题
纯Java项目使用的本地自己的JRE,那么classLoader在加载jar和class时候是分开的,对于我们自己编写的class,会在APP_HOME/bin下。导入的jar包或者user library的配置信息会
出现在APP_HOME/.classpath文件中,ClassLoader会很智能去加载这些classes和jar。而对于java web项目就不一样了,虽然eclipse的workspace中仍有.classpath文件,但即使你导
入的了自己定义的user library,它也不会出现在.classpath中,这就是问题的关键。对于java web项目,它最终不是通过本地的JRE去运行,而是部署到web 服务器,如Tomcat、
Weblogic、WebSphere等,这些服务器都实现了自身的类加载器。eclipse引用library 是为了编译代码生成WEB-INF/classes里面的class文件使用,使用eclipse j2ee IDE时,会将
WEB-INF/lib中所有的lib自动加入到library中。eclipse工程下的library是用来编译里面的src中java文件的,实际发布到tomcat时,仅仅只复制了WEB-INF/lib里面的jar包,所以出现
eclipse可以正常编译但tomcat运行是找不到类。
h.开发流程总结:
先创建JSP确定表单form,通过form建立继承ActionForm的form对应JavaBean,然后编写actionForm类实现业务逻辑,最后进行web.xml和strust-config.xml的配置
7.Struts2框架
a.创建企业级Java Web应用的优雅的,可扩展的框架,在WebWork2框架的基础上发展而来,与Struts1框架没有关系(只是在蹭Struts1的热度)
b.同Strust1相比的优点:
取消了ActionForm类;用户请求参数可以通过Action类直接获取;简化了Action的设计,是Action与Serlvet API彻底解耦和,可以像测试普通类一样测试他
提供较为完善的数据类型支持;采用了Web Work框架中的强大拦截器功能。。。
8.Hibenate框架
a.对象关系映射框架(Object Relational Mapping,ORM)
b.对JDBC进行了轻量级的对象封装,是程序员把精力放在业务逻辑上,提高开发效率
9.Spring框架
a.为企业提供轻量级的解决方案,核心是依赖注入(Dependence Injection,DI)和面向切面编程(Aspect Orient programming,AOP),声明式事物处理,持久化数据库
b.优点:轻量级框架;良好的分层结构,可以使用框架中的任意组件进行开发;依赖注入,面向切面为核心,面向接口编程;可以集成其他框架
10.
原创粉丝点击