Struts2的处理流程
用户请求------------》StrutsPrepareAndExecuteFilter--------------》Interceptor---------------》Action-------------》Result--------------》Jsp/html------------》响应
StrutsPrepareAndExecuteFilter: Struts2内置的一些拦截器或用户自定义拦截器。struts2好多核心功能都是通过拦截器实现的。
Interceptor:用户编写的action类,类似struts1中的Action
Result: 类似struts1中的forward
StrutsPrepareAndExecuteFilter是Struts 2框架的核心控制器,它负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求。默认情况下,如果用户请求的路径不带后缀或者后缀以.action结尾,这时请求将被转入Struts 2框架处理,否则Struts 2框架将略过该请求的处理。当请求转入Struts 2框架处理时会先经过一系列的拦截器,然后再到Action。
管理方式不同:与Struts1不同,Struts2对用户的每一次请求都会创建一个Action,所以Struts2中的Action是线程安全的,是protype模式。而struts1是当用户请求的时候就会创建一个action放到缓存中,以后每次请求都会调用这个action,属于单例设计模式。