web 框架

今天记录下web框架:其实面试的时候,面试官问你问题就是看看你是否掌握了他问的知识。

web 框架大多都是这么几个功能:

1、对页面的参数进行封装

2、通过配置文件找到处理请求的controller( handler )

3、调用业务层接口( 我学的一般都是spring 依赖注入的方式 )

4、将业务层接口返回的结果封装返回页面( 一般都是jsp )

5、进行简单的校验和国际化等功能


下面具体到一些框架身上:1   Struts2 :

1】 Struts2 对页面进行封装的时候可以把页面的参数封装成pojo 类对象传递到Action (也就是Controller 名字不同而已 实际起的作用差不多), 这里有两点需要注意

1、Struts1 强制使用ActionFrom 传递参数  

2、Struts 框架是action 的属性来接受参数,而像springmvc  是用方法来接受参数。

2】tomcat 容器初始化的时候,加载并解析web.xml, 在web.xml 中发现了struts2的前端控制器(FilterDispather 或者是StrutsPreparedAndExecuteFilter 两者的区别在这里                 就不多说了 ,大致就是后者 在中间能停一下子),前端控制器询问ActionMapper是否要调用一个Action 来处理这个请求。如果ActionMapper 决定了要调用哪个Action, StrutsPreparedAndExecuteFilter 就把请求交给ActionProxy.    ActionProxy 通过ConfigurationManager 来询问框架的配置文件,找到我们要调用的Action ,紧接着 ActionProxy 创建一个ActionInvocation 实例,来执行Action 这前后伴随着拦截器链的执行。


3】接着调用业务接口这部,我学的框架一般都是 通过SpringIoc  容器注入,我们用就行。

4】Action 执行完毕后,ActionInvocation 负责根据Struts2的配置文件把我们要去的页面(一般都是jsp 或者是FreeMarker模板)


我学的另一web层框架:SpringMVC

1】SpringMvc 封装页面的参数的时候,不用通过页面下pojo.属性名了,直接写属性名就可以,SpringMVc 框架会把你写在页面的属性名自动给你封装成pojo 类对象,属性名没有的时候,我们在接受参数的时候吧参数名和页面的参数名相同即可,也可以通过@RequestParam 来把controller 里面的参数写成我们自己想要的。另外springmvc 是通过方法接受参数。

2】,springmvc 在寻找对应的Controller的时候,也差不多,不过不是通过拦截器的方式而是Servlet 的方式,同样把前端控制器放在web.xml 中,tomcat启动的时候加载解析,找到springmvc的配置文件, 一个请求过来的时候会经过前端控制器,前端控制器询问HandlerMapper(处理器映射器)来找到我们要找的Handler, 之后把结果(handler 实例和拦截器链)返还给前端控制器,前端控制器在找到HandlerAdapeter ,根据处理器适配器的规则找到处理器,之后调用handler ,返回modelAndView 对象。给前端控制器

前端控制器在找到视图解析器,返回结果给前端控制器,渲染视图。




猜你喜欢

转载自blog.csdn.net/wlittlefive/article/details/52713277