SpringMVC-入门

1.概念

  • SpringMVC是一种软件架构思想,把软件按照模型(Model)、视图(View)、控制器(Controller)这三层来划分。
  • Model:指的是工程中JavaBean,用来处理数据
  • View:指的是工程中的html、jsp等页面,用来展示给用户数据
  • Controller:指的是工程中的Servlet,用来接收请求和响应

SpringMVC-入门_第1张图片

2.入门程序

导入依赖:

注意:这有一个比较不容易发现的坑,当引入Spring的依赖的时候,如果引入的是Spring6,那么Tomcat的版本必须得是10以上的,否则服务器识别不到咱们自己创的网页 

    
      org.springframework
      spring-webmvc
      6.0.10
    
 2.1.配置文件方式

项目文件路径:

SpringMVC-入门_第2张图片

  • SpringMVC的出现,优化了以前每写一个页面,都要注册一个servlet的情况,现在只需要注册一个DispatcherServlet
第一步:注册DispatchServlet


  
  
    springmvc
    org.springframework.web.servlet.DispatcherServlet
    
    
      contextConfigLocation
      classpath:springmvc-servlet2.xml
    
    
    1
  

  
    springmvc
    /
  
  

SpringMVC-入门_第3张图片

 第二步:spring配置文件


    
    
    
    
    
    
        
        
        
        
        
        
    

第三步:编写Controller类
public class HelloController implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg","Hello SpringMVC");
        //视图转跳
        mv.setViewName("hello");
        return mv;
    }
}

SpringMVC-入门_第4张图片

第四步:把Controller交给spring托管
 

第五步:创建hello.jsp

SpringMVC-入门_第5张图片

SpringMVC-入门_第6张图片

结果:

SpringMVC-入门_第7张图片

 2.2.执行原理

上面的域名localhost:8081/hello被拆分成了两部分

  • localhost:8081是服务器名
  • /hello是控制器的名字(在spring的配置文件里注册了的)

 SpringMVC-入门_第8张图片

  • springMVC的核心就是DispatchServlet
  • 首先请求进入DispatcherServlet(前端控制器)DispatcherServlet通过HandlerMapping(处理器映射器)来获取Handler(处理器),然后用获取的Handler去寻找对应的适配器,即HandlerAdapter(处理器适配器),拿到适配器之后,来寻找到对应的Controller(这个是我们自己编写的),执行了Controller之后,返回一个ModelAndView,然后DispatchServlet拿着ModelAndView里面封装的数据和路径去找ViewResolver(视图解析器),在ViewResolver中拼接具体的路径(在上面的例子里就是/WEB-INF/jsp/hello.jsp),然后DispatchServlet再拿着这个路径去找前端页面并回显给用户

这里就不详细介绍springMVC的底层了,如有需要可以看看这个大佬的文章

https://blog.csdn.net/zxd1435513775/article/details/103000992

 2.3.使用注解的方式

这个是我们普遍使用的方式,上面的方式是为了理解springMVC的底层

第一步:由于Maven可能存在资源过滤的问题,我们将其配置完善
 
            
                src/main/java
                
                    **/*.properties
                    **/*.xml
                
                false
            
            
                src/main/resources
                
                    **/*.properties
                    **/*.xml
                
                false
            
        
第二步:创建DispatchServlet


  
  
    SpringMVC
    org.springframework.web.servlet.DispatcherServlet
    
    
      contextConfigLocation
      classpath:springmvc.xml
    
    
    1
  

  
    SpringMVC
    /
  
第三步:spring配置文件

    
    

    
    

    
    

    
    
        
        
        
        
    

第四步:编写Controller类
@Controller
public class HelloController {
    @RequestMapping("/hello")
    public static String hello(Model model){
        //封装数据
        model.addAttribute("msg","Hello SpringMVC");
        System.out.println("接收请求");
        //被视图解析器接收,来拼装路径
        //hello.jsp
        return "hello";
    }
第五步:创建hello.jsp

SpringMVC-入门_第9张图片

SpringMVC-入门_第10张图片

你可能感兴趣的:(java,spring,后端)