`
Joy.zhang
  • 浏览: 59007 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

总结struts2 完成中······

阅读更多
    首先struts2是什么?为什么要用struts2?struts2是怎么来的?带着这几个问题去初步了解它!
    struts2是一套java ee web框架。对于struts1而言,struts2有很多革命性的改进。struts2是webwork的升级版。它吸收struts1和webwork的优势,因此稳定性和性能相对较高了。

struts2的原理
    1.客户端初始化一个指向servlet容器的请求。
    2.这个请求经过一系列的过滤器(Filter),这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于struts2和其他框架的集成很有帮助。
    3.接着FilterDispatcher被调用,FilterDispatch询问ActionMapper来决定这个请求是否需要调用某个Action。
    4.如果ActionMapper决定调用某个Action,FilterDispatcher把请求的处理交给ActionProxy。
    5.ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类。
    6.ActionProxy创建一个ActionIncation的实例.
    7.ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
    8.一旦Action执行完毕,ActionInvocation负责根据Struts.xml中的配置找到对应的返回结果。返回结果通常是一个需要被表示的jsp或者FreeMarker的模板。在表示的过程中可以使用struts2框架中继承的标签。在这个过程中需要涉及ActionMapper
struts2与struts1的区别
    1.Action类不同:
①Struts1要求Action类继承一个抽象父类。struts1的一个普通问题是使用抽象编程。
②Struts2的Action类可以实现一个Action接口,可以实现其他接口,使可选和定制的服务成为可能。struts2提供一个ActionSuppprt基类去实现常用的接口,Action接口是必须的,任何有excute标识的pojo对象都可以作为struts2的Action对象。
    2.线程模式不同:
①Struts1的Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求,单例策略限制了struts1Action能做的事,并且要在开发时特别小心,Action资源必须是线程安全的或同步的。
②Struts2的Action对象为每一个请求产生一个实例。因此没有线程安全问题(实际上,servlet容器给每个请求许多可丢弃的对象,并且不会导致性能个垃圾回收问题。)
    3.servlet依赖不同:
①struts1的Action依赖servlet API,因为一个Action被调用时,HttpServletRequest和HttpServletResponse被传递给excute方法。
②Struts2的Action不依赖于容器,允许Action脱离容器单独被测试。如果需要。struts2Action仍然可以访问初始的request和response。但是其它的元素减少或者消除直接访问HttpServeltRequest和HttpServeltResponse的必要性。
    4.可测性不同:
①测试struts1 Action的一个主要问题是excute方法暴露了servlet API(这使得测试要依赖与容器)。一个第三方扩展--Struts TestCase--提出了一套Struts1的模拟对象来进行测试。
②Struts2 Action可以通过初始化设置属性,调用方法来测试,“依赖注入”支持也使测试更容易。
struts的核心:拦截器

    拦截器是AOP中的概念,它本身是一段代码,可以通过定义“织入点”,来指定拦截器的代码在“织入点”的前后执行,从而起到拦截的作用。
    当请求到达Struts 2的ServletDispatcher时,Struts 2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表(list),最后一个一个地调用列表中的拦截器。
    拦截器timer的用途——用于显示执行某个action方法的耗时,在我们做一个粗略的性能调试时,这相当有用。
    拦截器是Struts 2比较重要的一个功能。通过正确地使用拦截器,我们可以编写高可复用的代码。

struts2的验证
struts2的OGNL表达式
struts2的国际化
struts2的类型转换
struts2的绑定
struts2的源码
struts2的值栈
struts2的优化
分享到:
评论
1 楼 liumingtong 2010-09-30  
struts2的OGNL表达式
struts2的值栈
struts2的优化

这几个怎么没写了呢..能分享一下吗

相关推荐

    Struts2输入校验总结

    输入校验的流程在Struts2中是结构化的,涉及多个步骤: 1. **类型转换**:首先,Struts2框架使用类型转换器将HTTP请求中的字符串参数转换为相应的Java类型,如Integer、Date等,并将这些值设置为Action类的属性。 ...

    struts2 学习重点笔记

    - **原理**:Struts2 的拦截器会在 Action 执行完成后,调用 getter 方法并将结果存储到适当的范围对象中。 **3.4 请求转发与重定向** - **转发**:Action 的 execute 方法返回一个字符串,根据这个字符串找到对应...

    struts2学习笔记(完美总结)——转自OPEN经验库

    OGNL是Struts2中用于对象属性访问和表达式语言,它允许在Action、ValueStack和视图层之间传递数据。ValueStack是一个对象栈,它持有ActionContext上下文中的所有对象,包括Action实例、ActionForm、Session、Request...

    struts2+hibernate一周小项目总结

    struts2+hibernate一周小项目总结

    Struts2初步使用总结

    在Struts2中,所有的Action调用都是通过`ActionProxy`来完成的。 通过以上内容,我们可以看到Struts2是一个功能强大且易于使用的Java Web开发框架,它简化了Web应用程序的开发过程,使开发者能够更专注于业务逻辑的...

    完整STRUTS2 struts2完成

    总结起来,这个压缩包提供了一个完整的Struts2实例,对于初学者来说,可以通过分析源代码和配置文件来深入理解Struts2框架的运作机制,以及如何在实际项目中有效地应用。通过阅读和实践,开发者可以提升自己的Java ...

    struts2 Https 配置

    在Struts2中配置HTTPS主要涉及以下几个步骤: 1. **配置服务器**:首先,你需要在服务器端(如Tomcat、Jetty等)启用HTTPS。这通常涉及到修改服务器的配置文件(如Tomcat的`server.xml`),添加一个监听443端口的...

    让Struts2 在NetBeans 6中安家

    完成以上步骤后,右键点击项目属性中的“Libraries”,选择“Add Library”,将刚刚创建的“Struts2”Library添加到项目依赖中。 #### 步骤三:配置Web.xml 为了让Struts2框架在项目中正常工作,我们需要对项目的...

    struts2源码分析总结

    在`Dispatcher`的初始化过程中,它会读取`web.xml`或其他配置文件,解析Struts2的配置信息,如Action、结果类型、拦截器等。这些配置信息被加载到内存中的容器中,供后续请求处理时使用。`Dispatcher`还负责初始化...

    在Struts 2中实现CRUD

    ### Struts 2中实现CRUD操作详解 #### 一、引言 CRUD操作是软件开发中最常见的数据处理方式之一,它代表了对数据进行的四种基本操作:创建(Create)、读取(Read)、更新(Update)与删除(Delete)。在企业级应用开发中,...

    Struts2 工作原理 Struts2框架 有图

    一旦Action执行完成,ActionInvocation将根据struts.xml配置文件中定义的结果类型(Result),决定下一步的动作,如跳转至特定的视图页面(通常是JSP或FreeMarker模板)。这个过程实现了模型与视图的分离,提高了...

    Struts2 技术内幕——深入解析Struts2架构设计与实现原理

    - **拦截器机制**:Struts2中的拦截器类似于Servlet中的过滤器,但更加轻量级,可以在不修改业务代码的情况下增加功能,如文件上传、输入验证等。 - **类型转换**:Struts2提供了一套强大的类型转换机制,能够将用户...

    struts2+cas单点登陆例子

    在`cas_test`这个压缩包中,可能包含了完成上述步骤的源代码示例,包括Struts2的Action、配置文件以及必要的视图资源。通过研究这些代码,你可以更直观地了解如何在实际项目中实现这个功能。 总结一下,Struts2+CAS...

    struts2 发布包

    总结起来,"struts2 发布包"的1.3.9版本是Struts2框架的一个早期版本,虽然它包含了一些基本的MVC架构和拦截器机制,但随着技术的发展,新版本提供了更多的特性、优化和安全性改进。对于当前的开发环境来说,理解和...

    struts2.pdf

    2. **路由决策**:核心控制器`FilterDispatcher`根据URL中的Action名和配置文件(struts.xml)中的定义来确定应调用哪个Action。 3. **执行拦截器链**:在调用具体的Action之前,会首先经过一系列的拦截器。这些拦截...

    Struts2学习小结

    以上是对 Struts2 学习的一些基本总结,包括环境搭建、工具集成、工作原理以及 Namespace 和 Action 的使用等关键知识点。通过这些知识点的学习,可以帮助开发者更好地理解和使用 Struts2 框架。

    Jquery与struts2

    在Struts2中,我们需要创建一个对应的Action类,定义一个方法来处理前端的请求。这个方法需要使用`@Action`注解来指定URL映射,如: ```java public class MyAction extends ActionSupport { private String key; ...

Global site tag (gtag.js) - Google Analytics