Java_SpringMVC(18)

1、什么是MVC
  • 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配置文件添加编码与工程编码一致,如下:
<ConnectorURIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
  • 对参数进行重新编码:
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());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值