1. 新建web maven工程
2. 加入依赖
在pom.xml中添加以下依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.10</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
</dependencies>
3. 在web.xml中注册springmvc框架的核心对象DispatcherServlet
(1)DispatcherServlet叫做中央调度器,是一个Servlet,它的父类是继承HttpServlet (2) DispatcherServlet也叫做前端控制器(front controller) (3) DispatcherServlet负责接收用户提交的请求,调用其它的控制器对象,并把请求处理的结果显示给用户
<servlet>
<servlet-name>myweb</servlet-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>
</servlet>
<servlet-mapping>
<servlet-name>myweb</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
springmvc创建容器对象时,读取的配置文件默认是 /WEB-INF/< servlet-name >-servlet.xml,servlet-name是DispatcherServlet的名称。这种默认的方式很不灵活,因此需要自定义设置。
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
在tomcat服务器启动后,往往会创建DispatcherServlet对象的实例,因为DispatcherServlet在创建的过程中,会同时创建springmvc容器对象,读取springmvc的配置文件,把这个配置文件中的对象都创建好,当用户发起请求时可以直接使用对象。而在默认情况下,Servlet是在第一次被访问时创建,因此需要设置load-on-startup:表示tomcat启动后创建对象的顺序,值是整数,数值越小,tomcat创建对象的时间越早。
<load-on-startup>1</load-on-startup>
url-pattern: 1. 使用扩展名方式,语法 *.xxxx, xxxx是自定义扩展名。 常用的方式 *.do, *.action, *.mvc等等 将相同扩展名的请求都交给同一个中央调度器使用 2. 使用斜杠 /
4. 创建一个发起请求的页面 index.jsp
5. 创建控制器类
-
在类的上面加入@Controller注解,创建对象,并放入到springmvc容器中 @Controller:创建处理器(控制器)对象,对象放在springmvc容器中。 -
在类中的方法上面加入@RequestMapping注解 @RequestMapping:请求映射,作用是把一个请求地址和一个方法绑定在一起,即一个请求指定一个方法处理。当前方法为处理器方法。该方法要对 value 属性所指定的 URI进行处理与响应。被注解的方法的方法名可以随意。 属性:1. value 是一个String,表示请求的uri地址的(some.do),
value的值必须是唯一的,不能重复。在使用时,推荐地址以“/”
位置:1. 在方法上面
2.在类的上面
说明:使用@RequestMapping修饰的方法叫做处理器方法或者控制器方法,类似于Servlet中的doGet(),doPost()
@Controller
public class MyController {
@RequestMapping(value = "/some.do")
public ModelAndView doSome() {
ModelAndView mv = new ModelAndView();
mv.addObject("msg","欢迎使用springmvc做web开发");
mv.setViewName("/show.jsp");
return mv;
}
}
6. 创建一个作为结果的jsp,显示请求的处理结果
7. 创建springmvc的配置文件(与spring的配置文件一样)
(1) 声明组件的扫描器,指定@Controller注解所在的包名 (2) 声明视图解析器,帮助处理视图的
|