1.简单介绍下你对springMVC的理解?
是基于java的轻量级MVC框架,
通过对Model、view、Controller分离,把web应用分成逻辑清晰的几部分,简化了开发,方便了开发人员的配合。
2.说一说SpringMVC的重要组件及其作用
前端控制器(DispatcherServlet): 接收请求、响应结果,降低了组件之间的耦合性
处理器映射器(HandlerMapping): 根据url去查找对应的处理器(Handler)。
处理器适配器(HandlerAdapter): 执行处理器(Handler)。
处理器(Handler): 处理业务逻辑的类,程序员编写。
视图解析器(ViewResolver): 将逻辑视图名称解析为实际的视图对象。它根据视图名称查找对应的视图实现,并将其返回给DispatcherServlet以便呈现给客户端。
视图(View): 是一个接口,它的实现类支持不同类型的视图,jsp,pdf等。
3.SpringMVC的工作原理或流程
①用户发送请求,前端控制器接到请求。
②前端控制器把请求分发给处理器映射器。
③处理器映射器根据url去找对应的处理器。
④获取处理器,返回给处理器映射器。
⑤处理器映射器返回给前端控制器。
⑥前端控制发给处理器适配器,请求执行处理器。
⑦处理器适配器通知处理器执行业务逻辑。
⑧然后处理器返回ModelAndView。
⑨处理器适配器把ModelAndView返回给前端控制器。
⑩前端控制器发给视图解析器,视图解析器根据视图名称去查询视图。
⑪返回真正的视图。
⑫渲染视图。
⑬返回视图,给前端控制器。
⑭然后响应用户的请求。
4.SpringMVC的优点
①支持各种视图。JSP、PDF等
②可以与spring集成。
③各个组件分工明确。解耦。
5.SpringMVC常用注解
@RequestMapping:用于处理请求的URL,可以用于方法或类。
@RequestBody:接受请求的json数据,转换成java对象。
@ResponseBody:将controller返回对象,转成json响应回去。
@RestController:相当于@Controller和@ResponseBody。
@PathVariable:用于接收路径参数,比如@RequestMapping(“/hello/{name}”)声明的路径,将注解放在参数前,即可获取该值
6.SpringMVC和struts2的区别
①SpringMVC入口是servlet(前端控制器),struts2入口是过滤器。
②SpringMVC基于方法开发,struts2基于类开发。
7.怎么实现SpringMVC拦截器
①实现HandlerInterceptor接口。
②继承适配器类。
8.SpringMvc的控制器是不是单例模式?如果是,有什么问题?怎么解决?
是单例模式,
在多线程访问的时候有线程安全问题。
解决方案是不在控制器里面写可变状态量,如果需要使用这些可变状态量,可以使用ThreadLocal机制解决,为每个线程单独生成一份变量副本,独立操作,互不影响。
9.在 SpringMVC 中拦截器的使用步骤是什么样的?
定义拦截器类: 创 建 一 个 类 实 现 HandlerInterceptor接口,重写接口中的抽象方法。这个接口包含了三个主要的方法:preHandle、postHandle和afterCompletion。
preHandle 方法: 在调用处理器之前调用该方法,如果该方法返回 true 则请 求继续向下进行,否则请求不会继续向下进行,处理器也不会调用。
postHandle 方法: 在调用完处理器后调用该方法 。
afterCompletion 方法: 在前端控制器渲染页面完成之后调用此方法。
2. 注册拦截器
拦截器创建完成后,需要在Spring MVC的配置中注册这个拦截器。这可以通过Java配置或XML配置来完成。
3. 使用拦截器
拦截器配置完成后,它将在指定的路径上拦截请求并执行相应的任务。
10.说一下SSM和SSH都代表哪些框架?
SSM:SpringMVC,Spring,Mybatis。
SSH:struts,Spring,Hibernate。
11.什么是DispatcherServlet(前端控制器)
12.注解原理是什么
13. SpingMvc中的控制器的注解一般用哪个,有没有别的注解可以替代?
14. @Controller注解的作用
15. @RequestMapping注解的作用
16. @ResponseBody注解的作用
17. @PathVariable和@RequestParam的区别
18.Spring MVC怎么样设定重定向和转发的?
19. Spring MVC怎么和AJAX相互调用的?
20.如何解决POST请求中文乱码问题,GET的又如何处理呢?
21。Spring MVC的异常处理?
答:可以将异常抛给Spring框架,由Spring框架来处理;我们只需要配置简单的异常处理器,在异
常处理器中添视图页面即可。