zoukankan      html  css  js  c++  java
  • struts的理解

    1、struts是一个按MVC模式设计的Web层框架,其实他就是一个大大的servlet,这个Servlet名为ActionServlet,或是ActionServlet的子类。我们可以在web.xml文件中将符合某种特征的请求交给这个Servlet处理,这个Servlet再参照一个配置文件(通常为/WEB-INF/struts-config.xml)将各个请求分别分配给不同的action去处理。

    2、ActionServlet把请求交给action去处理之前,会将请求参数封装成一个formbean对象(就是一个java类,这个类中的每个属性对应一个请求参数),封装成一个什么样formbeand对象呢?看配置文件。

    3、要说明的是,ActionServlet把formbean对象传递给action的execute方法之前,可能会调用formbean的vaildate方法进行校验,只有校验通过后才将这个formbean对象传递给action的execute方法,否则,它将返回一个错误页面,这个错误页面有input属性指定,(看配置文件)为什么将这里命名为input属性,而不是error属性。

    4、action执行完后要返回显示的结果视图,这个结果视图是用一个ActionForward对象来表示的,actionforward对象通过struts-config.xml配置文件中的配置关联到某个jsp页面,因为程序中使用的是在struts-config.xml配置文件为jsp页面设置的逻辑名,这样可以实现action程序代码与返回的jsp页面的解耦。

    5、Struts的优缺点

    优点:(1)实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现。

      (2)有丰富的tag可以用,Struts的标记库(Taglib),如能灵活动用,则能大大提高开发效率。

      (3)页面导航——使系统的脉络更加清晰。通过一个配置文件,即可把我整个系统各部分之间的联系,这对于后期的维护有着莫大的好处,尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

      (4)提供Exception处理机制

      (5)数据库连接池管理

      (6)支持l18N

    缺点:(1)转到展示层,需要配置forward,如果又是个展示层的jsp,组要配置十次struts,而且还不包括有时候目录、文件变更,需要重新修改forward。注意,每次修改配置之后,要求重新部署整个项目,而tomcat这样的服务器,还必须冲洗启动服务器。

      (2)Struts的Action必需是thread-safe方式,它仅仅允许一个势力去处理所有的请求。所以action用到的所有的资源都必需同一同步,这个就引起了线程安全的问题。

      (3)测试不方便。Struts的每个Action都同Web层耦合在一起,这样它的测试依赖于Web容器,单元测试页很难实现。不过有一个Junit的扩展工具Struts TestCase可以实现它的单元测试。

      (4)类型的转换。Struts的FormBean把所有的数据都作为String类型,它可以使用工具Commons-Beanutils进行类型转化,但它的转化都是在Class级别,而且转化的类型是不可以配置的。类型转化时的错误信息返回给用户也是非常困难的。

      (5)对Servlet的依赖性过程强。Struts处理Action时必需要依赖ServletRequest和ServletResponse,所以它摆脱不了Servlet容器。

      (6)前端表达式语言方面。Struts集成了JSTL,所以它主要使用JSTL的表达式语言来获取数据。可是JSTL的表达式语言在Collection和索引属性方面处理显得很弱。

      (7)对Action执行的控制困难。Struts创建一个Action,如果想控制它的执行顺序将会非常困难。甚至你要重新去写Servlet来实现你的这个功能需求。

      (8)对Action执行前和后的处理。Struts处理Action的时候是基于class的hierarchies,很难再action处理前和后进行操作。

      (9)对时间支持不够。在Struts中,实际上是一个表单Form对应一个Action类(或DispatchAction),换句话说:在Struts中实际是一个表单只能对应一个事件,struts这种事件方式成为application event。application e。vent和component event相比是一种粗粒度的事件。

    6、Struts的应用(如Struts架构)

      Struts是采用Java Servlet/JavaServer Pages技术,开打Web应用程序的开放源码的framework。采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用框架。Struts有如下的主要功能:(1)包含一个controller servlet,能将用户的请求发送到相应的Action对象;(2)JSP来自tag库,并且在controller servlet中提供关联支持,帮助开发人员创建交互式表单应用;(3)提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。

  • 相关阅读:
    【流量劫持】SSLStrip 终极版 —— location 瞒天过海
    【流量劫持】沉默中的狂怒 —— Cookie 大喷发
    【流量劫持】SSLStrip 的未来 —— HTTPS 前端劫持
    Web 前端攻防(2014版)
    流量劫持 —— 浮层登录框的隐患
    流量劫持能有多大危害?
    流量劫持是如何产生的?
    XSS 前端防火墙 —— 整装待发
    XSS 前端防火墙 —— 天衣无缝的防护
    XSS 前端防火墙 —— 无懈可击的钩子
  • 原文地址:https://www.cnblogs.com/puqiuxiaomao/p/struts.html
Copyright © 2011-2022 走看看