Spring MVC框架 (在mawen 基础上)
替代原来的web层的 Servlet 技术。
pom.xml 文件
web.xml类 进行配置servlet
关于 init-param其实,Spring也有它的默认机制:目的是为了传递spring-mvc.xml配置文件
就是,如果你的Spring的配置文件,位于: /WEB-INF/
下 且名为 <servlet-name>-servlet.xml
则可以不配置。
load- on -startup tomcat 自己的配置文件有一个 这里优先级配成2
spring-mvc.xml : 配置Spring的配置文件
annotation -driven是spring mvc 注解版的使用。
annotation-driven 要用mvc的
开发处理器:
代码演示:
pom.xml 文件
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.28.RELEASE</version>
</dependency>
web.xml类 进行配置servlet
<!--
Spring MVC 是基于Servlet 来实现的一个框架。
通过在这里定义好它已经提供的Servlet ,就安装它框架的要求开发web程序。
背会: Servlet的类: DispatcherServlet
它这个Servlet类在创建的时候,需要创建Spring 容器。
1. 配置这个类随Tomcat的启动而创建
2. 配置我们使用的Spring配置文件
背会参数名: contextConfigLocation
-->
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-mvc.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<!--一般来说,会让Spring的这个Servlet处理所有请求。但是不包括 .jsp
如果这里配置的是 /* ,表示处理所有请求,包括 .jsp
后缀型的配置,如: .do, 表示处理所有以.do结尾的请求
-->
<url-pattern>/</url-pattern>
</servlet-mapping>
spring-mvc.xml : 配置Spring的配置文件
<context:component-scan base-package="com.example"/>
<!--
最小化使用Spring MVC 框架需要开启:
-->
<mvc:annotation-driven/>
<!--
配置 逻辑视图 到 物理页面的解析过程。
组件: 视图解析器
类名背会: InternalResourceViewResolver
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=".jsp"/>
</bean>
开发处理器
package com.example;
/*
如果想让A类可以处理 HTTP 请求(角色相当于我们以前学习的Servlet)
但是在Spring MVC 环境下:
1. A 类就是一个普通的 Java类
2. 如果想要处理请求,添加注解: @Controller
*/
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
//除了表示它是一个控制器以外,还需要注册到Spring容器中。
@Controller
public class A {
//如果要处理某个请求,可以写一个方法。
// 要让一个普通的方法处理请求,需要在方法上使用注解: @RequestMapping
@RequestMapping(path = "/demo1")
public String demo1(){
return "demo1.jsp";
}
}