springMVC

springMVC,第1张

springMVC SpringMVC概述

​ Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合

​ 是spring框架中的一个模块,是对servlet的封装,可以对请求中的数据封装处理,方便接收和响应

  • springMVC 是 spring 框架的一个模块,springMVC 和 spring 无需通过中间整合层进行整合
  • springmvc 是一个基于 mvc 的 web 框架,方便前后端数据的传输.
  • Spring MVC 拥有控制器,接收外部请求,解析参数传给服务层
ssm

spring springMVC mybatis

mvc

​ 早期的后期架构模式

Model

数据访问层:提供要展示的数据,因此包含数据和行为

​ Value Object(数据Dao) 和 服务层(行为Service)

​ 提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务

  1. 业务逻辑
  2. 保存数据的状态
View

视图:负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西

  1. 显示页面
Controller

控制层:接收用户请求,委托给数据访问层进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作

  1. 取得表单数据
  2. 调用业务逻辑
  3. 响应

SpringMVC运行流程

  1. 用户发送请求至前端控制器DispatcherServlet
  2. DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handler
  3. 处理器映射器根据请求url找到具体的处理器Handler,生成处理器对象及处理器拦截器(如果有则生成),一并返回给DispatcherServlet
  4. DispatcherServlet 调用 HandlerAdapter处理器适配器,请求执行Handler
  5. HandlerAdapter 经过适配调用 具体处理器进行处理业务逻辑
  6. Handler执行完成返回 json字符串
注解原理

注解本质是一个继承了Annotation的特殊接口,其具体实现类是JDK动态代理生成的代理类。我们通过反射获取注解时,返回的也是Java运行时生成的动态代理对象。通过代理对象调用自定义注解的方法,会最终调用AnnotationInvocationHandler的invoke方法,该方法会从memberValues这个Map中查询出对应的值,而memberValues的来源是Java常量池

结构

package com.ff.ssm.common;


public class CommonResult {
    private Integer code;
    private String msg;
    private T data;

    public CommonResult(Integer code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
}
package com.ff.ssm.controller;

import com.ff.ssm.common.CommonResult;
import com.ff.ssm.model.Admin;
import com.ff.ssm.service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping(path = "/login")
public class LoginController {

    @Autowired
    LoginService loginService;

    
    @ResponseBody
    @PostMapping(path = "checkLogin")
    public CommonResult checkLogin(Admin admin){
        CommonResult commonResult = null;
        try {
            Admin adminBack = loginService.loginCheck(admin);
            commonResult = new CommonResult<>(200,"登录成功",adminBack);
        }catch (Exception e){
            commonResult = new CommonResult<>(500,"登录失败",null);
            e.printStackTrace();
        }
        return commonResult;
    }
}
package com.ff.ssm.dao;

import com.ff.ssm.model.Admin;

public interface LoginDao {

    Admin LoginCheck(Admin admin);
}
package com.ff.ssm.service;

import com.ff.ssm.dao.LoginDao;
import com.ff.ssm.model.Admin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class LoginService {

    @Autowired
    LoginDao loginDao;

    public Admin loginCheck(Admin admin){
        return loginDao.LoginCheck(admin);
    }
}

loginMapper.xml







    
        select * from admin where account=#{account} and password=#{password}
    

db.xml




    
    

    
    
        
        
        
        
        
        
        
    

    
    
        
    

    
    


mybatis-config.xml






    
        
        
        
        
        
        
        
        
    

    
        
    


spring,xml




    
     

    
    

    
    

    

spring-mvc.xml




    
    

    
    


spring-mybatis.xml




    
    
        
        
        
        
    

    
    
        
        
        
    



web.xml




    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            
            classpath:spring.xml
        
        
        0
    
    
        dispatcherServlet
        /
    

    
    
        characterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
    
    
        characterEncodingFilter
        /*
    

filter.CharacterEncodingFilter

encoding
UTF-8



characterEncodingFilter
/*

					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5573527.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存