苏州装修公司网站建设,专业俄文网站建设,过年做那些网站能致富,防腐木用什么名字做网站一、Spring MVC
#xff08;1#xff09;介绍
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架。
通过把Model#xff0c;View#xff0c;Controller分离#xff0c;将web层进行职责解耦#xff0c;把复杂的web应用分成逻辑清晰的几部分1介绍
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架。
通过把ModelViewController分离将web层进行职责解耦把复杂的web应用分成逻辑清晰的几部分简化开发减少出错。
2优点
1、可以支持各种视图技术而不仅仅局限于JSP
2、与Spring框架集成如IoC容器、AOP等
3、清晰的角色分配前端控制器(dispatcherServlet) 请求到处理器映射handlerMapping)处理器适配器HandlerAdapter)视图解析器ViewResolver。
4、 支持各种请求资源的映射策略。
3主要组件
1、DispatcherServlet
接收请求、响应结果相当于转发器有了DispatcherServlet 就减少了其它组件之间的耦合度。 2、HandlerMapping
根据请求的URL来查找Handler 3、HandlerAdapter
负责适配执行Handler 4、Handler
处理器业务逻辑的入口 5、ViewResolver
进行视图的解析根据视图逻辑名将ModelAndView解析成真正的视图view 6、View
View是一个接口 它的实现类支持不同的视图类型如jspfreemarkerpdf等等 二、 SpringMVC注解
1常用的注解
RequestMapping用于处理请求 url 映射的注解可用于类或方法上。用于类上则表示类中的所有响应请求的方法都是以该地址作为父路径。
RequestBody注解实现接收http请求的json数据将json转换为java对象。
ResponseBody注解实现将controller方法返回对象转化为json对象响应给客户。
2控制器的注解
Controller
RestControllerRestController注解相当于ResponseBody Controller
3RequestMapping
用于类上表示类中的所有响应请求的方法都是以该地址作为父路径。
用于方法上表示响应请求的方法以该地址作为请求路径 三、SpringMVC的工作原理
1用户发送请求到DispatcherServlet 2DispatcherServlet收到请求后调用HandlerMapping请求获取Handler 3HandlerMapping根据url找到合适的Handler生成Handler对象及Interceptor(如果有则生成)一并返回给DispatcherServlet 4DispatcherServlet 调用 HandlerAdapter请求执行Handler 5HandlerAdapter 经过适配调用Handler进行处理业务逻辑 6Handler执行完成返回ModelAndView 7HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet 8DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析 9ViewResolver解析后返回具体View 10DispatcherServlet对View进行渲染视图 11DispatcherServlet响应用户 四、常见问题
1SpringMVC怎么样设定重定向和转发的
1、转发在返回值前面加forward:
2、重定向在返回值前面加redirect:譬如redirect:http://www.baidu.com 2springMVC和struts2的区别有哪些?
1、springmvc的入口是一个servlet即前端控制器DispatchServlet而struts2入口是一个filter过虑器StrutsPrepareAndExecuteFilter。
2、springmvc是基于方法开发(一个url对应一个方法)请求参数传递到方法的形参可以设计为单例或多例(建议单例)struts2是基于类开发传递参数是通过类的属性只能设计为多例。
3、Struts采用值栈存储请求和响应的数据通过OGNL存取数据springmvc通过参数解析器是将request请求内容解析并给方法形参赋值将数据和视图封装成ModelAndView对象最后又将ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl。 3如何解决POST请求中文乱码问题GET的又如何处理呢
1、解决post请求乱码问题在web.xml中配置一个CharacterEncodingFilter过滤器设置成utf-8 2、get请求中文参数出现乱码解决方法有两个
①修改tomcat配置文件添加编码与工程编码一致如下 ②另外一种方法对参数进行重新编码 4SpringMvc里面拦截器是怎么写的
有两种写法一种是实现HandlerInterceptor接口另外一种是继承适配器类接着在接口方法当中实现处理逻辑然后在SpringMvc的配置文件中配置拦截器即可 5SpringMvc怎么和AJAX相互调用的
通过Jackson框架就可以把Java里面的对象直接转化成Js可以识别的Json对象。具体步骤如下
1、加入Jackson.jar
2、在配置文件中配置json的映射
3、在接受Ajax方法里面可以直接返回Object、List等但方法前面要加上ResponseBody注解。 6Spring MVC的异常处理
可以将异常抛给Spring框架由Spring框架来处理我们只需要配置简单的异常处理器在异常处理器中添视图页面即可。 7SpringMvc的控制器是不是单例模式如果是有什么问题怎么解决
是单例模式在多线程访问的时候有线程安全问题解决方案是在控制器里面不能写可变状态量如果需要使用这些可变状态可以使用ThreadLocal机制解决为每个线程单独生成一份变量副本独立操作互不影响。
8如果在拦截请求中我想拦截get方式提交的方法怎么配置
答可以在RequestMapping注解里面加上methodRequestMethod.GET。
9怎样在方法里面得到Request或者Session
直接在方法的形参中声明requestSpringMvc就自动把request对象传入。
10如果想在拦截的方法里面得到从前台传入的参数怎么得到
直接在形参里面声明这个参数就可以但必须名字和传过来的参数一样。
11如果前台有很多个参数传入并且这些参数都是一个对象的那么怎么样快速得到这个对象
直接在方法中声明这个对象SpringMvc就自动会把属性赋值到这个对象里面。
12SpringMvc中函数的返回值是什么
答返回值可以有很多类型有StringModelAndView。ModelAndView类把视图和数据都合并的一起的但一般用String比较好。
13SpringMvc用什么对象从后台向前台传递数据的
1、绑定数据到request
2、返回ModelandView
3、绑定数据到ModelMap
4、绑定数据到Session
14怎么样把ModelMap里面的数据放入Session里面
可以在类上面加上SessionAttributes注解里面包含的字符串就是要放入session里面的key。 15系统如何分层
1、表现层UI数据的展现操作页面请求转发。
2、业务层服务层封装业务处理逻辑
3、持久层数据访问层封装数据访问逻辑
各层之间的关系 表示层通过接口调用业务层业务层通过接口调用持久层这样当下一层发生变化改变不影响上一层的数据。 MVC是一种表现层的架构思想。