`

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用于处理请求转发
分享到:
评论

相关推荐

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

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

    办公自动化源码(使用的技术包括jsp java struts2 sqlserver Hibernate)

    结合当今市场的需求,为了满足用户的需要。办公自动化系统应实现的功能如下。  企业的日常管理,应包括企业的会议管理和公告管理。用户可以通过这一模块查看企业发布的会议、公告,并设置了添加新公告和会议的功能...

    JAVA上百实例源码以及开源项目源代码

     Java语言开发的简洁实用的日期选择控件,源码文件功能说明:  [DateChooser.java] Java 日期选择控件(主体类) [public]  [TablePanel.java] 日历表格面板  [ConfigLine.java] 控制条类  [RoundBox.java] ...

    JAVA上百实例源码以及开源项目

     Java语言开发的简洁实用的日期选择控件,源码文件功能说明:  [DateChooser.java] Java 日期选择控件(主体类) [public]  [TablePanel.java] 日历表格面板  [ConfigLine.java] 控制条类  [RoundBox.java] ...

    Eclipse开发入门与项目实践 源代码

    案例6-2 结合Hibernate和Struts实现商务系统身份验证 224 第7章 Eclipse中SWT/JFace开发 237 7.1 安装SWT Designer 237 7.2 SWT/JFace程序基本实现过程 242 案例7-1 SWT/JFace开发初体验 243 7.3 SWT/...

    【计算机软件毕业设计】二手车交易平台的分析、设计与实现文献综述1.doc

    [1] 1.2 Struts框架 2002年,国外C. Cavaness 专家认为Struts是一个典型的MVC框架,它也包含了上述 三个组成部分。JavaBean和EJB组件模型层次组成。行动和ActionServlet的控制器实现 ,视图层的JSP文件组成。中央...

    基于JAVA设计的网上花店系统源码+数据库+WORD论文文档.zip

    基于JAVA设计的网上花店系统源码+数据库+WORD论文文档 1 开发背景 1.1引言 网上商店也被称为电子商店,是电子商务的一个重要组成部分。网上商店作为电子商务的一种具体形式,在Internet上已经非常普及。由于充分利用...

    办公自动化管理系统(Struts2.0+Hibernate3.0+SQLServer实现)

    结合当今市场的需求,为了满足用户的需要。办公自动化系统应实现的功能如下。  企业的日常管理,应包括企业的会议管理和公告管理。用户可以通过这一模块查看企业发布的会议、公告,并设置了添加新公告和会议的功能...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    是PDF电子书,不是源码。共分2个包。 《Java Web编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Java Web进行程序开发的各种技术、技巧。全书分4篇,共24章,其中,第1篇为...

    java开源包8

    目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权 的标准。 Java的命令行处理类库 JArgs JArgs 是一个 Java 语言用来...

    java开源包1

    目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权 的标准。 Java的命令行处理类库 JArgs JArgs 是一个 Java 语言用来...

    java开源包11

    目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权 的标准。 Java的命令行处理类库 JArgs JArgs 是一个 Java 语言用来...

    java开源包2

    目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权 的标准。 Java的命令行处理类库 JArgs JArgs 是一个 Java 语言用来...

    java开源包3

    目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权 的标准。 Java的命令行处理类库 JArgs JArgs 是一个 Java 语言用来...

    java开源包6

    目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权 的标准。 Java的命令行处理类库 JArgs JArgs 是一个 Java 语言用来...

    java开源包5

    目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权 的标准。 Java的命令行处理类库 JArgs JArgs 是一个 Java 语言用来...

    java开源包10

    目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权 的标准。 Java的命令行处理类库 JArgs JArgs 是一个 Java 语言用来...

    java开源包4

    目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权 的标准。 Java的命令行处理类库 JArgs JArgs 是一个 Java 语言用来...

    java开源包7

    目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权 的标准。 Java的命令行处理类库 JArgs JArgs 是一个 Java 语言用来...

Global site tag (gtag.js) - Google Analytics