博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts1工作流程
阅读量:5138 次
发布时间:2019-06-13

本文共 2012 字,大约阅读时间需要 6 分钟。

原理概述:

1、服务端接受到客户端请求,交由actionServlet处理,会把客户端的表单数据封装到actionForm里面

2、actionServlet会根据web.xml里面的配置去匹配拦截路径,一般都是拦截所有的.do,到指定的配置文件struts-config.xml里面查找对应的action对象
3、主要有几个属性,name对应封装的actionform,input匹配拦截的路径和方法,type匹配action的实现类
4、action对象处理完业务逻辑,会返回一个actionFoward对象给actionServlet处理
5、actionServlet根据配置文件里面的forward标签,跳转到具体页面,给客户端
缺点:
  1、因为forward都是返回到具体的jsp页面,每一个forward对应配置文件的一个forward标签,每一次改动配置文件都要重启Tomcat
  2、 struts1里的action是单例模式的,供多个请求共享,所以不是线程安全的。
    解释:
    (1)、看过源码,请求到达ActionServlet的doGet或doPost方法,最终由processActionCreate方法去返回一个具体的实例
    (2)、根据类名去map里面匹配action,存在则返回,不存在则创建,使用了synchronized关键字,action用到的所有的资源都必需统一同步
    解决方法:使用局部变量,不使用成员变量

详解:

1、服务器接收到客户浏览器请求后,使用ActionForm自动填充客户送来的表单数据到ActionForm Bean对象中,在web.xml文件中对请求进行过滤

action
org.apache.struts.action.ActionServlet
config
/WEB-INF/struts-config.xml
debug
3
detail
3
0
action
*.do

ActionForm 的实现非常简单,该类只是一个普通的JavaBean,只要为每个属性提供对应的setter 和getter 方法即可,在web.xml中每个ActionForm 对应一个form-bean 元素

2、拦截所有.do请求,读取struts_config.xml中的配置信息

3、将请求分发给相应的Action对象处理

public class AddressMapAction extends DispatchActionSupport implements    BaseAction {    public ActionForward add(ActionMapping mapping, ActionForm form,                             HttpServletRequest request, HttpServletResponse response)            throws Exception {        ……        return mapping.findForward("addressmaplist");    }        }

4、并返回ActionForward对象给ActionSerlvet对象;根据ActionForward对象的信息(目标页面),ActionServlet再次将Http请求导航到目标页面,并发送到客户端

转载于:https://www.cnblogs.com/zhuziyu/p/8563369.html

你可能感兴趣的文章
Eclipse Python插件 PyDev
查看>>
selenium+python3模拟键盘实现粘贴、复制
查看>>
网站搭建(一)
查看>>
Spring JDBCTemplate
查看>>
Radon变换——MATLAB
查看>>
Iroha and a Grid AtCoder - 1974(思维水题)
查看>>
gzip
查看>>
转负二进制(个人模版)
查看>>
LintCode-Backpack
查看>>
查询数据库锁
查看>>
[LeetCode] Palindrome Number
查看>>
我对于脚本程序的理解——百度轻应用有感
查看>>
SQL更新某列包含XX的所有值
查看>>
网易味央第二座猪场落户江西 面积超过3300亩
查看>>
面试时被问到的问题
查看>>
spring 事务管理
查看>>
VS2008 去掉msvcr90的依赖
查看>>
当前记录已被另一个用户锁定
查看>>
Node.js 连接 MySQL
查看>>
那些年,那些书
查看>>