概述
回顾:
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(恒不跳转)
- 如果返回值满足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;
}
- 如果返回值不满足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续所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复