struts2教程(struts2面试题)

zhangyang 2022-05-12 阅读:19
  

struts2的入门问题、、

  什么都不写意味着从ValueStack中取值。写#变量名就是取变量值#request。变量名#session。变量名#application。ActionContext中的变量名。

  获取设置范围内的变量值。上电驴的教学视频。朗Xi的《昂首阔步2》说得好!

  之前必须有一定的java,jsp基础!

struts2教程

struts2的处理请求的全过程是什么

  Struts文档:

  1.容器从web服务器接收对资源hello.action的请求

  从web.xml加载的设置,容器发现所有请求都被路由到

  org . Apache . struts 2 . dispatcher . ng . filter . strutsprepareendexecutefilter,包括*。行为

  请求。StrutsPrepareAndExecuteFilter是框架的入口点。

  2.框架寻找一个名为“hello”的动作映射,它发现这个映射对应于

  “HelloWorldAction”类。框架实例化动作并调用动作的执行

  方法。

  3.execute方法创建MessageStore对象并返回成功。如果返回成功,框架检查动作映射以查看加载什么页面。框架告诉容器呈现资源HelloWorld.jsp作为对请求的响应。

  4.在处理页面HelloWorld时,标记调用HelloWorld操作的getter getMessageStore,然后调用

  getMessageStore返回的MessageStore对象,标记合并到响应中

  消息属性。

  5.一个纯HTML响应被发送回浏览器。

  简单翻译一下:

  1.容器(比如tomcat)接收请求,因为struts2在web.txt中配置了过滤器,所以容器把这个请求交给struts框架处理;

  2.struts找到name对应的Action类,执行相应的方法得到返回值;

  3.根据返回值,在result中找到对应的资源,并将结果返回给用户。哈哈选我吧!Struts2框架中请求的处理步骤:

  a)客户端初始化指向Servlet容器的请求;

  b)根据Web.xml配置,请求首先通过ActionContextCleanUp过滤器,这是一个可选的过滤器。这个过滤器对于Struts2和其他框架(SiteMeshPlugin)的集成很有帮助,主要清理ActionContext和Dispatcher当前线程的;

  c)请求通过插件过滤器,如SiteMesh等和其他过滤器;

  d)请求通过核心过滤器FilterDispatcher,执行doFilter方法。在这个方法中,要求ActionMapper决定请求是否需要调用一个动作;或者不是;

  e)如果ActionMapper决定需要调用一个动作,ActionMapper会返回一个ActionMapping实例(存储动作的配置信息),创建一个ActionProxy对象,将请求交给代理对象进一步处理;

  f)f)Action proxy对象根据ActionMapping和ConfigurationManager查询框架的配置文件找到需要调用的Action类;

  g)创建g)ActionProxy对象时,同时会创建一个ActionInvoke的实例;

  H) ActionInvoke实例通过命名方式调用,在调用动作的过程前后,涉及到相关拦截器的调用;

  I)动作一旦执行,ActionInvocation实例负责根据struts.xml中的配置创建并返回结果,结果通常是需要表示的JSP或FreeMarker的模板,也可能是另一个动作链;

  j)如果想在返回结果之前做一些事情,可以实现PreResultListener接口,这个接口可以在Interceptor或者Action中实现;

  k)根据结果对象信息,生成用户响应信息response。在生成响应的过程中,可以使用Struts2框架中继承的标签,以及ActionMapper仍然会再次参与这个过程;

评论(0)

二维码