
目录
1.什么是MVC?
2.什么是SpringMVC框架。
3.为什么要使用SpringMVC框架。
4.如何使用springmvc
5.springmvc的运行流程
6.如何在controller接受请求的参数
7.处理静态资源
MVC就是一个分层架构模式:
springMVC它是spring框架的一个分支,该springMVC框架主要完成的功能是:接收浏览器的请求响应,对数据进行处理,然后返回页面进行显示 可以把它理解为和Servlet干的工作是一样的
(1)创建一个maven-web工程。
注意: 替换现在的web.xml文件,因为web.xml文件版本过低,后续会出严重的bug
(2)引入springmvc的依赖
org.springframework
spring-webmvc
5.2.15.RELEASE
带有RELEASE的是较稳定的springmvc.jar包
(3) 注册DispatcherServlet到web.xml文件上
DispactherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc.xml DispactherServlet /
(4) 创建springmvc配置文件
(5)创建一个controller类
//该注解标记该类为处理层类---类似@WebServlet
@Controller
public class UserColltroller {
@RequestMapping("save")//把请求路径映射到该方法上。
public String save(User u){
System.out.println(u);
return "main.jsp";//响应一个页面
}
}
- 客户端发生请求http://localhost:8080/qy151_springmvc01/abc
- 来到tomcat服务器。
- springmvc的前端控制器DipatcherServlet接受所有的请求。
- 查看你的请求地址和哪个@RequestMaping匹配。
- 执行对应的方法。方法会返回一个字符串。springmvc把该字符串解析为要转发的网页。
- 把该字符串经过视图解析器拼接。
- 拿到拼接的地址,找到对应的网页。
- 渲染该网页给客户
在接收大量参数时,封装一个实体类来接受这些参数
解决接受的参数值乱码:---只能添加过滤器
(1)创建编码过滤器. jdk1.8一定要重写init和destory方法 1.9以后可以不写
@WebFilter(filterName = "EncodingFilter",urlPatterns = "/*")
public class EncodingFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
filterChain.doFilter(servletRequest,servletResponse);
}
public void destroy() {
}
}
(2)springmvc提供了一个编码过滤器.
注册编码过滤器
encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 encodingFilter /*
接受的参数含有日期类型
解决办法:
在时间类型的属性上添加一个注解:@DateTimeFormat(pattern = "")
在springmvc配置文件上开启注解驱动
无法加载图片: 原因:springmvc的前端控制器DispatcherSerlvet也把静态资源拦截器。放行静态资源