什么是Spring MVC,以及其优点
一个基于MVC(model,view,controller)模式的web开发架构。可以将model,view,controller分离为逻辑清晰的几部分,简化开发流程。
易于扩展,视图技术灵活(JSP/FTL),支持各种请求资源的映射策略。
springMVC和struts2的区别有哪些?
(1)springmvc的入口是一个servlet即前端控制器(DispatchServlet),而struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilter)。
(2)springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
(3)Struts采用值栈存储请求和响应的数据,通过OGNL存取数据,springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl。
单例模式:
springMvc是一个单实例的模式,在使用时contoller不能有读写属性的操作,防止多线程环境下的线程安全问题。