SpringMVC是一个前端控制框架,将代替传统的Servlet干活。SpringMVC是Spring的一大组件。
Serclet的缺点:
1- 1个servlet至少需要配置8行xml,如果大型系统servlet数量众多,那么整个xml配置将变得非常的繁琐,
2-servlet获取用户传入的数据比较繁琐,每接收一个数据都需要写 request.getParameter("name")
3-服务端获取的参数类型都是String类型,需要程序员手动转化类型。
4-对于一个操作,都需要编写一个Servlet进行处理
5-servlet的方法单一,只有doget() doPost();
SpringMVC的组件:
1-前端控制器 只负责request和response对象的转发
2-处理器映射器 将URL匹配对应的Controller
3-处理器适配器 执行对应的handel
4-视图解析器 将页面的逻辑名称,转化为对应的具体页面路径
SpringMVC调用过程:
1-客户发送request请求
2-请求处理器映射器处理handler(找到匹配的Controller类)
3-返回能够处理的那个Controller类
4-请求处理器适配器执行handler(内部按照匹配规则执行)
5-执行handler(Controller-service--dao)
6-将处理结果进行返回,返回ModelAndView对象(model表示处理后的数据 View表示页面的逻辑名称hello)
7-将ModelAndView对象返回给前端控制器
8-请求视图解析器解析View对象(将页面的逻辑名称,拼接成一个完整的页面路径 /WEB-INF/hello.jsp)
9-将完整的页面路径再次返回值给前端控制器
10-将model数据填充到页面中的Request域中
入门案例
1-导入jar包:
2-配置DispatcherServlet——在web.xml中
3-编写springMVC的核心配置文件
名称规定:默认条件下配置文件的名称为+servlet的名称+“-servlet.xml” ----> (springmvc-servlet.xml)
4-实现Controller接口
5-配置视图解析器
;
springMVC修改核心配置文件的位置:
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--修改配置文件的位置 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping>
springMVC的注解形式:
1-开始springMVC注解
2-使用注解@RequestMapping
获取request对象和response对象:
解决中文乱码问题:
<!--解决中文乱码问题 --> <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>