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

打印 上一主题 下一主题

主题 681|帖子 681|积分 2043

RestFul 风格改变 URL 形式
比如之前是:http://localhost:8080/add?a=1&b=2
现在是:http://localhost:8080/add/a/b(满是斜杠)
  1. package com.demo.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.ui.Model;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.PathVariable;
  6. import org.springframework.web.bind.annotation.RequestMethod;
  7. @Controller
  8. public class RestFul {
  9.     //@RequestMapping(value = "/add/{a}/{b}",method = RequestMethod.GET)
  10.     @GetMapping("/add/{a}/{b}")
  11.     public String test(@PathVariable String a,@PathVariable String b, Model model){
  12.         String res = a + b;
  13.         model.addAttribute("msg",res);
  14.         return "test"; //test.jsp
  15.     }
  16. }
复制代码
通过 @PathVariable 映射到 URL 上
所有的地址栏请求默认都是 HTTP GET 类型
同理,组合注解有:
@GetMapping() 、@PostMapping()
@PutMapping() 、@DeleteMapping() 、@PatchMapping()
ServletAPI:通过 HttpServletRequest 进行输出、实现重定向、实现转发
  1. package com.demo.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import javax.servlet.http.HttpSession;
  7. @Controller
  8. public class Model {
  9.     @RequestMapping("/model")
  10.     public String test(HttpServletRequest request, HttpServletResponse response){
  11.         HttpSession session = request.getSession();
  12.         System.out.println(session.getId());
  13.         return "test";
  14.     }
  15. }
复制代码
response.senRedirect("/xx.jsp")  重定向
request.getRequestDispatcher("/WEB-INF/jsp/xx.jsp").forward(request,response)  转发
通过 Spring MVC 来实现转发和重定向,无需视图解析器
forward 转发(不改变 URL)、redirect 重定向(改变 URL)
  1. package com.demo.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.ui.Model;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. @Controller
  6. public class ModelTest {
  7.     @RequestMapping("/model")
  8.     public String test(Model model){
  9.         model.addAttribute("msg","Model");
  10.         //转发:不改变url
  11.         //return "/WEB-INF/jsp/test.jsp";
  12.         //return "forward:/WEB-INF/jsp/test.jsp";
  13.         //重定向:改变url
  14.         return "redirect:/index.jsp";
  15.     }
  16. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

圆咕噜咕噜

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表