文章目录
- 一、编写第一个 Spring MVC 程序
一、编写第一个 Spring MVC 程序
-
创建 maven 项目,以此项目为父项目,在父项目的 pom.xml 中导入相关依赖
<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><!-- 导入servlet 和 jsp 的 jar 依赖 --><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></dependencies>
-
在父项目上右键创建子项目,创建完成之后,在子项目上右键选中 Add framework support 找到 Web Application 勾选上
-
具体步骤
-
勾选完之后项目会出现 web 目录
-
-
配置 web.xml
-
勾选完 Web Application 之后会在 web/WEB-INF 路径下生成一个 web.xml,这个就是默认的 web.xml 了
<?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"></web-app>
-
在 web.xml 中配置 DispatcherServlet 和即将需要创建的 SpringMVC-Servlet.xml (Spring 容器配置文件)
<?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>:给Servlet命名--><servlet-name>SpringMVC</servlet-name><!--<servlet-class>:引入Servlet的全路径 --><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--关联 SpringMVC 的配置文件,SpringMVC-Servlet.xml 是一会要写的 Spring 容器配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:SpringMVC-Servlet.xml</param-value></init-param><!--设置启动级别为1--><load-on-startup>1</load-on-startup></servlet><!--注:<servlet-mapping>标签的子标签<servlet-name>中的内容需要与<servlet>子标签<servlet-name>中的内容保持一致--><servlet-mapping><servlet-name>SpringMVC</servlet-name><!--/ 匹配所有的请求;(不包括.jsp)--><!--/* 匹配所有的请求;(包括.jsp)--><url-pattern>/</url-pattern></servlet-mapping></web-app>
-
-
配置 SpringMVC-Servlet.xml
-
创建 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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"></beans>
-
在 SpringMVC-Servlet.xml 中添加 Spring 的处理映射器
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
-
添加 Spring 的处理适配器
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
-
添加 Spring 的视图解析器
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"><!-- 设置前缀 --><property name="prefix" value="/WEB-INF/jsp/"/><!-- 设置后缀 --><property name="suffix" value=".jsp"/> </bean>
-
编写要操作业务Controller ,要么实现Controller接口,要么增加注解;需要返回一个ModelAndView,装数据,封视图;
//注意:这里我们先导入Controller接口 public class HelloController implements Controller {public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {//ModelAndView 模型和视图ModelAndView mv = new ModelAndView();//封装对象,放在ModelAndView中。Modelmv.addObject("msg","Hello SpringMVC!");//封装要跳转的视图,放在ModelAndView中,通过hello找到hello.jspmv.setViewName("hello"); //: /WEB-INF/jsp/hello.jspreturn mv;}}
-
将操作业务的 Controller 类,交给 SpringIOC 容器,注册 bean
<!--Handler--> <bean id="/hello" class="com.kuang.controller.HelloController"/>
-
编写要跳转的jsp页面,显示ModelandView存放的数据,以及我们的正常页面;
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>HelloSpringMVC</title> </head> <body> ${msg} </body> </html>
-
配置 tomcat 然后运行
-
先找到默认的 index.jsp
-
通过 URL 控制输入 hello 参数
-
-