您好,欢迎访问三七文档
当前位置:首页 > 法律文献 > 理论/案例 > Java中个框架名词解释即优缺点
Struts2的优点:1)Struts2设计是无侵入式的,Struts2的应用可以不依赖于Struts2的ServletAPI的。2)Struts2提供了拦截器,利用拦截器可以进行AOP编程。实现如权限拦截等功能。3)Struts2提供了类型转换器,我们可以把特殊的请求参数转换成需要的类型。4)Struts2提供支持多种表现层技术。如JSP。freeMarker..Velocity等。5)Struts2的输入校验可以对指定方法进行校验,解决了Struts1的长久之痛。6)提供了全局范围,包范围。和Action范围的国际化资源文件管理实现。在Struts中,管理action的是用package管理的。bagname=/bagStrust2里面配置web.xml文件不再需要Servlet,通过了一个过滤器取代楽。框架文件的规律,所有的框架开发包中,实际上都有许多的参考实现代码,只要耐心的参考里面的代码就能够正确的使用程序。所有的请求(*.action)----》DispatcherFilter上,之后根据struts.xml文件中的配置选择对应的action进行处理,通过execute()方法的返回值,来决定最终跳转页面,之后进行显示。Struts2的框架是通过Filter启动的。JDK是包含调试的JRE是不包含调试的.JDK1.5和1.6的区别是:1.5中实现了一个接口是不能重写接口中的方法的。1.6中实现了一个接口后是可以重写接口中的方法的。设计模式最大的特点就是把简单的东西复杂化,带来的好处是,最大达好处是可扩展性。\Struts2核心的是:把请求和最后的结果(试图)分开。Namespacenamespace决定了action的访问路径,默认为,可以接收所有的路径actionnamespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,/xxx/index.action,或者/xxx/yyy/index.actionpackagename=examplenamespace=/extends=struts-defaultactionname=show_Pagesresultname=success/hello.jsp/result/action/package在resultname=success/result中,凡是名字(name)为success的,都可以不写,默认为success如果一个package里面的namespace属性没有写或者如:namespace=表示这个package里面的result属性囊括了所有的名package处理不了的名为index的action。resultname=index/result在这个Action里面没有配置Class,而它默认的Class是ActionSupport里面的Action,execute();一个包可以定义为abstract=true抽象包,抽象包不能包含action;Action(一)具体视图的返回可以由用户自己定义的Action来决定。(二)具体的手段是根据返回的的字符串找到对应的配置项,来决定视图的内容。(三)具体的Action的实现可以是一个普通的JAVA类,里面有publicStringexecute()方法既可,(四)或者实现Action接口。(五)不过常量的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法。Struts1在访问这个action的时候访问的是同一个ActionClass类的对象,如果访问的客户了,容易造成线程同步的情况。而Struts2则是每次访问的时候,才创建一个ActionClass对象,不会造成线程同步的情况。ActionSupport实现了Action的接口。而Action接口里面只有execute()方法,和一系列的常量。而我们也可以直接实现Action接口。可以在Struts2的配置文件中actionname=Userclass=com.zuxia.action.Usermethod=Function可以在method=方法名在这里指定这个action调用Class中的那个方法。根路径:如果请求的URL地址为访问的是根目录,如果在Struts文件中找不到相应的/则会重新返回到TOMCAT中,执行web.xml中的welcome-file-listwelcome-filehello.jsp/welcome-file/welcome-file-list访问hello.jsp文件。namespace如果不指定默认为也就是/Action实现类的所有属性都会放在它向对应的值栈里面。通配符:约定优于配置如果有多个都匹配,默认是先调用最精确的哪一个。但是*是同一等级的(跟*的个数无关)。那个action在前头就先调用哪一个。Result属性:type的值Chain(action)dispatcher(视图)内部跳转(转发或服务器端跳转)--数据不会丢失redirectAction(action)redirect(视图)外部跳转重定向或客户端跳转)--丢失请求参数数据、请求属性和前一个Action的处理结果重定向:以前存放的变量全部失效,并进入一个新的作用域。不能共享数据。转发:转发的源文件和目标组建共享request范围内的共享数据访问Action的时候不需要在目标地址加/局部结果:将result作为action元素的子元素配置全局结果:将result作为global-result元素的子元素配置。域模型DO,VO,DTO一般情况下,如果要获得用户输入的值,直接在action类里面定义和控件名相同的属性就可以了。或者建一个privateUseruser;类就行了,这个类属性必须有getter()和setter()方法。不需要实例化,struts2底层会帮我们实现。如果需要在一个action类中要实例化一个实体对象,必须要让这个action的类实现(implements)一个modelDriverModel类名读源码:先从JSP页面开始,慢慢的往里走。查询struts2里面的源文件。D:\HUdaWei\Jar包\struts-2.0.11-all\struts-2.0.11\docs\docs\strutsxml-examples.html很多源代码都在里面Struts2的常量在:—》org.apache.struts2----default.properties文件里面。使用(ActionSupport类的)addFieldError方法和s:fieldError标签简单处理数据校验。Struts2的验证标签内容在Com.opensymphny.xwork2.validator.validators----default.xml去掉系统默认的文本样式在使用OGNL标签时使用constantname=struts.ui.themevalue=simple接收参数有三种,保存到session,Request,Applicationz中有两种。一二控制反转:何谓控制反转(IoC=InversionofControl),何谓依赖注入(DI=DependencyInjection);IoC,用白话来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。三四验证显示单个的错误的时候用。s:fielderrors:paramname/s:param/s:fielderrorActionContext和ServletActionContext区别·ActionContextxwork框架的ActionContext是Action执行时的上下文,存放Action执行时需要用到的对象。在使用webwork时,其中放有Parameter、Session、ServletContext、Locale等信息。这样,webwork负责将Servlet相关数据转换为与ServletAPI无关的Map对象(即ActionContext),使得xwork的Action实现与web层、逻辑层与表现层的解耦。ServletActionContext提供直接与Servlet容器交互的途径。通过它,可以取得HttpServletRequest、HttpServletResponse、ServletConfig、ServletContext、PageContext对象。但是,使用ServletActionContext意味着Action与ServletAPI的紧密耦合。SpringAOP是什么?AOP是OOP的延续,是AspectOrientedProgramming的缩写,意思是面向方面编程。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。对横切点关注点的具体实现称为Advice。Advice分为:beforeAdvice,afterAdvice,ThrowAdvice。spring是面向方面编程(AOP)和控制反转(IOC)容器。IOC是什么?IoC就是InversionofControl,控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。IOC的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。其原理是基于OO设计原则的TheHollywoodPrinciple:Don'tcallus,we'llcallyou(别找我,我会来找你的)。也就是说,所有的组件都是被动的(Passive),所有的组件初始化和调用都由容器负责。组件处在一个容器当中,由容器负责管理。简单的来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。Ioc模式(DependencyInjection模式)有三种:第一种类型从JNDI或ServiceManager等获得被调用者,这里类似ServiceLocator模式。1.EJB/J2EE2.Avalon(Apache的一个复杂使用不多的项目)第二种类型使用JavaBeans的setter方法1.SpringFramework,2.WebWork/XWork第三种类型在构造方法中实现依赖1.PicoContainer,2.HiveMindORM(Object/RelationMapping)对象-关系数据库映射什么是ORM?对象关系映射(ORM)提供了概念性的、易于理解的模型化数据的方法。ORM方法论基于三个核心原则:简单:以最基本的形式建模数据。传达性:数据库结构被任何人都能理解的语言文档化。精确性:基于数据模型创建正确标准化了的结构。典型地,建模者通过收集来自那些熟悉应用程序但不熟练的数据建模者的人的信息开发信息模型。建模者必须能够用非技术企业专家可以理解的术语在概念层次上与数据结构进行通讯。建模者也必须能以简单的单元分析信息,对样本数据进行处理。ORM专门被设计为改进这种联系。规则表达式ORM把应用程序世界表示为具有角色(关系中的部分)的一组对象(实体或值)。ORM有时也称为基于事实的建模,因为它把相关数据描述为基本事实。这些事实如果分割为再小的事实就会丢失信息。本质上就是将数据从一种形式转换到另外一种形式一般的ORM包括以下四部分:一个对持久类对象进行CRUD操作的API;一个语言或API用来规定与类和类属性相关的查询;一个规定m
本文标题:Java中个框架名词解释即优缺点
链接地址:https://www.777doc.com/doc-3143355 .html