• Spring MVC(三)


    参考:http://c.biancheng.net/view/4406.html

    讨论前端发送请求

    1、发送方式
    常见的有get、post、put和delete
    其中get方式的发送信息可见,在请求的URL上
    而其它三种信息不可见,put和delete是特殊的post
    2、特殊
    值直接在URL中,类似

    http://a.b.c/doLogin/username/password
    

    3、发送格式
    这主要是针对post和put、delete方式来说
    json格式,或者xml格式

    4、多媒体格式

    前后端不分离数据接收

    1、通过实体Bean接收请求参数

    • 适用于get和post提交请求方式
    • Bean的属性名称必须与请求参数名称相同
    @RequestMapping("/login")
    public String login(UserForm user){}
    

    2、通过处理方法的形参接收请求参数

    • 适用于get和post提交请求方式
    • 形参名必须与请求参数名称相同
    • 该方法不会报404错误
    @RequestMapping("/register")
    public String register(String uname,String upass){}
    

    3、通过HttpServletRequest接收请求参数

    • 适用于get和post提交请求方式
    @RequestMapping("/register")
    public String register(HttpServletRequest request){}
    

    4、通过@PathVariable接收URL中的请求参数

    @RequestMapping("/user/{uname}/{upass}")
    public String register(@PathVariable String uname,@PathVariable String upass){}
    

    5、通过@RequestParam接收请求参数

    • 适用于get和post提交请求参数
    • 该方式会报404错误
    @RequestMapping("/register")
    public String register(@RequestParam String uname,
        @RequestParam String upass){}
    

    6、通过@ModelAttribute接收请求参数

    • 适用于get和post提交请求方式
    • 当 @ModelAttribute 注解放在处理方法的形参上时,用于将多个请求参数封装到一个实体对象,从而简化数据绑定流程,而且自动暴露为模型数据,在视图页面展示时使用
    @RequestMapping("/register")
    public String register(@ModelAttribute("user") UserForm user) {}
    

    转发与重定向

    @RequestMapping("/index")
    public class IndexController {
        @RequestMapping("/login")
        public String login() {
            //转发到一个请求方法(同一个控制器类可以省略/index/)
            return "forward:/index/isLogin";
        }
        @RequestMapping("/isLogin")
        public String isLogin() {
            //重定向到一个请求方法
            return "redirect:/index/isRegister";
        }
        @RequestMapping("/isRegister")
        public String isRegister() {
            //转发到一个视图
            return "register";
        }
    }
    

    在 Spring MVC 框架中,不管是重定向或转发,都需要符合视图解析器的配置,如果直接转发到一个不需要 DispatcherServlet 的资源,例如:

    return "forward:/html/my.html";
    

    则需要使用 mvc:resources 配置:

    <mvc:resources location="/html/" mapping="/html/**" />
    
  • 相关阅读:
    java并发编程 线程间协作
    博客园添加目录,导航,回到顶部
    汉诺塔递归实现
    java并发编程 线程基础
    Flink中算子进行Chain的规则分析(最新代码,源码版本大于1.11.2)
    Flink流处理程序在Local模式下的运行流程源码分析
    Flink-DataStream流处理应用(Local模式下)运行流程-源码分析
    Flink Streaming基于滚动窗口的事件时间分析
    Spark-2.3.2 Java SparkSQL的自定义HBase数据源
    Spark-2.3.2 HBase BulkLoad
  • 原文地址:https://www.cnblogs.com/heibaimao123/p/13801194.html
Copyright © 2020-2023  润新知