Spring MVC的优点
清晰地角色划分,灵活的配置功能,提供了大量的控制器接口和实现类,Spring提供了Web应用开发的一整套流程,不仅仅是MVC,他们之间可以很方便的结合一起。
Getting Started
1、目录
1.1、关于目录和文件
handler:处理器,用来处理请求和返回视图,可以认为等同于Servlet。
spring-mvc.xml:spring-mvc的核心配置
view:WEB-INF/view/的目录下用来放jsp
2、写一个handler类
Controller
将本handler类纳入容器
RequestMapping
设定类和方法的访问路径
@Controller //纳入容器
@RequestMapping("/user") //此handler的访问路径
public class UserHandler {
@RequestMapping("/login")//此方法的访问路径
public String login() {
System.out.println("login被调用了");
//返回名为“hello”的视图文件
return "hello";
}
}
解读: 在这里,当用户访问http://localhost:8080/项目名/user/login
时,会调用UserHandler
类的login
方法,然后返回WEB-INF/view/文件夹下的hello.jsp
文件。
为什么会这样呢?我们可以在下面xml中找到答案。
3、配置spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- 开启基本注解 :识别 Controller,Service,Repository,Component,Autowired,Resource,Qulifer -->
<context:component-scan base-package="com.mvc"></context:component-scan>
<!-- 开启处理器映射器注解:识别 @RequestMapping,对该注解标注的类和方法做映射。-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
<!-- 开启处理器适配器注解: 当有请求过来,dispatcherServlet找到该请求所映射到的处理器方法,该bean对象负责执行方法。封装参数 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
<!-- 开启视图解析器:当处理器方法执行完成后,配置一个视图路径地址 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 视图文件前缀名(路径) -->
<property name="prefix" value="/WEB-INF/view/"></property>
<!-- 视图文件后缀名 -->
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
3.1、标签头是固定套路
3.2、开启了纳入容器、依赖注入这些基本的注解,同时指定了"com.mvc"
包,这些包下的文件可省略路径名。
<context:component-scan base<