MVC框架
2021-01-04 16:28
标签:voc 执行流程 config 提示 标签 oca 映射 pat 集成 是为了解决传统MVC模式(Jsp + Servlet + JavaBean)的一些问题而出现的框架。 传统MVC模式问题 1、所有的Servlet和Servlet映射都要配置在web.xml中,如果项目太大,web.xml就太庞大,并且不能实现模块化管理。 2、Servlet的主要功能就是接受参数、调用逻辑、跳转页面,比如像其他字符编码、文件上传等功能也要写在Servlet中,不能让Servlet主要功能而需要做处理一下特例。 3、接受参数比较麻烦(String name = request.getParameter(“name”),User user=new User user.setName(name)),不能通过model接收,只能单个接收,接收完成后转换封装model. 4、跳转页面方式比较单一(forword,redirect),并且当我的页面名称发生改变时需要修改Servlet源代码. 现在比较常用的MVC框架有: struts webwork Struts2 Spring MVC Struts2的原理? 一个请求在Struts2框架中的处理大概分为以下几个步骤: 1、客户端浏览器发送请求 2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin); 3、接着FilterDispatcher(StrutsPrepareAndExecuteFilter)被调用,FilterDispatcher (StrutsPrepareAndExecuteFilter)询问ActionMapper来决定这个请求是否需要调用某个Action; 4、如果ActionMapper决定需要调用某个Action,FilterDispatcher (StrutsPrepareAndExecuteFilter)把请求的处理交给ActionProxy; 5、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类; 6、ActionProxy创建一个ActionInvocation的实例。 7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。 8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2框架中继承的标签。在这个过程中需要涉及到ActionMapper。 面试: 1、浏览器发送请求,经过一系列的过滤器后,到达核心过滤器(StrutsPrepareAndExecuteFilter). 2、StrutsPrepareAndExecuteFilter通过ActionMapper判断当前的请求是否需要某个Action处理,如果不需要,则走原来的流程。如果需要则把请求交给ActionProxy来处理 3、ActionProxy通过Configuration Manager询问框架的配置文件(Struts.xml),找到需要调用的Action类; 4、创建一个ActionInvocation实例,来调用Action的对应方法来获取结果集的name,在调用前后会执行相关拦截器。 5、通过结果集的Name知道对应的结果集来对浏览器进行响应。 拦截、判断、寻找、执行、响应 java里的拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。 在AOP(Aspect-Oriented Programming)中拦截器用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。 面试: struts2中的的功能(参数处理、文件上传、字符编码等)都是通过系统拦截器实现的。 如果业务需要,当然我们也可以自定义拦截器,进行可插拔配置,在执行Action的方法前后、加入相关逻辑完成业务。 使用场景: 1、用户登录判断,在执行Action的前面判断是否已经登录,如果没有登录的跳转到登录页面。 2、用户权限判断,在执行Action的前面判断是否具有,如果没有权限就给出提示信息。 3、操作日志...... 4、...... MVC框架 标签:voc 执行流程 config 提示 标签 oca 映射 pat 集成 原文地址:https://www.cnblogs.com/xidianlxf/p/14214030.htmlMVC框架
什么是MVC框架?
struts2的执行流程?
Struts2中的拦截器,你都用它干什么?