ServletController的controller的process方法调用过程
来源:互联网 发布:京东店铺数据分析 编辑:程序博客网 时间:2024/04/29 20:13
通过在web.xml中将请求映射到ServletController,doget和dopost都是直接调用ServletController的process方法: Ø ServletController的controller的process方法调用过程: 1、选择当前模块 2、得到相对应的RequestProcessor对象,并初始化 3、执行RequestProcessor的process方法 Ø RequestProcessor的process流程: Ø 根据请求和配置得到一个与请求相关的form Ø 首先根据formbean的作用范围设置在request或session中找form对象 Ø 找到的话直接返回此对象,否则创建一个新的 Ø 根据formbean的作用范围设置(默认为session),将其保存到会话中 Ø 将form重置:调用reset() Ø 接收请求参数(采用了反射机制,org.apache.common的类)@注:处理multipart,时,动态的从config.xml的controller的multipartClass载入处理类生成对象,附给form的multiparthandler域,可操纵。 Ø 根据请求是否是cancle form,进行如下操作setAttribute(Globals.CANCEL_KEY, Boolean.TRUE),在action的isCancelled(request)中将返回此变量。 Ø 验证form: Ø 如果Globals.CANCEL_KEY为true,进入下一步。 Ø 从配置中读取Validate,如不需验证,进入下一步。 Ø 调用form bean 的validate()方法,此方法将返回一个ActionErrors。 Ø 监视ActionErrors,如果次对此对象是null或者为空,接受输入,进入下一步。 Ø 否则,先调用multiparthandle的rollback,然后读取此form bean 的input设置,如果input 为空,通过response.sendError()发送noInput错误信息;否则先设置request.setAttribute(Globals.ERROR_KEY, errors),然后转发到input页面。在input叶面可以用 此标签的几个属性:name一般不设置,它的默认值和actionerrors的保存键都是Globals.ERROR_KEY;property就是得到error列表中key为property的errors,不设置将得到所有的。 Ø 处理相关的action: Ø 如果action是forward或者是include,执行后返回。 Ø 否则执行excute();2、执行转发动作3、如果抛出异常,将依据定义的异常捕获设置,转向相应的处理叶面。 Ø 方法返回。 |
- ServletController的controller的process方法调用过程
- 程序入口自动调用 controller 的方法
- 调用Controller方法的几种方式
- View Controller生命周期的各个方法的调用
- java 方法调用的过程
- iOS 方法调用的过程
- 关于angular中指令调用controller的方法:&
- HttpClient调用Web工程的Spring @Controller方法
- java规范(二)------方法调用---springMVC中调用controller的方法
- Java创建Process对象调用linux shell过程乱码的探究
- java调用controller方法
- 几种存储过程的调用方法
- ASP调用存储过程的一般方法
- 调用存储过程的方法 (一种)
- ASP调用存储过程的方法
- C#调用存储过程的通用方法
- jsp调用存储过程的方法
- PB调用存储过程的声明方法
- Java/JSP中使用JDBC连接SQL Server 2005
- 校内网App开发者聚会上详解校内豆服务
- DispatchAction, LookupDispatchAction, MappingDispatchAction深入分析(转)
- struts如何给jsp传递参数
- forward与redirect的区别
- ServletController的controller的process方法调用过程
- 数据库类型简介
- 远程管理SQL数据的方法
- 使用ExtJS创建前端WebQQ界面
- BPM原则:团结ERP 支持SOA 创新更需融合
- .NET获得当前操作系统
- 详细解析Java中抽象类和接口的区别(来自:java060515)
- 如何使wince5.0支持大容量flash
- Java 多线程的Thread类和Runnable接口