SpringMVC简介以及数据响应

SpringMVC简介以及数据响应 SpringMVC的步骤描述• (1) 前端控制器调用其他组件(2) 处理器映射器进行地址解析并且返回对应的执行链条例如执行请求前面还有很多过滤器之类的(3) 处理器适配器被前端控制器调用帮我们执行处理器(4) 处理器自己写的controller(5) 视图解析器解析传进来的ModelAndViewSpring-mvc.xml配置?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:contexthttp://www.springframework.org/schema/context !-- 注意要替换命名空间-- xmlns:mvchttp://www.springframework.org/schema/mvc xsi:schemaLocation http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd !-- controller的组件扫描-- context:component-scan base-packagecom.Itheima.controller context:include-filter typeannotation expressionorg.springframework.stereotype.Controller/ /context:component-scan !-- 配置内部资源视图解析器-- bean idviewResolver classorg.springframework.web.servlet.view.InternalResourceViewResolver !-- /jsp/success.jsp-- property nameprefix value/jsp//property property namesuffix value.jsp/property /bean !-- 配置处理器适配器-- !-- bean classorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter-- !-- property namemessageConverters-- !-- list-- !-- bean classorg.springframework.http.converter.json.MappingJackson2HttpMessageConverter/bean-- !-- /list-- !-- /property-- !-- /bean-- !-- 这句话可以替代上面的 -- mvc:annotation-driven/ /beans相关类的实现package com.Itheima.controller; import com.Itheima.domain.User; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; RequestMapping(/user) public class UserController { // 访问地址http://localhost:8080/user/quick RequestMapping(value /quick,method RequestMethod.GET,params {username}) public ModelAndView user(HttpServletRequest request) { // model 模型 用来封装数据 // view 视图 用来展示数据 ModelAndView mv new ModelAndView(); // 设置模型数据 mv.addObject(username,itcast); // 设置视图名称 mv.setViewName(success); return mv; } RequestMapping(value /quick2) public ModelAndView user2(ModelAndView modelAndView) { // 自动根据形参 创造了实参 // 设置模型数据 modelAndView.addObject(username,itcast); // 设置视图名称 modelAndView.setViewName(success); return modelAndView; } RequestMapping(value /quick3) public String user3(Model model) { model.addAttribute(username,博学谷); return success; } // 这种方法知道就可以 不重点 RequestMapping(value /quick4,method RequestMethod.GET,params {username}) public String user4(HttpServletRequest request) { request.setAttribute(username,坂田盐焗鸡); return success; } /* % page contentTypetext/html;charsetUTF-8 languagejava % html head titleTitle/title /head body h1success! ${username}/h1 /body /html */ RequestMapping(value /quick5) ResponseBody public String user5() { return 你好呀,这里直接返回字符串; } RequestMapping(value /quick6) ResponseBody public String user6() { // 使用json转换工具将对象直接转换为json的字符串 return 你好呀,这里直接返回字符串; } RequestMapping(value /quick7) ResponseBody public String user7() { // 使用json转换工具将对象直接转换为json的字符串 return {\username\:\zhangsan\,\age\:18}; } RequestMapping(value /quick8) ResponseBody public String user8() throws JsonProcessingException { User user new User(); user.setName(zhangsan); user.setAge(18); ObjectMapper mapper new ObjectMapper(); String json mapper.writeValueAsString(user); return json; } RequestMapping(value /quick9) ResponseBody public User user9() { User user new User(); user.setName(lisi); user.setAge(18); // 期待的是Springmvc可以自动的将user转换成json的字符串 // 需要在Spring-mvc里面做配置 配置处理器适配器 return user; } }