struts入门

一、struts简介

struts是开源的java web框架,他很好的实现了MVC模式,通过一个配置文件,把各个层面的应用组件联系起来,使组件在程序层面上联系较少,耦合度较低,这就大大提高了应用程序的可维护性和扩展性。

1、

struts框架中的核心包
包名说明
action包含控制器类ActionForm及ActionMessage,以及其他几个必要的框架组件
actions包含立即可用out-of-box的Action类,诸如DispatchAction,允许你的应用程序使用或扩展
config包含配置configuration类,可用来在内存中存储struts配置文件的内容
taglib包含标记处理类tag handler类,处理的对象是struts标记库
tiles包含tiles框架所使用的类
upload所包含的允许浏览器从本地文件系统上载或下载文件
util包含整个框架都用到的通用工具类
validator包含struts特有的扩展类,可供struts部署验证器validator时使用,实际的validator类和接口独立于struts之外,被放在commons包中

二、struts的基本原理

struts应用程序启动时,它首先从struts-config.xml中读取相关信息。根据这些信息,它的控制器ActionServlet知道把视图中的请求转发给哪个业务逻辑组件处理。视图组件、控制器与业务逻辑组件之间没有代码上的联系,他们之间的关系在struts-config.xml中声明,这样大大提高了web应用程序的可移植性和可维护性。

三、struts的核心组件

struts的控制器组件

1、struts的ActionServlet类

ActionServlet类扩展了javax.servlet.http.HttpServlet类,其职责是把HTTP消息打包起来并路由传送到框架中合适的处理器。ActionServlet类并非抽象类,因此应用程序可把他作为具体的控制器来使用。它必须在web应用程序所使用的部署描述文件中配置。

2、Action类

struts框架中的org.apache.struts.action.Action类是控制器组件的一个扩展。他可以把客户端用户的动作与一个业务操作连接起来。Action类可以使客户请求和业务模型松散耦合,这种松散耦合让用户请求和action类之间不再只限于一对一的对应关系。Action类在调用业务操作之前,也可以完成其他功能,诸如认证、日志记录和会话验证。

Action类中的重要的execute()方法

public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response response)throws Exception;

3、struts配置文件struts-config.xml

struts应用的各个组件及其关系均在该文件中声明。

4、ActionMapping

当控制器收到一个请求时,它通过查看请求信息并使用一举动作映射对象(ActionMapping)来做出决定。动作映射(ActionMapping)是struts架构中一个特有对象,他封装了配置文件struts-config.xml中的action mapping元素所包含的配置信息。这个配置文件会在启动时加载到内存,让struts能够在运行时加以利用。

5、ActionForward类

ActionForward类所表示的是一个目标,也就是在Action完成后,控制器呀转交控制权的地方。以声明的方式把某个动作的转发映射与JSP页面相关联,然后再整个应用程序中使用哪个ActionForward对象。实际上,ActionForward对象封装在了配置文件struts-config.xml中forward元素所包含的信息。


struts的视图组件

struts应用程序的常见视图组件如下:

  • JSP页面
  • ActionForm
  • Struts标记
  • Java资源包

1、ActionForm类

ActionForm对象用来在用户和业务层之间传输客户的输入数据。ActionForm也叫FormBean.Struts会自动从请求中输入数据,在将这些数据交给一个使用formbean的action对象,接着FormBean可以再交给业务层。

ActionForm类最重要的两个方法reset()和validate(),这两个方法默认实现不完成任何默认的逻辑。必须在自己的ActionForm类中覆盖着两个方法。

控制器把请求中的表单数据填入ActionForm实例之前,会先调用reset()方法。reset()会将ActionForm性质重新设置回原来的默认状态。当请求数据插入ActionForm实例后,控制器会调用validate()方法,ActionForm应该对输入数据完成相应的必要验证工作,然后向控制器返回所检测到的任何错误。

2、struts标记库

struts框架定义的标记库有HTML标记库,Bean标记库,Logic标记库、Nested标记库、Template标记库、以及tiles标记库

要在应用程序中使用这些标记库,必须在web.xml文件中向web应用程序注册这些标记库。

3、使用消息资源包

对于你想支持的每种语言必须提供一个相应的资源包。类名或者属性文件名都必须遵循javadocs对java.util.ResourceBundle类所列的原则来命名。

struts的模型组件

struts框架在模型组件上没有太多支持,struts的模型组件可用javabeans或EJB



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、准备工作及实例 3 1.解压struts-2.1.6-all.zip 3 2.六个基本包 3 3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 4 (5)其它配置文件 4 4.让MyEclipse提示xml信息 4 5.如何使用alt+/提示 4 6.实例 4 7.开启struts2自带的开发模式常量 6 8.vo传参模式 7 9.ModerDriven传参模式(不建议采用) 7 10.为什么要使用struts2代替struts1.x 7 二、struts.xml配置及例程 7 1.配置文件的优先级 7 2.配置形式 8 3.package配置相关 8 4.分工合作include:指定多个配置文件 10 5.tomcat认证访问 10 6.初识拦截器 11 7.Action中的method属性 12 8.使用ForwardAction实现页面屏蔽。 13 8.使用default-Action配置统一访问 14 小结Action 14 9.使用通配符 14 10.使用0配置:ZERO Annotation 15 11.Result配置详解 15 探讨type类型: 16 Type类型值 16 作用说明 16 对应类 16 chain 16 用来处理Action链 16 com.opensymphony.xwork2.ActionChainResult 16 dispatcher 16 用来转向页面,通常处理JSP 16 org.apache.struts2.dispatcher.ServletDispatcherResult 16 redirect 16 重定向到一个URL 16 org.apache.struts2.dispatcher.ServletRedirectResult 16 redirectAction 16 重定向到一个Action 16 org.apache.struts2.dispatcher.ServletActionRedirectResult 16 plainText 16 显示源文件内容,如文件源码 16 org.apache.struts2.dispatcher.PlainTextResult 16 freemarker 16 处理FreeMarker模板 16 org.apache.struts2.views.freemarker.FreemarkerResult 16 httpheader 16 控制特殊http行为的结果类型 16 org.apache.struts2.dispatcher.HttpHeaderResult 16 stream 16 向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据。 16 org.apache.struts2.dispatcher.StreamResult 16 velocity 16 处理Velocity模板 16 org.apache.struts2.dispatcher.VelocityResult 16 xslt 16 处理XML/XLST模板 16 org.apache.struts2.views.xslt.XSLTResult 16 全局result: 17 动态Result:了解 18 12.异常处理 18 三、在Action获取Scope对象 19 方式一、与Servlet解耦合的非IOC方式 20 方式二、与Servlet解耦合的IOC方式 21 方式三、与Servlet耦合的非IOC方式 21 方式四、与Servlet耦合的IOC方式 22 四、OGNL与ValueStack(VS) 22 1.值栈入门 22 2.OGNL入门 24 3.普通方法访问 24 4.静态方法访问 24 5.默认类Math的访问 24 6.调用普通类的构造方法 25 7.集合对象初步 25 8.集合对象进阶 25 9.N语法top语法 26 10.获取Stack Context中的信息 26 11.总结$ # %的区别 27 12.总结OGNL[重点] 27 五、拦截器 28 1.概述strust2中的拦截器 28 2.自定义拦截器 28 方式一,实现Interceptor接口。 28 方式二、继承AbstractInterceptor抽象类 29 方式三、继承MethodFilterInteceptor类 30 3.使用来MethodFilterInterceptor灵活拦截 32 4.使用默认的execAndWait拦截器 33 5.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值