Spring MVC前后端数据交互总结

  • 控制器

    作为控制器,大体的作用是作为V端的数据接收并且交给M层去处理,然后负责管理V的跳转。SpringMVC的作用不外乎就是如此,主要分为:接收表单或者请求的值,定义过滤器,跳转页面;其实就是servlet的替代品。

    - append

    Spring MVC在Web应用中扮演V的角色,负责处理HTTP请求并返回相应的资源,它在用的时候要配置一个核心的Dispatcher负责检查资源,请求过来的时候会查找是否有相应的Handler,有就会把请求交给Controller,一般使用注解来配置暴露给用户端进行调用。

@RequestMapping(value="/JSON",produces="text/html;charset=UTF-8")

    value就是对外暴露的接口地址。

    说到控制器,我们会想到熟悉的Struts2,它可以轻松的调用Request和Response来操作请求响应,如果要在Spring MVC里调用请求响应的话,则需要附带在方法参数上。

//Request Response
    @RequestMapping(value="/ReqAndRep",produces="text/html;charset=UTF-8")
    public void reqAndrep(HttpServletRequest request,HttpServletResponse response){
        
    }

    这样就可以控制这个Http请求并且往响应体里写东西了。

  • 传值方式

    - append

    管中窥豹,只见一斑;一叶障目,不见泰山。在前后端交互的过程中,首先要知道都是什么数据类型并且对不同的类型看看Spring MVC会提供怎样的编程方式。

    前后端的数据无非是:变量,对象,数组,JSON;他们有可能会有迭代的行为,把基本的搞懂就不怕他们的二次型了。

    springmvc最方便的一点就是可以通过注释方式来定义它的url。 

@Controller
public class formMVC {
    @RequestMapping("/hello")
    public void login(){
        
    }

    如上面这种方式,在项目名下跟着hello就能访问这个方法了,相较struts2的xml配置加大了开发效率,并且是以方法为级别的开发。

    接收表单数据只需要在方法的参数加入响应的字段,对应表单input的name属性,因为是通过反射技术实现的所以字段要完全相同  

    变量

@RequestMapping("/login")
    public String login(String username,String password){
        System.out.println(username+" "+password);
        return "form.jsp";
    }

    - append

    变量一般是在表单中指定的name对应的形参,也可以在形参中使用别名。 

//传入一般参数
    @RequestMapping(value="/Normal",produces="text/html;charset=UTF-8")
    public String normal(HttpServletRequest request,@RequestParam("username") String username,@RequestParam("password") String password){
        System.out.println("username:"+username+" password:"+password);
        request.setAttribute("info", "Normal server recv:"+username+" "+password);
        return "testPage.jsp";
    }

    前端数据页面,写一个Form,input对应别名就好。