JAVA面试锦囊(六)

● 简单介绍一下MVC模式?

    MVC全名是Model View Controller,是模型(model) -- 视图(view) -- 控制器(controller)的缩写。一种软件设计典范,用一种业务逻辑数据界面显示分离的方法组织代码,将业务逻辑聚焦到一个部件里面。在改进和个性化定制界面以及用户交互的同时,不需要重新编写业务逻辑。

  最简单、最经典的就是JSP(view)+ Servlet(Controller)+ JavaBean(model)

(1) 控制器接收来自用户请求。

(2) 控制器调用JavaBean来完成业务。

(3) 完成业务后通过控制器跳转JSP页面的方式给用户反馈信息。

(4) JSP为用户做出最终的响应。

● 简单说一下对MVC框架的理解?

    是为了解决传统MVC模式一些问题问题而出现的框架,传统的mvc模式存在一下问题:

(1) 所有的Servlet和Servlet映射都要配置在web.xml中,如果项目太大。web.xml太庞大了,并且不能实现模块化管理

(2) Servlet的主要功能就是接收参数、调用逻辑、跳转页面,比如像其他字符编码文件上传等功能也要写在Servlet中,需要做特定的处理。

(3) 接收参数麻烦,不能通过model接收。只能单个的接收。接收完成后需要手动设置进model中。

(4) 跳转页面的方式比较单一(forword,redirect),并且当页面发生修改时需要修改Servlet源代码。

● Struts2的执行流程或者Struts2的原理?

(1) 客户端向服务端发起一个请求,这个请求经过一系列的过滤器(Filter),到达核心Filter。接着FilterDispatcher(StrutsPrepareAndExecuteFilter)被调用,询问ActionMapper来决定着请求是否需要调用某一个Action,如果不需要则走原来的流程。

(2)如果ActionMapper决定需要调用某个Action时,FilterDispatcher(StrutsPrepareAndExecuteFilter)把这个请求交给ActionProxy;

(3) ActionProxy通过Configuration Manager询问框架的配置文件(struts.xml),找到需要调用的Action类。

(4) ActionProxy创建一个ActionInvocation实例。

(5) ActionInvocation实例使用命名模式来调用,在调用Action的过程中前后,涉及到相关的拦截器(Intercepter)的调用。

(6) 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置文件找到对应的返回结果。返回结果通常是一个需要被表示的JSP或者FreeMarker的模板。

● Struts2的拦截器是什么?你都用它干什么?

    在struts2中的功能(参数处理文件上传字符编码等)都是通过用拦截器完成的。

    我们也可以自定义拦截器,进行可插拔配置,在执行Action的方法前后执行相关逻辑完成业务。如:

(1) 用户登录判断,在执行Action的前面判断是否已经登录,如果没有登录的跳转到登录页面。

(2) 用户权限判断,在执行Action的前面判断是否具有权限,如果没有权限就给出提示信息。

操作日志

● 说说Spring MVC的执行流程?

(1) 用户向服务器发送请求,请求被Spring前端控制器Servlet(DispatcherServlet)捕获。

(2) DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器)。最后以HandlerExecutionChain对象的形式返回。

(3) DispatcherServlet选择一个合适的HandlerAdapter。提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller),Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象。

(4) DispatcherServlet根据返回的ModelAndView,选择一个合适的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)。

(5) 通过ViewResolver结合ModelView渲染视图。DispatcherServlet将渲染结构返回给客户端。

随着信息技术在管理上越来越深入而广泛的应用,作为学校以及一些培训机构,都在用信息化战术来部署线上学习以及线上考试,可以与线下的考试有机的结合在一起,实现基于SSM的小码创客教育教学资源库的设计与实现在技术上已成熟。本文介绍了基于SSM的小码创客教育教学资源库的设计与实现的开发全过程。通过分析企业对于基于SSM的小码创客教育教学资源库的设计与实现的需求,创建了一个计算机管理基于SSM的小码创客教育教学资源库的设计与实现的方案。文章介绍了基于SSM的小码创客教育教学资源库的设计与实现的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。 本基于SSM的小码创客教育教学资源库的设计与实现有管理员,校长,教师,学员四个角色。管理员可以管理校长,教师,学员等基本信息,校长角色除了校长管理之外,其他管理员可以操作的校长角色都可以操作。教师可以发布论坛,课件,视频,作业,学员可以查看和下载所有发布的信息,还可以上传作业。因而具有一定的实用性。 本站是一个B/S模式系统,采用Java的SSM框架作为开发技术,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得基于SSM的小码创客教育教学资源库的设计与实现管理工作系统化、规范化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值