我是靠谱客的博主 靓丽睫毛膏,最近开发中收集的这篇文章主要介绍Spring框架学习笔记4——MVC续,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

回顾:

DispatcherServlet前端控制器:接受请求
HandlerMapping处理器映射器:解析请求
HandlerAdapter处理器适配器:调用方法
ViewResolver视图解析器:解析结果,跳转到具体视图。

SpringMVC运行原理:
如果在web.xml中设置DispatcherServlet的为/时,当用户发起请求,请求一个控制器时,首先执行DispacherServlet,由DispatcherServlet调用HandlerMapping的DefaultAnnotationHandlerMapping解析UR,解析后调用HandlerAdapter调用Controller中的HandlerMethod。当HandlerMethod执行完后回返回View,会被ViewResolver进行视图解析,解析后调用jsp对应的.class文件,最后将结果响应给客户端。

配置DispatcherServlet

1、跳转方式

默认跳转方式请求转发
设置返回值字符串内容

@RequestMapping("demo1")
public String demo1(){
     return "/1.jsp";//转发
     return "redirect:/1.jsp";
}

2、视图解析器

2.1 SpringMVC会提供默认视图解析器
2.2 配置自定义视图解析器

<!--springmvc.xml-->

<bean id="viewResolver" class="rog.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="perfix" value="/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>
@RequestMapping("demo2")
public String demo2(){
    return "index";//返回 /index.jsp
}

2.3 如果希望不执行自定义视图解析器,在方法返回值前面添加forward:或者 redirect:

@RequestMapping("demo3")
public String demo3(){
    return "forward:demo4");
}

@RequestMapping("demo4")
public String demo4(){
    System.out.println();
    return "main";
}

3、@ResponseBody

将返回值转换为json
能转成JSON:响应头application/json;charset-utf-8
不能转成JSON:响应头text/html
不跳转,用流输出
3.1 在方法上只有@RequestMapping时,无论方法返回值是什么都认为要跳转。

@RequestMapping("demo5")
@ResponseBody
public People demo5() throws IOException{
    People p=new People();
    p.setName("张三");
    p.setAge(12);
    return p;
}

3.2 在方法上添加@ResponseBody(恒不跳转)

  1. 如果返回值满足key-value形式(对象或map)
    把响应头设置为application/json;charset=utf-8
    把转换后的内容以输出流的形式响应给客户端
@RequestMapping(value="demo6",produces="application/json;charset=utf-8")
@ResponseBody
public People demo6() throws IOException{
    People p=new People();
    p.setAge(12);
    p.setName("zhang");
    return p;
}
  1. 如果返回值不满足key-value,例如返回值为String
    把响应头设置为text/html
    把方法返回值以流的形式输出
    如果返回值包含中文,中文乱码 ——produces表示响应头中Content-Type的取值
@RequestMapping(value="demo7",produces="text/html;charset=utf-8")
@ResponseBody
public String demo7() throws IOException{
    return "啦啦啦";
}

待补充…

最后

以上就是靓丽睫毛膏为你收集整理的Spring框架学习笔记4——MVC续的全部内容,希望文章能够帮你解决Spring框架学习笔记4——MVC续所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部