初学SpringMVC之 RestFul 风格、重定向和转发

RestFul 风格改变 URL 形式

比如之前是:http://localhost:8080/add?a=1&b=2

现在是:http://localhost:8080/add/a/b(全是斜杠)

package com.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class RestFul {
    //@RequestMapping(value = "/add/{a}/{b}",method = RequestMethod.GET)
    @GetMapping("/add/{a}/{b}")
    public String test(@PathVariable String a,@PathVariable String b, Model model){
        String res = a + b;
        model.addAttribute("msg",res);
        return "test"; //test.jsp
    }
}

通过 @PathVariable 映射到 URL 上

所有的地址栏请求默认都是 HTTP GET 类型

同理,组合注解有:

@GetMapping() 、@PostMapping()

@PutMapping() 、@DeleteMapping() 、@PatchMapping()

ServletAPI:通过 HttpServletRequest 进行输出、实现重定向、实现转发

package com.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@Controller
public class Model {
    @RequestMapping("/model")
    public String test(HttpServletRequest request, HttpServletResponse response){
        HttpSession session = request.getSession();
        System.out.println(session.getId());
        return "test";
    }
}

response.senRedirect("/xx.jsp")  重定向

request.getRequestDispatcher("/WEB-INF/jsp/xx.jsp").forward(request,response)  转发

通过 Spring MVC 来实现转发和重定向,无需视图解析器

forward 转发(不改变 URL)、redirect 重定向(改变 URL)

package com.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class ModelTest {
    @RequestMapping("/model")
    public String test(Model model){
        model.addAttribute("msg","Model");

        //转发:不改变url
        //return "/WEB-INF/jsp/test.jsp";
        //return "forward:/WEB-INF/jsp/test.jsp";

        //重定向:改变url
        return "redirect:/index.jsp";
    }
}

相关推荐

  1. SpringMVC转发定向

    2024-07-11 08:30:03       39 阅读
  2. SpringMVCREST风格

    2024-07-11 08:30:03       61 阅读
  3. SpringMVC RESTful风格

    2024-07-11 08:30:03       60 阅读
  4. restful风格springmvc中的例子简介

    2024-07-11 08:30:03       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 08:30:03       101 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 08:30:03       108 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 08:30:03       91 阅读
  4. Python语言-面向对象

    2024-07-11 08:30:03       98 阅读

热门阅读

  1. 探索AI数字人的开源解决方案

    2024-07-11 08:30:03       25 阅读
  2. GraphQL在Postman中:释放API查询的强大潜能

    2024-07-11 08:30:03       26 阅读
  3. iCloud数据宝库:全方位掌握笔记应用数据存储

    2024-07-11 08:30:03       23 阅读
  4. 开源项目有哪些机遇与挑战?

    2024-07-11 08:30:03       30 阅读
  5. Autogen和LangGraph对比

    2024-07-11 08:30:03       22 阅读
  6. Perl国际化与本地化:跨文化交流的桥梁

    2024-07-11 08:30:03       23 阅读
  7. mysql的常用函数

    2024-07-11 08:30:03       26 阅读
  8. 什么是强缓存和协商缓存

    2024-07-11 08:30:03       30 阅读
  9. Mybatis study

    2024-07-11 08:30:03       20 阅读