软件架构
模型:通常指的是我们的数据模型。作用一般情况下用于封装数据。
视图:通常指的就是我们的jsp或者html。作用一般就是展示数据。通常视图是依据模型数据创建的
控制器:是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑的
1.清晰的角色划分
前端控制器
请求到处理器映射
处理器适配器
视图解析器
处理器或页面控制器
验证器
命令对象
表单对象
2.分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要
3.由于命令对象就是一个POJO,无需继承框架特定API,可以使用命令对象直接作为业务对象
4.和spring其他框架无缝集成,是其它web框架所不具备的
5.可适配,通过handleradapter可以支持任意的类作为处理器
6.可定制性,handlerMapping,ViewResolver等能够非常简单的定制
7.功能强大的数据验证,格式化,绑定机制
8.利用spring提供的mock对象能够非常简单的进行web层单元测试
9.本地化,主题的解析的支持,使我们更容易进行国际化和主题的切换
10.强大的JSP标签库,使JSP编写更容易
tomcat安装部署,乱码解决,配置到idea
https://www.cnblogs.com/qiudongxu/p/10978057.html
https://www.cnblogs.com/ws0316/p/11849316.html
配置tomcat服务器
写好代码准备运行报了一个错误
org.springframework.web.servlet.DispatcherServlet noHandlerFound
这是我访问的路径不对没有加上后缀
加上http://localhost:8080/SpringMVC/user/hello
访问报错
java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
解决办法:https://blog.csdn.net/a3025056/article/details/53431625
运行结果
@RequestMapping 表示配置路径请求
value属性:表示url路径
method属性:表示该方法是以何种请求类型来触发的,默认情况下任何请求类型都可以出发
请求参数绑定
springMVC绑定请求参数的过程是通过把表单提交请求参数,作为控制器中方法参数进行绑定的。
无论通过get请求还是post请求从前台向后台发送参数,都可以直接使用同参数名的局部变量来绑定数据
如果参数名和属性名不一致,则需要设置注解@RequestParam
@RequestParam用来配置请求参数
value属性:表示参数名称,当参数名和方法局部变量名称不同时指定
required属性:默认值为true,表示必须传入该参数,如果没有,则报错
关于请求参数乱码问题
springmvc自带字符集过滤器,但是需要自行开启配置