Spring MVC

1.关于Sring MVC

  1. Spring MVC是基于Spring框架基础之上的,主要解决了后端服务器接收客户端提交的请求,并给予响应的相关问题。
  2. MVC = Model + View + Controller,它们分别是:
    • Model:数据模型,通常由业务逻辑层(Service Layer)和数据访问层(Data Access Object Layer)共同构成
    • View:视图
    • Controller:控制器
  3. MVC为项目中代码的职责划分提供了参考。
  4. 需要注意:Spring MVC框架只关心V - C之间的交互,与M其实没有任何关系。

2.创建Spring MVC工程

  1. 请参考 http://doc.canglaoshi.org/doc/idea_tomcat/index.html 创建项目,首次练习的项目名称请使用springmvc01

3.使用Spring MVC工程接受客户端的请求

【操作步骤】

  1. pom.xml中添加spring-webmvc依赖项:
    	<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    	<dependency>
    	 	<groupId>org.springframework</groupId>
    		<artifactId>spring-webmvc</artifactId>
    		<version>5.3.14</version>
    </dependency>
    
    提示:如果后续运行时提示不可识别Servlet相关类,则补充添加以下依赖项:
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
    	<groupId>javax.servlet</groupId>
    	<artifactId>javax.servlet-api</artifactId>
    	<version>3.1.0</version>
    	<scope>provided</scope>
    </dependency>
    
  2. 接下来,准备2个配置类,一个是Spring框架的配置类,一个是Spring MVC框架的配置类:
    cn.tedu.springmvc.config.SpringConfig.java
    package cn.tedu.springmvc.config;
    
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
    @Configuration // 此注解不是必须的
    @ComponentScan("cn.tedu.springmvc") // 必须配置在当前配置类,不可配置在Spring的配置类
    public class SpringMvcConfig implements WebMvcConfigurer {
    }
    
  3. 接下来,需要创建项目的初始化类,此类必须继承自AbstractAnnotationConfigDispatcherServletInitializer,并在此类中重写父类的3个抽象方法,返回正确的值(各方法的意义请参见以下代码中的注释):
    cn.tedu.springmvc.SpringMvcInitializer
    package cn.tedu.springmvc;
    
    import cn.tedu.springmvc.config.SpringConfig;
    import cn.tedu.springmvc.config.SpringMvcConfig;
    import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
    
    /**
    * Spring MVC项目的初始化类
     */
     public class SpringMvcInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
     
     	@Override
     	protected Class<?>[] getRootConfigClasses() {
     		// 返回自行配置的Spring相关内容的类
        	return new Class[] { SpringConfig.class };
    	}
    	
    	@Override
    	protected Class<?>[] getServletConfigClasses() {
        	// 返回自行配置的Spring MVC相关内容的类
        	return new Class[] { SpringMvcConfig.class };
        }
        
        @Override
    	protected String[] getServletMappings() {
        	// 返回哪些路径是由Spring MVC框架处理的
        	return new String[] { "*.do" };
    	}
    	
    }
    
  4. 最后,创建控制器类,用于接收客户端的某个请求,并简单的响应结果:
    cn.tedu.springmvc.controller.UserController
    package cn.tedu.springmvc.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller // 必须是@Controller,不可以是其它组件注解
    public class UserController {
    
    	public UserController() {
    		System.out.println("UserController.UserController()");
    	}
    	
    	//https://localhost:8080/springmvcc01_war_exploded.do
    	@RequestMapping("/login.do")
    	@ResponseBody
    	public String login(){
    		return "UserController.login()";
    	}
    	
    }
    
  5. 全部完成后,启动项目,会自动打开浏览器并显示主页,在主页的地址栏URL上补充/login.do即可实现访问,并看到结果。
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java代码兄

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值