SpringMvc(个人笔记)

SpringMvc(个人笔记),第1张

SpringMvc(个人笔记)
服务端分层:
    表现层              业务层             持久层
SpringMvc/Struts        Spring        Mybatis/Hibernate

SpringMvc采用MVC的设计模式:
    model       实体       JavaBean
    view        视图       Jsp
    controller  控制器     Servlet
Struts2的核心是一个过滤器,而SpringMvc的核心是一个Servlet
----------------------------------------------------------------
(乱总结:spring mvc的运行流程,spring是基于组建来运行的,其中的核心组件是
DispatcherServlet,它作为调度中心来协调各个组件的工作。spring mvc包括前端控制器
处理器映射器、处理器适配器、Controller、视图解析器)
    执行流程:前端发来请求到前端控制器,将请求递交到处理器映射器,返回执行链,递交到
    处理器适配器,处理器适配器去执行Handler即Controller,Controller返回ModelAndView
    然后由视图解析器解析返回视图,数据填充返回响应。

SpringMvc的注解和配置:
    1.
    在springMvc的各个组件中,处理器映射器、处理器适配器
    视图解析器称为SpringMvc的三大组件。使用这个配置标签后会自动加载这些组件

    2.@RequestMapping(path = "/hello")用于建立请求url和处理请求方法之间的对应关系
            属性:
    3.请求参数的绑定:
        a.有一些机制,如果方法的参数名和请求数据名字相同会自动绑定
        https://www.kali.com/sss?username=we&password=231
        public String query(String username,String password){}

        b.对请求的封装
        public String query(Account account){}
            如果account中包含引用类型要指定account中的属性.属性

        c.解决post请求中文乱码问题,使用spring提过的过滤器CharacterEncodingFilter
        拦截
            //alert("hello!")
            $.ajax({
                url:"user/testAjax",
                contentType:"application/json;charset=UTF-8",
                data:'{"name":"haha","age":"15","money":"400"}',
                dataType:"json",
                type:"post",
                success:function (data) {
                    //data是服务端相应的数据,然后解析
                    console.log(data.name + " " + data.age + " " + data.money);
                }
            })
        })
    });

    总结:发送请求到服务端,可以通过返回类型为string的方法返回相应的页面,如果需要返回值
    可以绑定在Model对象中,在请求域中获取;也可通过request转发或者response重定向一个返回
    页面。对于request和response的使用还可以通过返回一个特定格式的字符串如:
        return "forward:/WEB-INF/pages/success.jsp"
        return "redirect:/index.jsp"
    这两者是不能使用视图解析器的,需要指明路径。
    可以使用ModelAndView作为返回值,在model中设置视图和模型。
    可以使用ajax发送异步请求,映射方法参数中使用@RequestBody接收,方法返回值为返回类型
    在前面加@ResponseBody,对于ajax发送的json格式数据的解析需要jackson相应的jar包。配置
    这两个注解后便会自动封装数据到方法参数中,返回也会自动封装为json对象返回。
        
        @RequestMapping(path = "/testAjax")
        public @ResponseBody User testAjax(@RequestBody User user){
            System.out.println("ajax执行了");
            //导入相关jar包,已经将数据封装到对象中
            System.out.println(user);
            user.setName("we");
            System.out.println(user);
            return user;
        }


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存