1、入门程序
1、Maven导入坐标
<!-- 版本锁定 -->
<properties>
<spring.version>5.0.2.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
2、web.xml配置
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>dispatcherServlet</servlet-name> <!-- 名字随便起,但是必须要与下方的name一致 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 固定的 -->
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern> <!-- 请求拦截,/表示任何请求都会拦截 -->
</servlet-mapping>
</web-app>
3、创建springmvc配置文件
4、配置服务器(Tomcat)
5、成功
2、配置链接跳转
- 在jsp中创建超链接,随后将超链接指向某个请求
- 新建controller类,用于指定访问路径
- 在controller类添加@Controller 注解,声明本类为一个控制器类
- 在方法上添加@RequestMapping 注解,并通过path属性定义访问路径,访问路径为
/hello
```java @Controller public class HelloController { @RequestMapping(path = “/hello”) public String sayHello(){
}System.out.println("Hello SpringMVC");
return "success";
}
5. 为了使控制器生效,需要配置springmvc配置文件,用于开启注解扫描,同时在web.xml内的servlet标签添加contextConfigLocation,用于指定springmvc的配置文件,配置结果如下<br />springmvc.xml文件内容
```xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 开启注解扫描 -->
<context:component-scan base-package="icu.whatsblog"/>
</beans>
web.xml文件内容
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>dispatcherServlet</servlet-name> <!-- 名字随便起,但是必须要与下方的name一致 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 固定的 -->
<init-param> <!-- 自动加载配置文件 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup> <!-- 启动服务器就可以创建DispatcherServlet对象, 对象创建后加载springmvc配置文件,加载文件后就可以开启扫描,扫描后类就会生效,之后正常执行-->
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern> <!-- 请求拦截,/表示任何请求都会拦截 -->
</servlet-mapping>
</web-app>
跳转成功为了匹配到指定页面需要视图解析器,需要在springmvc.xml中配置视图解析器,如下所示
<!--配置视图解析器-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/> <!-- jsp文件所在的目录 -->
<property name="suffix" value=".jsp"/> <!-- 文件的后缀名 -->
</bean>
<!-- 开启SpringMVC框架注解的支持 -->
<mvc:annotation-driven/>
完成
3、入门案例解析:
- 入门案例的执行流程
- 当启动Tomcat服务器的时候,因为配置了load-on-startup标签,所以会创建DispatcherServlet对象,
就会加载springmvc.xml配置文件 - 开启了注解扫描,那么HelloController对象就会被创建
- 从index.jsp发送请求,请求会先到达DispatcherServlet核心控制器,根据配置@RequestMapping注解
找到执行的具体方法 - 根据执行方法的返回值,再根据配置的视图解析器,去指定的目录下查找指定名称的JSP文件
- Tomcat服务器渲染页面,做出响应
- 当启动Tomcat服务器的时候,因为配置了load-on-startup标签,所以会创建DispatcherServlet对象,
- SpringMVC官方提供图形
4、RequestMapping注解的作用
- RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系
- RequestMapping注解可以作用在方法和类上
- 作用在类上:第一级的访问目录
- 作用在方法上:第二级的访问目录
- 细节:路径可以不编写 / 表示应用的根目录开始
- 细节:${ pageContext.request.contextPath }也可以省略不写,但是路径上不能写 /
作用: 用于建立请求URL和处理请求方法之间的对应关系。
出现位置:
- 类上:
- 请求URL的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。 它出现的目的是为了使我们的URL可以按照模块化管理:
- 例如:
- 账户模块:
- /account/add
- /account/update
- /account/delete
- …
- /account/add
- 订单模块:
- /order/add
- /order/update
- /order/delete
- /order/add
- 红色的部分就是把RequsetMappding写在类上,使我们的URL更加精细。
- 账户模块:
- 例如:
- 请求URL的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。 它出现的目的是为了使我们的URL可以按照模块化管理:
- 方法上:
- 请求URL的第二级访问目录。
- 请求URL的第二级访问目录。
属性:
- value:用于指定请求的URL。它和path属性的作用是一样的。
- method:用于指定请求的方式。
- params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样。
- 例如:
params = {“accountName”},表示请求参数必须有accountName
params = {“moeny!100”},表示请求参数中money不能是100
- 例如:
- headers:用于指定限制请求消息头的条件。
- 注意: 以上四个属性只要出现2个或以上时,他们的关系是与的关系。