目录
1、SpringMVC简介
spring的 ioc 和 aop 解决的是:1.程序的依赖关系 2.把公共的部分抽取出来,进行统一管理和调用。
SpringMVC是一种基于java的实现MVC设计模型的请求驱动类型的轻量级web框架,用于表现层(web)。
MVC: M:model(模型) V:view(视图) C:controller(控制器)
2、入门案例
导入jar:
@RequestMapping:请求的映射:他要和浏览器请求url保持一致。
springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="rumen"></context:component-scan>
<!-- 配置springmvc视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/rumen/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>SpringMVC</display-name>
<!-- 配置spring核心控制器 -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置servlet初始化参数,告知servlet, springmvc文件的位置 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:rumen/springmvc.xml</param-value>
</init-param>
<!-- 配置servlet启动顺序 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
index.jsp
success.jsp
HelloController
package rumen;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
//spingmvc的第一个控制器:它就是一个普通的java类
//使用spring注解保证当前类让spring管理
@Controller("helloController")
public class HelloController {
@RequestMapping("/hello")
public String sayHello() {
System.out.println("hello执行了");
return "success";
}
}
执行流程:
3、组件介绍
DispatcherServlet:前端控制器
用户请求到达前端控制器,它是整个流程的控制中心,由它调用其他组件处理用户的请求,降低组件之间的耦合。
HandlerMapping:处理映射器
负责根据用户请求找到Handler即处理器。
映射方式:配置文件方式、实现接口方式、注解方式
Handler:处理器
它就是我们开发中要编写的具体业务控制器。由DispatcherServlet把用户请求转发到Handler。由Handler对具体的用户请求进行处理。
HandlerAdapter:处理适配器
通过它对处理器进行执行,这是适配器模式的应用,将其他接口转变为USB接口。
ViewResolver:视图解析器
它负责将处理结果生成View视图
View:视图
我们常用的视图是jsp
<mvc:annotation-driven>
处理映射器、处理适配器、视图解析器被称为SpringMVC的三大组件。
它可以在springmvc.xml中替代注解处理器和适配器的位置。
一般开发中都会用到它
4@RequestMapping
作用:用来建立请求url 和处理请求方法之间的关系。
出现的位置:
写在方法上:和请求url绑定
写在类上:给访问url 进行窄化,可以让 url 变成模块化的形式
在原来的类上再加一个
此时原来的地址不能访问:http://localhost:8080/SpringMVC/hello
访问的地址变为:http://localhost:8080/SpringMVC/rm/hello
修改:
属性:
value:指定访问的url 和执行的方法之间的关系。
method:用于限定的请求方式,不写全都接受,写了接收指定的。
params:用于指定限制请求消息头的条件,key与value必须与配置的一样
headers:用于限制请求消息头的条件(条件内不能有空格)
params,控制器中设置参数,请求必须带参数,否则报错
问题:指定不等于150,参数是100,却还是报错
解决:两个必须一样
headers