1.首先先创建一个maven项目SpringMVC 以便以后做的小案例都在这个项目里
2.在导入项目一些所需的jar包(pom.xml),有了这些jar包 后面做的项目就不需要再次导了 因为再创建的项目都是SpringMVC的子项目。
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.9.RELEASE</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> </dependencies>
3.新建一个Moudle , springmvc-01-test, 添加web的支持,配置web.xml , 注册DispatcherServlet。
注意:刚创建的Moudle没有web 我们要调用出来
步骤:右击springmvc-01-test --->选择Add Frameworks Support-->
选中Web Application 右侧4.0版本 -->OK
此时web就生成了
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!--1.注册servlet--> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--通过初始化参数指定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> <!--所有请求都会被springmvc拦截 --> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
4.在resource上创建springmvc-servlet.xml文件并编写代码
<?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.gao.controller"/> <!-- 让Spring MVC不处理静态资源 --> <mvc:default-servlet-handler /> <mvc:annotation-driven /> <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <!-- 前缀 --> <property name="prefix" value="/WEB-INF/jsp/" /> <!-- 后缀 --> <property name="suffix" value=".jsp" /> </bean> </beans>
5.创建com.gao.controller包和ControllerTest1.class (这里采用的是注解版 最为简便的一种方法 减少了代码量)
package com.gao.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class ControllerTest1 { @RequestMapping("/ts1") public String test1(Model model){ model.addAttribute("msg","hello test1"); return "test"; } }
6.在WEB-INF下创建jsp文件夹 并在其中创建test.jsp
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2020/5/7 0007 Time: 15:32 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> ${msg} </body> </html>
7.配置配置Tomcat 启动测试
接下来我们把controllerTest1页面再添加一个方法 ts2 来观察一下
package com.gao.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class ControllerTest2 { @RequestMapping("/ts1") public String test1(Model model){ model.addAttribute("msg","hello test1"); return "test"; } @RequestMapping("/ts2") public String test2(Model model){ model.addAttribute("msg","hello test2"); return "test"; } }
运行测试一下
我们只需利用一个jsp页面来调用 利用一个controller页面来编写代码即可 我们只需定义新方法 更改 @RequestMapping("/")地址 来访问不同的方法 简而言之就是换汤不换药
容易出现的问题:
在运行时容易报错404 此时检查下图的lib是否存
如果没有 则创建lib文件并且把所有jar包导进去就可以了
配置web.xml , 注册DispatcherServlet