`

struts1.2处理流程(结合源码说明)

阅读更多
1.首先tomcat或其它web服务器启动的时候会去加载ActionServlet的初始化方法。
  在这个init方法中会做很多初始化的事情,如
  国际化对象的创建-》全局化字符—》Scanning web.xml for controller servlet mapping-》struts-config.xml配置解析(包括国际化资源配置,数据源配置,plugin配置)

2.页面提交http的post或get请求之后,ActionServlet中的doPost(),doGet()会接收这个处理

3.之后会调用ActionServlet的process函数,在这个函数中首先会查询是来自于哪个模块(struts中可按模块配置多个struts-config.xml),然后根据配置查询对应的requestProcess,每个模块都会有自己独立的一个requestProcess实例最后调用requestProcess.process(request, response)方法进行处理.
4.在requestProcess.process(request, response)函数中主要存在以下处理,相关代码如下:
 
   // Select a Locale for the current user if requested
        processLocale(request, response);

     

        // Set the content type and no-caching headers if requested
        processContent(request, response);
        processNoCache(request, response);
         // General purpose preprocessing hook
        if (!processPreprocess(request, response)) {
            return;
        }
        ActionForm form = processActionForm(request, response, mapping);

        ...

        Action action = processActionCreate(request, response, mapping);
        ActionForward forward =
            processActionPerform(request, response,
                                 action, form, mapping);

        // Process the returned ActionForward instance
        processForwardConfig(request, response, forward);

processPreprocess函数的实现直接返回true,该函数主要是为了想扩展requestProcess的功能提供的一个切入点。

processActionForm函数主要是用于创建请求的ActionForm,它首先会根据struts-config.xml配置中的scope,如果是request则从request
中取,或者从session中取,如果取不到则使用classLoader实例化一个实例。然后保存在request或session返回内

processActionCreate用于创建请求对应的Action实例,它首先会从requestProcess中的actions(map类型)中去查找,
如果没有的话则跟ActionForm一样通过classLoader实例化一个实例,然后根据类路径加文件名作为key保存在actions中

processActionPerform函数就进入到我们自己写的action中了。
processForwardConfig用于处理请求转发
分享到:
评论

相关推荐

    struts1.2的jar包及源码

    通过深入理解这些知识点,并结合源码学习,开发者可以更好地利用Struts1.2框架构建高效、可维护的Web应用。不过需要注意,尽管Struts1.2在过去的开发中发挥了重要作用,但随着技术的发展,现在已经有了更新的替代品...

    BBS struts1.2课程设计项目

    JSP(JavaServer Pages)是Java Web中的动态网页技术,它与Struts1.2框架结合,实现了MVC模式。在本项目中,JSP主要负责渲染视图,通过Struts标签库(例如struts-bean、struts-html、struts-tiles等)与后台数据进行...

    Struts1.2+Spring2.5+Hibernate3.2框架搭建(一)

    Struts1.2是MVC(模型-视图-控制器)设计模式的一个实现,主要处理HTTP请求并控制应用的流程。它将业务逻辑与展示逻辑分离,使得开发者能够更方便地维护和扩展应用程序。在Struts1.2中,ActionServlet作为入口点,...

    网上书店原码 struts1.2+ajax

    在Struts1.2与Ajax结合的场景下,通常会创建一个AjaxAction,这个Action专门处理Ajax请求。Ajax请求的响应可以是JSON或XML格式,这取决于前端需要的数据类型。前端JavaScript代码会监听Ajax请求的完成事件,并根据...

    struts1.2之分页

    总的来说,实现Struts1.2的分页功能需要结合后端逻辑、数据库操作和前端展示三方面的工作。通过对源码的学习,我们可以掌握这一过程,并能灵活应用到自己的项目中。如果需要进一步优化,还可以考虑引入缓存机制、预...

    jsp源码OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR)130224

    ### jsp源码OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR)130224 #### 技术栈介绍 本项目是一款基于多种主流Java技术构建的办公自动化系统(OA系统)。该系统采用了JSP作为前端展示层的技术,后端则...

    OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).rar

    在OA系统中,Struts1.2通过Action类来处理业务逻辑,用户交互的控制流程由Struts配置文件定义,提供了灵活的请求转发和异常处理机制。学习Struts1.2,你需要理解ActionForm、Action、配置文件以及如何将它们整合到...

    OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR)130224.rar

    Struts1.2提供了一种结构化的方式来组织和控制应用程序的业务逻辑,使得开发者可以更专注于业务处理,而不是底层的HTTP请求处理。它通过Action类和配置文件(struts-config.xml)来定义请求的映射和业务逻辑的执行...

    学校实训JSP项目-OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).zip

    Struts1.2提供了一种结构化的方式来组织Java Servlets和JSP页面,使得开发者可以更方便地处理用户交互和数据管理。它通过ActionForm对象接收表单数据,Action类处理业务逻辑,并使用Result来决定返回哪个视图。 2. ...

    struts快速入门源码

    Struts 是一个开源的Java Web框架,它主要负责管理和控制应用程序的流程,使得开发者可以更加专注于业务逻辑的实现,而不用过多地...记得理论与实践相结合,不断试验和调试,你将能更好地掌握Struts1.2的核心知识点。

    在线音乐吧 JSP + Struts + SQL Server 2005

    - 源码:包括JSP页面、Struts Action类、DAO(数据访问对象)层和Service层的Java代码。 - 数据库脚本:用于创建SQL Server 2005中的数据库表。 - CSS和JavaScript文件:用于美化界面和增强交互效果。 - 图形资源:...

    精通struts:基于mvc的java web设计与开发part1

    本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分...

    myeclipse+tomcat+struts+mysql简单实例

    Struts 1.2版本在当时是非常流行的选择,它提供了强大的表单处理、国际化、异常处理等功能,简化了Web应用的开发。 结合"myeclipse",这是一个强大的Java集成开发环境,特别适合于进行Java EE项目的开发。MyEclipse...

    生日策划网站的源代码

    Struts1.2是经典的MVC框架,用于处理HTTP请求并转发到相应的业务逻辑。尽管较新的版本(如Struts2)已推出,但Struts1.2依然有其适用场景,尤其是在维护老项目时。在这个儿童生日策划网站中,Struts负责控制流程,...

    Struts图书馆管理系统

    Struts1.2是早期版本,提供了Action、Form、ActionMapping、ActionForward等核心组件,用于处理HTTP请求和响应。 ### 2. JSTL(JavaServer Pages Standard Tag Library) JSTL1.1是一个标准的标签库,用于简化JSP...

    基于jsp的企业版人力管理系统源代码

    Struts1.2版本提供了强大的表单处理、国际化和异常处理等功能,帮助开发者规范和简化应用开发过程。而Hibernate是一个对象关系映射(ORM)工具,它将Java对象与数据库中的表进行映射,简化了数据库操作,使得开发者...

    基于Java实现的OA办公自动化管理系统源码+数据库.zip

    尽管Struts2已经发布,但Struts1.2在许多项目中仍被广泛使用,它为系统的业务逻辑提供了结构化支持。 6. DWR(Direct Web Remoting):DWR允许JavaScript在浏览器端直接调用Java方法,实现页面的异步更新,提升了...

    毕业设计论文-IT计算机-OA办公自动化管理系统-源码.zip

    Struts1.2是一种经典的MVC(Model-View-Controller)框架,它为Web应用提供了一种结构化的开发模式,便于分离业务逻辑和显示逻辑,提高代码的可维护性。Hibernate3.0则是一个对象关系映射(ORM)框架,简化了数据库...

Global site tag (gtag.js) - Google Analytics