一,JavaEE体系结构
客户端层 ---- web层 ----- 业务层 ----- 持久层
什么事mvc
控制层:接受请求、转发请求(controller)
模型层:处理请求返回结果(JavaBean+业务处+持久层)
视图层:渲染视图
mvc思想:任何重定向都能解耦
springmvc执行流程
用发送请求
前端控制器(DispatcherServlet)接收请求、转发请求(web.xml)
处理器映射器(HandlerMapping)寻找执行类,返回结果(springmvc.xml)
前端控制器再请求执行类
处理器适配器(handlerAdapter)执行类,处理器(handler)执行方法,返回modelAndView
视图解析器ViewResolver解析modelAndView
视图渲染器(view)渲染视图
返回用户
乱码处理(web.xml)
<filter>
<filter-name>characterEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
RestFull风格
@PathVariable:{}里面参数注入后面参数里面
url = "${pageContext.request.contextPath}/rest/user/updateById/123"
@RequestMapping("updateById/${id}")
public String updateById(@PathVariable Integer id){}
转发和重定向
转发
方式一:return ”forward:list.do“;
方式二:return ”forward:/user/list.do“;
重定向方式:
方式一:return ”redirect:list.do“;
方式二:return ”redirect:/user/list.do“;
@responseBody把后台pojo转换json对象,返回到页面。
需要导入jar包
<mvc:annotation-driven/>默认创建注解处理器映射器,注解处理器适配器。提供json格式支持。