SpringMVC框架搭建流程(完整详细版)

女爷i 2023-02-18 03:19 65阅读 0赞

SpringMVC框架搭建流程

开发过程

1)配置DispatcherServlet前端控制器

2)开发处理具体业务逻辑的Handler(@Controller、 @RequestMapping)

3) xml配置⽂件配置controller扫描,配置springmvc三⼤件

4)将xml⽂件路径告诉springmvc(DispatcherServlet)

详细流程:

创建目录

新建maven项目,注意选择webapp骨架。
format_png

创建成功之后会发现没有src等目录,这些需要我们手动创建:
format_png 1
在src下面新建main,main下面新建java目录,选择java目录,右键,
format_png 2

在main下面继续新建resource目录,选择resource目录,右键,
format_png 3

pom.xml

pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.lagou.edu</groupId>
  5. <artifactId>springmvc-demo</artifactId>
  6. <version>1.0-SNAPSHOT</version>
  7. <packaging>war</packaging>
  8. <properties>
  9. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  10. <maven.compiler.source>11</maven.compiler.source>
  11. <maven.compiler.target>11</maven.compiler.target>
  12. </properties>
  13. <dependencies>
  14. <!--引入spring webmvc的依赖-->
  15. <dependency>
  16. <groupId>org.springframework</groupId>
  17. <artifactId>spring-webmvc</artifactId>
  18. <version>5.1.12.RELEASE</version>
  19. </dependency>
  20. </dependencies>
  21. <build>
  22. <plugins>
  23. <plugin>
  24. <groupId>org.apache.tomcat.maven</groupId>
  25. <artifactId>tomcat7-maven-plugin</artifactId>
  26. <version>2.2</version>
  27. <configuration>
  28. <port>8080</port>
  29. <path>/</path>
  30. </configuration>
  31. </plugin>
  32. </plugins>
  33. </build>
  34. </project>

注意Tomcat7插件是用来运行项目的,右侧运行:
format_png 4

springmvc相关配置

main文件夹下面新建webapp文件夹,webapp下面新建WEB-INF,下面新建web.xml

  1. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" >
  2. <web-app>
  3. <display-name>Archetype Created Web Application</display-name>
  4. <servlet>
  5. <servlet-name>springmvc</servlet-name>
  6. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  7. <init-param>
  8. <param-name>contextConfigLocation</param-name>
  9. <param-value>classpath:springmvc.xml</param-value>
  10. </init-param>
  11. </servlet>
  12. <servlet-mapping>
  13. <servlet-name>springmvc</servlet-name>
  14. <!-- 方式一:带后缀,比如*.action *.do *.aaa 该种方式比较精确、方便,在以前和现在企业中都有很大的使用比例 方式二:/ 不会拦截 .jsp,但是会拦截.html等静态资源(静态资源:除了servlet和jsp之外的js、css、png等) 为什么配置为/ 会拦截静态资源??? 因为tomcat容器中有一个web.xml(父),你的项目中也有一个web.xml(子),是一个继承关系 父web.xml中有一个DefaultServlet, url-pattern 是一个 / 此时我们自己的web.xml中也配置了一个 / ,覆写了父web.xml的配置 为什么不拦截.jsp呢? 因为父web.xml中有一个JspServlet,这个servlet拦截.jsp文件,而我们并没有覆写这个配置, 所以springmvc此时不拦截jsp,jsp的处理交给了tomcat 如何解决/拦截静态资源这件事? 方式三:/* 拦截所有,包括.jsp -->
  15. <!--拦截匹配规则的url请求,进入springmvc框架处理-->
  16. <url-pattern>/</url-pattern>
  17. </servlet-mapping>
  18. </web-app>

里面配置了springmvc相关的配置,引入了springmvc.xml:
在resource目录下新建springmvc.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <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 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/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd ">
  3. <!--开启controller扫描-->
  4. <context:component-scan base-package="com.lagou.edu.controller"/>
  5. <!--配置springmvc的视图解析器-->
  6. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  7. <property name="prefix" value="/WEB-INF/jsp/"/>
  8. <property name="suffix" value=".jsp"/>
  9. </bean>
  10. <!-- 自动注册最合适的处理器映射器,处理器适配器(调用handler方法) -->
  11. <mvc:annotation-driven/>
  12. </beans>

在java目录下新建包com.lagou.edu.controller,下面新建DemoController:

  1. package com.lagou.edu.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.servlet.ModelAndView;
  5. import java.util.Date;
  6. /** * @author lyj * @Title: DemoController * @ProjectName springmvc-demo * @Description: TODO * @date 2020/6/9 21:21 */
  7. @Controller
  8. @RequestMapping("/demo")
  9. public class DemoController {
  10. /** * http://localhost:8080/demo/handle01 */
  11. @RequestMapping("/handle01")
  12. public ModelAndView handle01(){
  13. Date date=new Date();
  14. ModelAndView modelAndView=new ModelAndView();
  15. modelAndView.addObject("date",date);
  16. modelAndView.setViewName("success");
  17. return modelAndView;
  18. }
  19. }

在WEB-INF下面新建jsp文件夹,下面新建success.jsp:

  1. <%@ page language="java" isELIgnored="false" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. 当前时间 ${date}
  9. </body>
  10. </html>

完毕后整个项目结构如下:
format_png 5

测试:

format_png 6

format_png 7

浏览器访问:
format_png 8 -———文末:

欢迎访问:

微信公众号(程序员资料站):code_data

发表评论

表情:
评论列表 (有 0 条评论,65人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SpringMVC框架

    框架项目请跳转到: [springMVC][] 本文在他人框架配置文件的基础上,学习Spring框架的知识,同时也结合多篇博文对框架进行改进与增加工鞥,比如缓存、多数据源以及