Java框架深度解析:Struts1与Struts2原理概览

需积分: 9 10 下载量 49 浏览量 更新于2024-09-09 2 收藏 54KB DOCX 举报
"Java知识点总结框架篇,涵盖了Struts1和Struts2的运行原理以及Struts2的体系结构" 本文主要围绕Java开发中的两大Web框架——Struts1和Struts2进行了深入的知识点总结,重点讲解了它们的运行机制和架构设计。 一、Struts1运行原理 Struts1是一个基于MVC设计模式的Java Web框架。在系统启动时,前端总控制器ActionServlet负责加载并解析struts-config.xml配置文件。当用户通过JSP页面发送请求,ActionServlet捕获请求,将请求参数填充到对应的ActionForm对象中。然后,它根据配置文件中的映射规则,调用相应的Action类中的方法,并传递ActionForm。Action执行业务逻辑后,通过ActionMapping的findforward方法返回ActionForward对象,系统再依据配置文件中的forward标签定位到目标JSP页面,实现视图的展示。 二、Struts2运行原理 相较于Struts1,Struts2的运行机制更为灵活。在Tomcat等Servlet容器启动时,其核心控制器FilterDispatcher加载并解析struts.xml配置文件。当客户端发起请求,FilterDispatcher首先拦截请求,依据请求的后缀决定是否需要调用Action。接着,它查找struts.xml中对应的Action配置,确定要执行的Action类及方法。Action执行完毕返回一个字符串,该字符串与struts.xml中的result配置匹配,以此决定跳转到哪个JSP页面进行结果展示。 三、Struts2的体系结构 1. 客户端向Servlet容器发送请求,如Tomcat。 2. 请求通过一系列预定义的过滤器(Filter)进行处理。 3. FilterDispatcher被调用,它利用ActionMapper判断请求是否需要调用特定Action。 4. 如果需要,FilterDispatcher将请求转交给ActionProxy。 5. ActionProxy通过ConfigurationManager读取配置,找出需要执行的Action类。 6. ActionProxy创建ActionInvocation实例,该实例负责调用Action,同时管理Action执行前后的拦截器(Interceptor)链。 7. 拦截器链在Action执行前后发挥作用,提供诸如日志、权限检查等功能,然后实际调用Action方法,执行业务逻辑。 8. ActionInvocation根据Action的返回值,结合struts.xml中的配置,转发到对应的视图资源。 总结,Struts1和Struts2都为开发者提供了强大的控制层支持,但Struts2在灵活性和可扩展性上更胜一筹,其拦截器机制使得功能模块化和代码复用更加容易。理解这两个框架的工作原理对于提升Java Web开发能力至关重要。