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”技术