1.springMVC是表现层框架,DispatcherServlet前端控制器是整个流程的核心,由它调用其他组件处理用户的请求,降低了组件间的耦合性.HandlerMapping处理器映射器、HandlerAdapter处理器适配器、ViewResolver视图解析器为springMVC的三大组件.
2.SpringMVC的工作原理
① 用户向服务器发送请求,请求被springMVC前端控制器DispatcherServlet捕获;
② DispatcherServlet对请求的url进行解析,得到请求资源标识符(url),然后根据该url调用HandlerMapping将请求映射到处理器HandlerExecutionChain;
③ DispatcherServlet根据获取的Handler选择一个合适的HandlerAdapter适配器处理;
④ Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet;
⑤ Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherServlet通过ViewResolver视图解析器将逻辑视图转化为真正的视图View;
⑥ DispatcherServlet通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端
3.springMVC常用注解:
@Controller 标记类为控制器类,被springMVC控制用@RestController可以代替
@RequestMapping 用于请求 url 映射
@RequestBody注解实现接收http请求的json数据,将json数据转换为java对象
@ResponseBody注解实现将Controller方法放回对象转化为json响应给客户.
@RequestParam注解将指定的请求参数赋值给方法中的形参.
@SessionAttributes注解有选择地指定Model中的哪些属性需要转存到HttpSession对象当中
4.如何开启注解处理器和适配器?
在配置文件中开启mvc:annotation-driven来实现注解处理器和适配器的开启.
5.如何解决get和post乱码问题?
解决post乱码问题:在web.xml中配置一个CharacterEncodingFilter过滤器,设置为utf-8;
解决get乱码修改tomcat配置文件添加编码与工程编码一致.第二种方法 对参数进行重新编码String userName = New
String(Request.getParameter(“userName”).getBytes(“ISO8859-1”), “utf-8”);
6.SpringMVC怎么样设定重定向和转发的?
在返回值前加forward就是转发,加redirect就是重定向.
7.SpringMvc里面拦截器是怎么写的?
实现HandlerInterceptor接口或者实现WebRequestInterceptor接口,然后在配置器中配置使用mvc:interceptor标签