0.前言
上一篇中我们已经把SpringMVC基础环境搭建出来了。这一篇我们继续来配置SpringMVC。我们先把需要的文件夹都建立好。
整个搭建过程可以分为下面几步:
(1)同过pom.xml引入jar包
(2)创建Spring MVC的配置文件,在web.xml 中配置Servlet,定义DispatcherServlet。
(3)创建配置文件springmvc-servlet.xml
(4)创建controller
(5)创建view
(6)部署运行
1.添加依赖
我们在pom.xml文件添加这些坐标。
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.5.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> </dependencies>
2.配置web.xml
SpringMVC 是基于Servlet的框架,DispatcherServlet是整个SpringMVC框架的核心,它负责截获请求并将其分配给相应的处理器处理。那么配置SpringMVC,首先要进行DispatcherServlet的配置。
<?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"> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <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>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
注意,这个地方需要注意一下,默认的版本是2.3。最好把它改成上面的版本中,因为在测试中遇到一个实际问题发现就是web.xml版本问题。
3.创建springmvc-servlet.xml文件
在项目工程resource目录下添加上面提到的spingmvc-serlvet.xml。有的也叫springmvc-web.xml(名字无所谓,只有对应正确就行)
其配置文件spingmvc-serlvet.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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <mvc:annotation-driven/> <mvc:default-servlet-handler/> <context:component-scan base-package="com.cat.controller"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
关于springmvc-servlet.xml的配置文件的解析可以点这。
4.创建controller
到目前位置,springmvc的相关环境配置已经完成,接下来编写Controller和view,然后就可以测试运行了。
输入com.cat.controller (名字也是无所谓,不过最好符合一定规则)
在这里面编写代码:
package com.cat.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; /* * controller 负责提供访问应用程序的行为,通常通过接口定义或者注解定义两种方法实现。 * 控制器负责解析用户的请求并将其转换为一个模型。 * */ @Controller //代表这个类会被spring接管,被这个注解的类中所有方法,如果返回值是string,并且有具体的页面可以跳转,那么就会被视图解析器解析 public class IndexController { @RequestMapping("/hello") //意为请求 localhost:8080/hello public String hello(Model model){ //封装数据(向模型中添加数据,可以jsp页面直接取出并渲染) model.addAttribute("name","张三"); model.addAttribute("sex","男"); model.addAttribute("age",16); System.out.println(model); //会被视图解析器处理 return "hello"; //返回到哪个页面 } }
不理解Model和ModelAndView的原理和用法可以点这。
5.创建view
创建完了上面的controller,下面开始写页面。注意,我们在sprigmvc-servlet.xml中定义过这样的前缀,这意味着我们要把jsp页面都写在WEB_INF/jsp这个文件夹下面才能正常访问到。
<property name="prefix" value="/WEB-INF/jsp/"/>
wenj我们在相应的文件夹下,新建hello.jsp文件(跟上面controller中的return 对应好)。
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> hello.jsp页面 <p>姓名:${name}</p> <p>性别:${sex}</p> <p>年龄:${age}</p> </body> </html>
6.部署运行
配置一下tomcat
开始运行。请求地址为:
localhost:8080/hello
浏览器会弹出如下信息。
返回目录:JAVA