01-spring-mvc 概述
MVC(Model View cotroller),一种用于设计创建web应用程序表现层的模式
Model(模型):数据模型,用于封装数据
View(视图):页面视图,用于显示数据
- jsp
- html
Controller(控制器):处理用户交互的调度器,用于根据用户需求处理逻辑
- Servlet
- springMVC
02-制作入门案例
02.1-搭建spring-MVC环境
- 新建一个maven模块
- pom.xml文件<packging>war</packging>
- 导入servlet-api / jsp-api /
- 导入spring依赖 spring-context / spring- web /spring-webMVC
- 制定tomcat插件 tomcat7-maven-pluging
-配置tomcat
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>common-tomcat-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
02.2-创建spring-MVC的核心配置文件
- 先创建ApplicationContext.xml文件再创建spring-MVC.xml 文件
- 配置bean,扫描<context:component-scan base-packge="com.itheima"/>
- 配置web.xml <!--指定DispatcherServlet核心处理类(SpringMVC)-->
02.3- 新建一个controller类对外提供服务
02.4-spring-MVC技术架构图
- DispatcherServlet的作用是什么?
前端控制器,是整体流程控制的中心,由其调用其他组件处理用户的请求,有效的降低了组件间的耦合性
-HanderMapping的作用是什么?
处理器映射器,负责根据用户请求找到对应具体的Hander处理器
-Hander是什么?
处理器,业务处理的核心类,通常由开发者编写,描述具体的业务
对于请求的具体逻辑
- HandlAdapter是什么?
处理器适配器,通过它对处理器进行执行
- View Reslove是什么?
视图解析器,将处理结果生成View视图
- View视图是什么?
最终产出结果,常用视图如JSP,HTML
- spring-MVC的整体处理流程是什么?
//TODO 待总结
03-
03.1- 如何不让spring加载springMvc相关的注解?/如何让springMVC只加载和它相关的注解
- 在spring-mvc.xml文件中添加配置
03.2- 如何默认放行静态资源?
<mvc:resource mapping=" /img/* * " location=" /img/* * ">——细
<mvc:defult-servlet-handler>默认加载所有的静态资源——粗
必须开启spring的注解驱动,不然无法访问动态资源
03.3- 如何添加默认乱码处理器
配置在web.xml中
注:默认parm-name的encoding是没有提示的,不用管,需要手动的写全
04- 注解驱动
使用注解来配置文件(了解) 工作中一般就是注解+xml配置文件的方式使用
05-请求-普通参数类型
5.1-请求参数
-springMVC将传递的参数封装到处理器方法的对象中,
如何接收传递来的普通参数类型数据
- 在访问的方法的形参列表中进行指定和接收,补充:如果可以确定传递来的参数是数字,可以使用数字类型进行接收
5.2- @RequestParam注解的作用
接收普通数据类型的参数,方式:在方法的形参列表中指定对应的数据类型进行接 收【请求的参数名称和方法接收的参数名称不一致】;
路径:http://localhost/p1?username=zhangsan
@RequestParam注解默认不需要指定内容,作用:name:指定请求中的参数名称和接收的参数名映射,required=是否必须存在此参数,true:必须携带,不携带就404;
@RequestMapping("/p2")
public String parameterMethod2(@RequestParam(name = "username", required = true) String name) {
System.out.println("本次请求携带的NAME参数是:" + name);
return "Hi.jsp";
}
06-请求-对象类型的参数传递
对象的简单属性赋值
//路径 http://localhost/p3?name=zhangsan&age=23
//提交的数据的名称必须和要接收的对象的成员变量名一致。方式:想要将本次提交的数据封装为什么对象,就在方法中声明一个封装的对象。
@RequestMapping("/p3")
public String parameterMethod3(Person person){
System.out.println("本次提交数据封装的对象是:"+person);
return "hi.jsp";
}