zoukankan      html  css  js  c++  java
  • springMVC入门到搭建

    一 前言

    ​ 本篇内容主要是springMVC的入门应用,大体会说明springMVC的工作流程,简单的使用springMVC进行视图渲染,不会过多的讲解JSP内容,原因是实际开发中基本不会使用到JSP;structs已被淘汰,读者不应该发时间学习这些过期技术;

    ​ 说到spirngMVC,最重要的还是懂什么MVC,因为不管那种语言,所有的编程思想都相同,前端的编程语言,后端的编程语言都会用MVC;MVC(Model-View-Controller), Model 是指数据模型,后端常见的就是将数据封装进实体;View表示视图,常见的视图有 JSP,Thymeleaf;Controller 表示控制器,控制器的作用处理客户端发起的请求,对用户提交的信息进行处理;

    公众号:知识追寻者

    知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)

    二 SpringMVC工作流程

    1. 用户发起的所有请求都会到达前端控制器 (DispatcherServlet);
    2. 前端控制器会查询合适的处理映射器(handler mapping);
    3. 处理映射器就会根据用户提交的RUL信息 筛选合适的 控制器(controller);
    4. 此时,前端控制器才会将用户的提交的信息 发送给控制器处理数据;数据处理完成后才会产生数据模型(Model)和视图名称,返回给前端控制器;
    5. 前端控制器将根据视图名称通过 视图解析器(view resolver)匹配适合的视图;
    6. 前端控制器会将数据模型交给视图;
    7. 视图将数据渲染,响应给客户端;

    三 springMVC入门搭建

    3.1 搭建工程

    在IDEA中使用 maven 模板 创建 spring WEB 项目

    创建完成的项目在main目录下面只有 webapp 目录,需要补充 java , resources 文件夹;并且点击 java目录右键,mark directory as Source Root , 标记 resources 目录为 Resource Root;

    除了spring核心依赖还需要如下依赖引入

        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>5.0.1.RELEASE</version>
        </dependency>
        <!-- servlet依赖 -->
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>jstl</artifactId>
          <version>1.2</version>
        </dependency>
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>4.0.1</version>
          <scope>provided</scope>
        </dependency>
    

    web 项目打包方式为 war包,如果不支持支持maven打包为war包还需要引入 插件

    <packaging>war</packaging>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.2</version>
            <configuration>
              <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
          </plugin>
        </plugins>
      </build>
    

    3.2 webConfig

    在 java目录下新建com.zszxz.config包, 对视图配置如下

    /**
     * @Author lsc
     * <p> </p>
     */
    @Configuration
    @EnableWebMvc// 启用springMVC
    @ComponentScan("com.zszxz.controller")// 组件扫描
    public class WebConfig implements WebMvcConfigurer{
    
        // 视图解析器
        @Bean
        public ViewResolver viewResolver(){
            InternalResourceViewResolver resolver = new InternalResourceViewResolver();
            resolver.setPrefix("/WEB-INF/views/");
            resolver.setSuffix(".jsp");
            resolver.setExposeContextBeansAsAttributes(true);
            return resolver;
        }
    
        // 静态资源处理
        @Override
        public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
            configurer.enable();
        }
    }
    

    dispatcher,配置如下,其作用代替web.xml配置

    /**
     * @Author lsc
     * <p> </p>
     */
    public class WebAppInitializer implements WebApplicationInitializer {
        @Override
        public void onStartup(ServletContext servletContext) throws ServletException {
            AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
            context.register(WebConfig.class);
            context.setServletContext(servletContext);
    
            ServletRegistration.Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(context));
            servlet.addMapping("/");
            servlet.setLoadOnStartup(1);
        }
    }
    

    3.3 controller

    在com.zszxz下新建controller 包, HelloController 内容如下

    /**
     * @Author lsc
     * <p> </p>
     */
    @Controller// 声明一个控制器
    public class HelloController {
    
        // 接收GET请求
        @RequestMapping(value = "/zszxz",method = RequestMethod.GET)
        public String hello(){
            // 视图名称
            return "hello";
        }
    }
    

    3.4 hello.jsp

    因为 视图解析配置的路径是 /WEB-INF/views/, 故 需要在 webapp/WEB-INF 底下 新建 views 目录; 由于 控制层编写的 hello 方法 的视图名称是 hello, 故需要在 views目录下新建 hello.jsp 内容如下

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        hello springMVC
    </body>
    </html>
    

    3.5 IDEA中配置tomcat

    tomcat 官网 http://tomcat.apache.org/

    • IDEA 右上角点击Add Configuration;
    • 页面点击 + 号, 找到 tomcat , 选择Local;
    • server选项卡中点击configure..按钮配置 tomcat 解压目录;
    • deploment 中 选择 + 号,添加当前工程后确定

    最终配置显示如下

    配置成功后,在 IDEA下方会弹出Tomcat 栏目, 启动工程 默认 弹到 http://localhost:8080/spring_mvc_war/ 页面 ,也就是 Index 页面内容 ;

    浏览器地址输入 http://localhost:8080/spring_mvc_war/zszxz 页面 转发成功,内容如下

    hello springMVC
    

    四 打包部署

    • 本次部署的tomcat 是 8.x版本,读者可以到官网自行下载后解压至自定义目录;
    • 进入当前工程目录 ,在 终端下 敲击命令 mvn clean package 打包 工程为war包,生成目录为target目录下;
    • 将war包拷贝至tomcat的 webapp目录下;

    • 修改war包名称为mvc;
    • 进入tomcat 的 bin 目录 双击startup.bat运行tomcat;
    • 浏览器输入 http://localhost:8080/mvc/ 跳转至 index.jsp首页,表示部署成功;
    • 打开tomcat 下 webapp目录,发现有一个mvc文件夹就是war包解压而来
  • 相关阅读:
    C#笔记(Hex转JPG)
    rpm 和 yum 软件管理
    名称空间和作用域
    网络技术管理和进程管理
    RAID磁盘阵列
    CentOS7系统启动流程:
    磁盘lvm管理
    面向对象 异常处理
    自定义函数和调用函数 return返回值
    Python常用模块
  • 原文地址:https://www.cnblogs.com/zszxz/p/12925665.html
Copyright © 2011-2022 走看看