1. 什么是Spring MVC ?
由 小柱子 创建, 最后一次修改 2017-11-24
问题: 什么是Spring MVC ?
Spring MVC是一个基于MVC架构的用来简化web应用程序开发的应用开发框架,它是Spring的一部分,它和Struts2一样都属于表现层的框架。
MVC(Model模型 View 视图 Controller 控制器):这是一种软件架构思想,是一种开发模式,将软件划分为三种不同类型的模块,分别是模型,视图,和控制器。
模型:用于封装业务逻辑处理(java类);
视图:用于数据展现和操作界面(Servlet);
控制器:用于协调视图和模型(jsp);
处理流程:视图将请求发送给控制器,由控制器选择对应的模型来处理;模型将处理结果交给控制器,控制器选择合适的视图来展现处理结果;
优点:方便测试和代码的维护,分工协作等
2. Spring MVC的五大组键 ?
由 小柱子 创建, 最后一次修改 2017-11-24
问题: Spring MVC的五大组键 ?
前端控制器 (DispatcherServlet)
映射处理器(HandlerMapping)
处理器(Controller)
模型和视图(ModelAndView)
视图解析器(ViewResolver)
附: Spring MVC 的运行原理 文字解析: 客户端请求提交到DispatcherServlet 由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller DispatcherServlet将请求提交到Controller Controller调用业务逻辑处理后,返回ModelAndView DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图 视图负责将结果显示到客户
3. SpringMVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?
由 小柱子 创建, 最后一次修改 2017-11-24
问题: SpringMVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?
是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能,解决方案是在控制器里面不能写字段。
4. SpringMVC中控制器的注解一般用哪个,有没有别的注解可以代替?
由 小柱子 创建, 最后一次修改 2017-11-24
问题: SpringMVC中控制器的注解一般用哪个,有没有别的注解可以代替? 一般用@Controller注解,表示是表现层,不能使用别的注解代替。
5. @RequestMapping注解用在类上面有什么作用?
由 小柱子 创建, 最后一次修改 2017-11-24
问题: @RequestMapping注解用在类上面有什么作用?
用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
6. SpringMVC怎样设定重定向和转发 ?
由 小柱子 创建, 最后一次修改 2017-11-24
问题: SpringMVC怎样设定重定向和转发 ?
在返回值的前面加”forward”,就可以实现让结果转发;
在返回值的前面加上”redirect”,就可以让返回值重定向。
7. Spring MVC的优点:
由 小柱子 创建, 最后一次修改 2017-11-24 问题: Spring MVC的优点?
基于View框架的无缝集成,采用IOC便于测试
典型的纯MVC架构,Struts是不完全基于MVC框架的
与tapestry是纯正的Servlet系统
8. 基于注解的Spring MVC的应用编程步骤
由 小柱子 创建, 最后一次修改 2017-11-24 问题: 基于注解的Spring MVC的应用编程步骤
Step1:导包(Spring-webmvc),添加spring配置文件,配置前端控制器dispatcherServlet Step2: 写Controller Step3:写JSP Step4:在Spring的配置文件里面添加视图解析器、组建扫描、mvc注解扫描
9. SpringMVC如何读取请求参数值 ?
由 小柱子 创建, 最后一次修改 2017-11-24 问题: SpringMVC如何读取请求参数值 ?
方式1:通过request 方式2:通过@RequestParam 方式3:通过Javabean
10. Spring MVC如何向页面传值 ?
由 小柱子 创建, 最后一次修改 2017-11-24 问题: Spring MVC如何向页面传值 ?
方式1: 绑定数据到request 方式2: 返回ModelandView 方式3:绑定数据到ModelMap 方式4:绑定数据到Session
11. 系统如何分层 ?
由 小柱子 创建, 最后一次修改 2017-11-24 问题: 系统如何分层 ?
系统分为表现层(UI):数据的展现,操作页面,请求转发。
业务层(服务层):封装业务处理逻辑
持久层(数据访问层):封装数据访问逻辑
各层之间的关系: 表示层通过接口调用业务层,业务层通过接口调用持久层,这样,当下一层发生变化改变,不影响上一层的数据。 MVC是一种表现层的架构
12. Spring MVC如何解决中文乱码问题 ?
由 小柱子 创建, 最后一次修改 2017-11-24 问题: Spring MVC如何解决中文乱码问题 ?
可以使用SpringMVC提供的过滤器(CharacterEncodingFilter)来解决;只需要配置该过滤器就可以,需要注意的是:
过滤器的编码设置应该与jsp页面保存一致
表单的提交方式设置为post
13. SpringMVC中的拦截器问题 ?
由 小柱子 创建, 最后一次修改 2017-11-24 问题: SpringMVC中的拦截器问题 ? DispatcherServlet收到请求之后,如果有拦截器,则先执行拦截器的方法,在执行处理器的方法; 注意:过滤器属于Servlet规范,拦截的是Servlet容器的调用过程 拦截器属于spring框架,拦截的是DispatcherServlet的调用过程 如何写一个拦截器: 1) 写一个java类,实现HandlerInterceptor接口; 2) 在接口方法当中,实现处理逻辑。 3) 配置拦截器 4) 拦截器还可以设置优先级:依据配置的顺序来执行
14. Spring MVC的异常处理 ?
由 小柱子 创建, 最后一次修改 2017-11-24 问题: Spring MVC的异常处理 ? 可以将异常抛给Spring框架,由Spring框架来处理;我们只需要配置简单的异常处理器,在异常处理器中添视图页面即可。
15. Spring MVC和Struts2的异同 ?
由 小柱子 创建, 最后一次修改 2017-11-24 问题: Spring MVC和Struts2的异同 ?