1、MVC(Model、View、Controller)
即:模型、视图、控制器的简写,是一种软件设计规范
模型:dao、service,数据模型,提供要展示的数据,包含数据和行为
视图:jsp,负责进行模型的展示
SpringMVC
Spring 中的一部分,实现MVC的轻量级Web框架
Spring 的web框架围绕dispatcherServlet 设计,他的作用是将请求分发到不同的处理器
2、SpringMVC 的执行原理
- 用户请求找到dispatchServlet, dispatchServlet中绑定了一个SpringMVC 的配置文件,根据配置就能够找到 这个SpringMVC 的配置文件。
- SpringMVC 配置文件中的处理器映射器,能够找到 用户 url 中的控制器,并将这个控制器返回出去。
- 处理器适配器就找到映射器返回的Controller来处理具体的业务,最终返回一个ModelAndView ,并由HandlerAdapter将视图逻辑名或模型返回给dispatcherServlet
- 最后视图解析器根据处理器适配器返回的ModelAndView,视图解析器会将前缀、后缀以及用户请求的页面名称拼接起来,调用具体的视图最终呈现给用户
3、Controller配置
实现Controller接口
通过注解开发
视图是被复用的,而控制器与视图之间是弱偶合关系。
注解方式是平时使用的最多的方式!
4、RestFul 风格
@PathVariable :路径变量,让方法参数的值对应绑定到URL模板变量上。
@RequestMapping( value=“URL” method=RequestMethod.XXX ),value/path 来定义路径,method来定义请求方式
组合注解:
就分别对应给method属性设置这些请求方式
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping
组合注解的作用:
@RequestMapping(value = “url” method =RequestMethod.GET) == @GetMapping( “url” )
5、转发和重定向
重定向地址栏会变化
无需视图解析器
@Controller
public class ResultSpringMVC {
@RequestMapping("/rsm/t1")
public String test1(){
//转发
return "/index.jsp";
}
@RequestMapping("/rsm/t2")
public String test2(){
//转发二
return "forward:/index.jsp";
}
@RequestMapping("/rsm/t3")
public String test3(){
//重定向
return "redirect:/index.jsp";
}
}
使用视图解析器
// 2. 使用视图解析器,return的时候默认是转发操作
// 重定向直接加上 redirect:/XXX 就可以
@RequestMapping(value="/test2")
public String test2(){
return "test2";
}
@RequestMapping(value="/test")
public String test(){
// 重定向
return "redirect:/test2";
}
6、参数处理
如果域名称和方法中的参数名不一致则可以使用 @RequestParam(“xxxx”) xxx表示提交域传入的域名称
每个从前端接收到的参数都要使用这个注解(清楚明了,更好的配置)
7、乱码问题
- 自定义过滤器
- SpringMVC提供的过滤器
- 大神的过滤器
8、JSON
Jackson
- @RestContrller 作用于一个Controller ,让这个Controller中的所有方法都返回json 字符串
- @ResponseBody 作用于一个方法,返回json字符串。
- 对java 对象的转换
- 对象
- 列表
- Date
- JsonUtil 类
乱码问题
-
@RequestMapping 的 produces 属性
//produces:指定响应体返回类型和编码 @RequestMapping(value = "/json1",produces = "application/json;charset=utf-8")
-
Spring 统一配置
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8"/> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperfactorybean"> <property name="failOnEmptyBeans" value="false"/> </bean> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
Fastjson
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。