1:spring MVC简介(是什么)?

SpringMVC 是一个基于 Java 的实现了 MVC 设计模式的请求驱动类型的轻量级 Web 框架,通过把 视图渲染和业务处理分离,将 web 层进行职责解耦,把复杂的 web 应用分成逻辑清晰的几部分,简化开发,减少出错。

2:spring MVC的流程?

image.png
前端发送请求到达springMVC中的前端控制器,前端控制器去处理器映射器请求查询对应的处理器,处理器映射器返回一个执行链给前端控制器,前端控制器通过执行链寻找到处理器适配器找到对应的处理器进行操作(处理器也就是controller层,进行·数据解析),处理器返回一个modelAndView对象给处理器适配器,处理器适配器将这个对象返回给前端控制器,前端控制器通过视图解析器对这个对象进行解析。解析完成后将view返回给前端控制器,前端控制器进行视图渲染(将modelAndView填充到request域中)

3:SpringMVC的核心组件?

DispatcherServlet:前端控制器,相当于中央处理器,降低组件之间的耦合性
handlemapping:处理器映射器,找寻disPatcherSeverlet所需要的handle
handleAdapter:将各种handle适配成DispatcherServlet可以使用的handle;
handle:处理器,也就是我们所说的controller
ViewResolver:进行视图解析

4:SpringMVC 常用的注解有哪些?

@RequestMapping:可以作用与方法或者类上,里边有具体的属性,可以选择对应的请求方法
@ResponseMapping:将controller中的java对象转换成json数据发送给前端。
@RequestBody:接受前端响应回来的json数据并且将json数据转换成java对象
@Autowired:按照类型进行装配依赖对象
// @Resource:按照名称进行装配依赖对象。(并不是spring的注解,但是spring支持)
@requestParam主要用于在SpringMVC后台控制层获取参数,类似一种是request.getParameter(“name”)

5:springMVC中拦截器怎么写?

(1):实现HandleInterceptor接口;
重写里边三个方法
preHandle();处理方法之前执行,返回false时候。将不会执行处理方法。可以做日志,权限等操作。
postHandle();处理方法之后执行,做一些清理工作
afterCompletion();视图渲染后执行,资源释放等。
(2):继承HandleInterceptor接口的实现类HandlerInterceptorAdapter,可根据需求重写里边的方法。

4. springmvc怎么处理异常

设置全局异常处理器
使用 @Controlleradvice 注解+@ExceptionHandler,controlleradvice 放在类上面,表示这是一个增强类,ExceptionHandler放在方法上面,里边有具体的属性,可以设置要处理那种异常。

5. 拦截器和过滤器的区别

image.png

1:servlet简介(是什么)?

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

2:servlet生命周期?

servlet生命周期也就是从创建到毁灭的过程。
初始化——》执行init()——》执行service()——》执行destory()
init():简单创建或者加载一些数据
service():根据前端传过来的请求类型重写doget()或者dopost();执行实际内容。
destory():执行后servlet被标记为垃圾等待回收。

3:JSP与Servlet有什么区别

servlet是服务器端的程序,动态生成Html页面,但是这样会让java代码与html语言混合在一起,非常乱。后来sun公司推出了jsp。
jsp其实就是servlet。jsp文件每次运行时候,会先编译成servlet文件,然后在转变为字节码文件。jsp负责动态生成页面,servlet负责逻辑应用。

4:jsp中的四种作用域?

(1)page:一个页面
(2)request::一次请求
(3)session:一次会话
(4)application:服务器从启动到停止。

5:jsp的内置对象?

image.png
6:forward(转发)和redirect(重定向)的区别?
forword是服务器内部的重定向,服务器直接访问目标地址的 url网址,把里面的东西读取出来,但是客户端并不知道,因此用forward的话,客户端浏览器的网址是不会发生变化的。
redirect是服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新的地址。
forword转发是服务器上的行为,而redirect重定向是客户端的行为
~~~forword只有一次请求;而redirect有两次请求,