SpringMVC知识点简单规整

文章目录

  • SpringMVC知识点简单规整
    • 一、Spring MVC的介绍
    • 二、springmvc入门案例
    • 三、springmvc的核心组件
    • 四、RequestMapping注解
    • 五、controller方法的返回值
    • 六、接收参数
    • 七、数据传递
    • 八、文件上传
    • 九、全局异常处理器
    • 十、拦截器

SpringMVC知识点简单规整

---------------------------------------Spring MVC---------------------------------

一、Spring MVC的介绍

1、mvc设计模式的介绍
	M(model):模型层,
			数据模型:pojo
			业务模型:service、mapper
	V(view):视图层,jsp和html,负责和用户交互
	C(controller):控制层,servlet和controller,负责接受请求和响应
2、springmvc的介绍
	springmvc是spring框架的一个模块,是一个基于mvc设计模式的web框架,本质上相当于servlet

二、springmvc入门案例

	1.index.jsp
	    hello
    2.controller
        @Controller
        public class HelloControler{

            @RequestMapping("/hello")
            public ModelAndView hello(){
                ModelAndView mv = new ModelAndView();
                mv.addObject("msg", "师姐你好");
                mv.setViewName("success");
                return mv;
            }
        }
    3、配置springmvc要扫描的包
        
    3、配置视图解析器
        
                
                
                
                
        
    5、web.xml
        
            springmvc
            
            org.springframework.web.servlet.DispatcherServlet
            
                contextConfigLocation
                classpath:springmvc.xml
            
            
            1
        
        
            springmvc
            
            /
        

三、springmvc的核心组件

DispatcherServlet(前端控制器):扫描controller,接受请求
HandlerMapping(处理器映射器):查找handler
HandlerAdaptor(处理器适配器):调用handler
ViewResolver(视图解析器):解析jsp的具体路径
view(视图渲染器):把数据填充到request,跳转页面

四、RequestMapping注解

1、value属性:设置url,窄化路径
    

    @RequestMapping("/一级路径")
    public class AccountController{

        @RequestMapping("/二级路径")
        public ModelAndView findAccount(){
        }
    }
2、method属性:设置请求方式
    @RequestMapping(value="/请求路径", method=RequestMethod.Get|Post|Put|Delete)
    @GetMapping("/请求路径")
    @PutMapping("/请求路径")

五、controller方法的返回值

1、返回ModelAndView
    public ModelAndView findAccount(ModelAndView mv){
        mv.addObject("", "");//request.setAttribute("", "");
        mv.setViewName("jsp名称");
        return mv;
    }
2、返回字符串
    1)返回视图名
       public String findAccount(Model model){
            model.addAttribute("", "");//request.setAttribute("", "");
            return "success";
       }
    2)重定向(1.地址栏会变  2.数据丢失)
        return "redirect:/请求路径";
    3)请求转发(1.地址栏不会变  2.数据不丢失)
        return "forward:/请求路径";

六、接收参数

1、基本类型(少量)
    

    public String findAccount(Integer id){
        return "success";
    }
2、pojo类型(多个)
    

    public String findAccount(Account account){
        return "success";
    }
3、restful
   

   @RequestMapping("/findAccount/{id}")
   public String findAccount(@PathVariable Integer id){
       return "success";
   }
4、json类型
   $.ajax({
         type:"post",
         url:"/account/findAccount",
         contentType:"application/json;charset=UTF-8",
         data:'{"id":1,"name":"张二狗","money":999.0}',
         success:function(data){
             //{id:2, name:铁柱, money:100}
             alert(data.name);
         }
     })

   @RequestMapping("/findAccount")
   @ResponseBody
   public Account findAccount(@RequestBody Account account){
      return account;
   }
5、日期类型转换器
    public class DateConverter implements Converter {

    }

    
    

    
    
        
            
                
            
        
    
6、中文乱码
    1)post
          
            CharacterEncodingFilter
            org.springframework.web.filter.CharacterEncodingFilter
            
                encoding
                UTF-8
            
        
        
            CharacterEncodingFilter
            /*
        
    2)get
        new String(name.getBytes(), "UTF-8");
7、servlet API接收参数
    public String findAccount(HttpServletRequest request){
            String name = request.getParameter("name");
    }

七、数据传递

1、ModelAndView
    public ModelAndView findAccount(ModelAndView mv) {
        mv.addObject("msg", "欢迎你 springmvc");
        mv.setViewName("success");
        return mv;
    }
2、Model
    public String findAccount(Model model) {
        model.addAttribute("msg", "欢迎你 springmvc");
        return "success";
    }
3、json
    @ResponseBody
    public Account findAccount(){
    }
4、servlet API数据传递
    public String findAccount(HttpServletRequest request){
       request.setAttribute("key", "value")
    }

八、文件上传

1、pom.xml
    
        commons-fileupload
        commons-fileupload
        1.3.1
    
2、配置上传解析器
    
    
        
        
    
3、form
    
图片:
3、文件上传 @RequestMapping("/upload") public String upload(MultipartFile img) throws IOException { //1、获得tomcat的路径 //2、创建uploads目录 //3、上传文件 }

九、全局异常处理器

@Component
public class GlobalExceptionHandler implements HandlerExceptionResolver {
    /**
        1.发邮件、发短信
        2.跳转错误页面
     */
}

十、拦截器

1、什么是拦截器?
    拦截器(interceptor):类似于filter,用于拦截用户请求,基于aop实现
2、filter和interceptor的区别?
                    依赖                 原理
   filter          无依赖                方法回调
   interceptor     依赖于spring          aop
3、拦截器入门
    1、interceptor
        public class LoginInterceptor implements HandlerInterceptor {
            ...
        }
    2、springmvc.xml
        
        
            
                
                
                
                
                
                
                
            
        

你可能感兴趣的:(JAVA全栈学习路线,#,JavaEE(SSM),java,intellij-idea,springmvc)