MVC是一种分离业务逻辑、数据、视图的设计模式,分层设计,并发开发。Model模型:业务处理与数据存取;View视图:数据显示;Controller:处于模型与视图中间,处理用户交互; 2、什么是Spring MVC
Spring MVC基于Java,实现MVC设计模式的轻量级web框架;分离业务逻辑、数据、视图,简化开发; 3、Spring MVC的优点
可以支持各种视图技术,而不仅仅局限于JSP;与Spring框架集成(如IoC容器、AOP等);清晰的角色分配:前端控制器 , 处理器映射, 处理器适配器, 视图解析器;支持各种请求资源的映射策略; 4、SpringMVC流程
外部请求达到dispatcherServelt中心调度器;注册器将请求分发给Controller控制器;控制器将请求传递给Model进行业务处理和数据存储;Model将处理结果返回给控制器;控制器返回一个ModelAndView给中心控制器;中心控制将其给view视图解析器进一步处理;View将处解析后的视图返回到中心控制器;中心控制器进行渲染返回给前端用户; 5、SpringMVC主要组件
前端控制器DispatherServelt;处理器Handler;(需开发)处理器映射器:根据url查找处理器;处理器适配器:执行处理器;视图解析器:进行视图解析;视图View;(需开发) 6、什么是DispatcherServlet
中心控制器DispatcherServlet,用来处理所有的HTTP请求和响应; 7、什么是Spring MVC框架的控制器
控制器提供一个访问应用程序的行为,此行为通常通过服务接口实现;控制器解析用户输入并将其转换为一个由视图呈现给用户的模型;Spring用一个非常抽象的方式实现了一个控制层,允许用户创建多种用途的控制器。 8、SpringMVC常用注解
@Controller:标记控制器对象;@RequestMapping:映射请求路径到控制器;@PathVariable:处理url中参数;@RequestParam:处理body中参数;@ResponseBody:封装成一个返回对象;@Service:服务层;@ModelAttibute:该注解方法在Controller每个方法执行前执行;@RestController = @ResponseBody + @Controller 9、SpringMVC如何解决线程安全性问题
Controller默认是单列的;避免在Controller中使用实例变量;使用ThreadLocal变量; 10、Spring MVC的控制器是不是单例模式?有什么问题?怎么解决?
是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的; 11、Spring MVC怎么样设定重定向和转发的?
转发:在返回值前面加"forward:";
重定向:在返回值前面加"redirect:";
12、Spring MVC怎么和AJAX相互调用的通过Jackson框架就可以把Java里面的对象直接转化成Js可以识别的Json对象。具体步骤如下 :
加入Jackson.jar;
在配置文件中配置json的映射;
在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上@ResponseBody注解;
13、如何解决POST请求中文乱码问题,GET的又如何处理呢(1)解决post请求乱码问题:
在web.xml中配置一个CharacterEncodingFilter过滤器,设置成utf-8;
(2)get请求中文参数出现乱码解决方法有两个:
修改tomcat配置文件添加编码与工程编码一致,如下:
对参数进行重新编码:
String userName = new String(request.getParamter(“userName”).getBytes(“ISO8859-1”),“utf-8”)14、如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象
直接在方法中声明这个对象,Spring MVC就自动会把属性赋值到这个对象里面; 15、Spring MVC里面拦截器是怎么写的(自定义拦截器)
实现HandlerInterceptor接口;继承适配器类,在接口方法当中实现处理逻辑;然后在Spring MVC的配置文件中配置拦截器即可;提供preHandle、postHandle、afterCompletion 三种方法; 16、拦截器Interceptor与过滤器Fileter区别
Fileter是Servelt的支持,任何java web工程都可以使用,只能存在于web程序中,基于函数回调,只在servelt前后起作用;Interceptor是Spring容器内的,只有使用了SpringMVC框架的工程才能使用,可以作用于web、application等程序中,基于java反射机制,能够在方法前、中、后执行; 17、SpringMVC异常处理
@Controller+@ExceptionHandler:处理当前controller异常;@ControllerAdvice+@ExceptionHandler:处理全局异常; 18、SpringMvc如何实现文件上传
客户端post提交input = file;服务端使用MultipartFile类型接收,transto(new file());



