创建SpringMVC项目的步骤
* 创建SpringMVC项目的具体步骤
第一步: 新建一个WEB项目,添加web支持。
第二步: 创建包结构
第三步:解决Maven资源过滤问题
<!-- 资源过滤 -->
<resources>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
第四步: 打开 project structure 给项目添加lib文件夹,将所有的包放进lib中,点apply。
第五步: 配置Web.xml
1.注意web.xml的版本问题需要最新版。
2.注册DispatcherServlet
3.关联SpringMVC配置文件
4.启动级别设置为 1
5.映射路径设置为 /
- Web.xml代码:
<!--配置DispatcherServlet: 请求分发器,前端控制器,所有请求都会经过它-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--DispatcherServlet 要绑定SpringMVC的配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!--设置启动级别-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
第六步: 配置SpringMVC 配置文件 (Springmvc-servlet.xml代码)
方式一 : 通过xml的方式配置(不用注解)
<!--配置处理器映射器-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--配置处理器适配器-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--配置视图解析器-->
<bean id="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--BeanNameUrlHandlerMapping:bean-->
<bean id="/hello" class="com.shi.controller.HelloServlet"/>
方式二 : 使用注解配置
1. 让IOC的注解生效
2.静态资源过滤 HTML JS CSS 图片 视频等
3.MVC注解驱动
4.配置视图解析器
- 代码:
<!--自动扫描包,让指定包下的注解生效,由IOC容器同一管理-->
<context:component-scan base-package="com.shi.controller"/>
<!--使SpringMVC 不再处理静态资源-->
<mvc:default-servlet-handler/>
<!--
支持mvc注解驱动
在Spring中一般采用@RequestMapping注解,来完成映射关系。
要想使@RequestMapping注解生效,必须向上下文中注册一个DefaultAnnotationHandlerMapping实例和一个AnnotationMethodHandleAdapter实例
这两个实例分别在类级别和方法级别进行处理
而 <mvc:annotation-driven/> 自动帮助我们完成上述两个实例的注入
-->
<!--使支持mvc注解驱动-->
<mvc:annotation-driven/>
<!--配置视图解析器 在视图解析器中我们把视图都放在/WEB-INF/目录下是为了保证视图安全-->
<bean id="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>
第七步: 创建Controller类
1. 在com.shi.controller包下新建一个类,该类使用注解标识@Controller,使用注解以后就不用再xml文件中再配置bean了。
2. 在controller类的方法上标注@RequestMapping("/hello")括号中写路径名
3. 注解解释:
- @Controller代表这个类会被Spring接管,被@Controller注解的类中的所有方法,如果方法的返回值是String,并且有具体的页面可以跳转,那么就会被视图解析器解析。
- @RequestMapping("/hello") 括号中填写方法名,该方法名会作为一个路径存在,在地址栏输入哪个 /方法名,就会访问哪个方法。
- 当 @RequestMapping注解在类上写的时候就代表了一个父路径,那么在方法上的 @RequestMapping注解就是该父路径的一个子路径,访问时候就是 /controllerTest/testOne
例如:
@Controller
@RequestMapping("/controllerTest")
public class ControllerTest {
@RequestMapping("/testOne")
public String controllerTest(Model model){
model.addAttribute("msg","啦啦啦啦啦啦啦啦啦");
return "hello";
}
}
- 代码:
@Controller
public class HelloController {
@RequestMapping("/hello")
public String hello(Model model){
//业务代码获取到数据
String str="Hello SpringMVC Annotation 2021年5月13日14:07:22";
//将获取到的数据封装到model对象中
model.addAttribute("msg",str);
//return 所需要model对象的前端页面名
return "hello";
}
}
* SpringMVC 配置文件
<?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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://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/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--自动扫描包,让指定包下的注解生效,由IOC容器同一管理-->
<context:component-scan base-package="com.shi.controller"/>
<!--使SpringMVC 不再处理静态资源-->
<mvc:default-servlet-handler/>
<!--
支持mvc注解驱动
在Spring中一般采用@RequestMapping注解,来完成映射关系。
要想使@RequestMapping注解生效,必须向上下文中注册一个DefaultAnnotationHandlerMapping实例和一个AnnotationMethodHandleAdapter实例
这两个实例分别在类级别和方法级别进行处理
而 <mvc:annotation-driven/> 自动帮助我们完成上述两个实例的注入
-->
<!--使支持mvc注解驱动-->
<mvc:annotation-driven/>
<!--配置视图解析器-->
<bean id="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>
</beans>