当前位置:   article > 正文

Java个人技术知识点总结(框架篇)_java编写框架需要了解哪些知识点

java编写框架需要了解哪些知识点

3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action;

4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy;

5、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类;

6、ActionProxy创建一个ActionInvocation的实例。

7、ActionInvocation在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。

8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是jsp或者FreeMarker的模版。(体系结构图见下一页)

Spring MVC运行原理

整个处理过程从一个HTTP请求开始:

1.Tomcat在启动时加载解析web.xml,找到spring mvc的前端总控制器DispatcherServlet,并且通过DispatcherServlet来加载相关的配置文件信息。

2.DispatcherServlet接收到客户端请求,找到对应HandlerMapping,根据映射规则,找到对应的处理器(Handler)。

3.调用相应处理器中的处理方法,处理该请求后,会返回一个ModelAndView。

4.DispatcherServlet根据得到的ModelAndView中的视图对象,找到一个合适的ViewResolver(视图解析器),根据视图解析器的配置,DispatcherServlet将要显示的数据传给对应的视图,最后显示给用户。

Struts1.x与Struts2.x的区别

Struts 2以WebWork为核心,

采用拦截器的机制来处理用户的请求,struts1严重依赖于servletAPI,

属于侵入性框架,struts2不严重依赖于servletAPI,属于非侵入型框架。

线程模型方面:

Struts1的Action是单实例的,

一个Action的实例处理所有的请求。

Struts2的Action是一个请求对应一个实例(每次请求时都新new出一个对象),

没有线程安全方面的问题

封装请求参数:

Struts1中强制使用ActionForm对象封装请求的参数。

Struts2可以选择使用POJO类来封装请求的参数,或者直接 需要zi料+ 绿色徽【vip1024b】

使用Action的属性。

struts1的前端总控制器(核心总控制器)为ActionServlet,

struts2的前端总控制器(核心总控制器)为FilterDispather

Spring MVC、struts1和struts2区别

1.spring mvc单例 非线程安全

struts1单例 非线程安全

struts2线程安全对每个请求都产生一个实例

2.spring mvc的入口是servlet&#

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/802839
推荐阅读
相关标签
  

闽ICP备14008679号