struts2概要(1)

来源:互联网 发布:网王之梦里花落知多少 编辑:程序博客网 时间:2024/06/07 09:38
J2EE是一系列技术标准所组成的平台,包括:   Applet - Java Applet   EJB - 企业级JavaBean(Enterprise Java Beans)   JAAS - Java Authentication and Authorization Service   JACC - J2EE Authorization Contract for Containers   JAF - Java Beans Activation Framework   JAX-RPC - Java API for XML-Based Remote Procedure Calls   JAX-WS - Java API for XML Web Services   JAXM - Java API for XML Messaging   JAXP - Java XML解析API(Java API for XML Processing)   JAXR - Java API for XML Registries   JCA - J2EE连接器架构(J2EE ConnectorArchitecture)   JDBC - Java数据库联接(JavaDatabase Connectivity)   JMS - Java消息服务(Java MessageService)   JMX - Java Management   JNDI - Java名称与目录接口(JavaNaming and Directory Interface)   JSF - Java Server Faces   JSP - Java服务器页面(Java Server Pages)   JSTL - Java服务器页面标准标签库(JavaServer Pages Standard Tag Library)   JTA - Java事务API(Java Transaction API)   JavaMail   Servlet - Java Servlet API   StAX - Streaming APIs for XML Parsers   WS - Web Servicesstruts2由webwork演变而来。Model1模式:Jsp接受处理用户请求,对请求处理后作出相应。使用javabean来出来数据库连接,数据库访问等操作。Model2:Jsp请求与servlet交互,servlet负责与javabean通信,model—javabean、view—jsp、controller—servletMVC优势:1、  一个模型可以对应多个视图,减少代码量及代码维护量2、  模型与显示分离,可以采用多种视图显示技术:jsp、velocity、excel….3、  分为三层,降低了模块之间的耦合4、  控制层可以将多个视图和多个模型组合在一起,完成不同的请求。Structs1MVC1)Model:封装了底层数据库访问,业务逻辑方法实现。一个成熟的企业级应用,model不是一个简单的javabean能实现的,可能是一个或多个EJB组件或者web service服务等。2)View struts1只支持jsp3)Controller:1、  ActionServlet2、  用户自己的Action实例。Struts1缺陷:1、  表现层实现方式单一2、  对servlet api依赖严重,属于侵入式设计 Struts2框架架构:以业务逻辑控制器为目标,创建一个控制器代理,对请求消息进行拦截。1、  用户发送请求,如xxx.action、xxx.pdf等,核心控制器FilterDispatcher根据请求决定调用合适的action2、  Webwork的拦截器链对请求进行拦截3、  回调Action 的execute方法,采用不同的表现层技术响应请求。 Struts2的配置文件1、  struts.xml2、  struts.properties struts2的控制器组件:1、  FilterDispatcher2、  业务控制器Action(实际上起作用的业务控制器不是用户定义的Action,而是Action代理,该代理以用户Action为目标) Struts2与struts1的对比:1、  Action实现类对比:struts1需要继承一个抽象的基类,struts2只是一个具有execute方法的POJO2、  Struts1的Action是单例而且必须是线程安全的,struts2为每个请求创建一个Action,么有线程安全的问题。3、  Struts1对servlet api依赖严重,struts2可以访问servlet api但不依赖。4、  Struts1使用ActionForm来封装用户请求的参数,struts2直接使用Action的属性封装,struts2使用ModelDriven模式,让开发者使用单独的model来封装用户参数5、  表达式语言:struts1整合了JSTL,struts2也整合了JSTL,也可以使用更强大的OGNL表达式6、  Struts1使用标准的jsp机制把对象绑定到视图页面,struts2使用了“ValueStack”技术