当前位置: 首页 > web >正文

SpringMVC 常用注解及页面跳转方式(面试)

1. SpringMVC常用注解

  1. @Controller:标识一个类是Spring MVC的控制器, 返回视图名(需要视图解析器), 即返回一个HTML页面

  2. @RequestMapping:映射URL到控制器方法, 对HTTP请求进行处理

  3. @RequestBody: 将请求体转换为Java对象, 也就是用java对象去接收请求参数

  4. @GetMapping/@PostMapping:特定HTTP方法的@RequestMapping简写/restful风格

  5. @RequestParam:绑定请求参数到方法参数

  6. @PathVariable:获取URL路径中的变量

  7. @ModelAttribute:绑定请求参数到命令对象

  8. @ResponseBody:将方法返回值直接写入HTTP响应体

  9. @RestController:组合@Controller和@ResponseBody, 直接返回JSON数据, 一般在使用restful风格的时候使用

  10. @SessionAttributes:声明会话级模型属性

  11. @Valid:触发对命令对象的验证

2. 页面跳转方式

1. 返回字符串视图名

@Controller
public class MyController {@RequestMapping("/hello")public String hello() {return "hello"; // 返回视图名,对应/WEB-INF/views/hello.jsp}
}

2. 重定向(Redirect)

@Controller
public class MyController {@RequestMapping("/redirect")public String redirect() {return "redirect:/newUrl"; // 重定向到/newUrl}
}

3. 请求转发(Forward)

@Controller
public class MyController {@RequestMapping("/forward")public String forward() {return "forward:/newUrl"; // 转发到/newUrl}
}

4. 使用视图解析器(ViewResolver)

首先在已有WebMvc配置类的基础上, 创建一个WebConfig配置类, 继承WebMvc配置类, 并写一个方法, 返回类型为ViewResolver(视图解析器), 然后创建InternalResourceViewResolver对象, 并用这个对象.setPrefix("/WEB-INF/页面地址") 例如我的页面存储在/WEB-INF/views下, 再使用对象.setSuffis(".jsp")

配置视图解析器后,可以自动添加前缀后缀

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {@Beanpublic ViewResolver viewResolver() {InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix("/WEB-INF/views/");resolver.setSuffix(".jsp");return resolver;}
}

这种方式一般比较少用, 页面的跳转一般都是在前端执行的, 后端只需要对数据进行处理即可

5. 使用HttpServletResponse

方法直接返回void, 并用response.sendRedirect()

@Controller
public class MyController {@RequestMapping("/direct")public void direct(HttpServletResponse response) throws IOException {response.sendRedirect("http://localhost:8080/index");}
}
  1. 请求映射

    • 当用户访问/directt 路径时(如:http://localhost:8080/index/direct),Spring会调direct()方法。

  2. 参数注入

    • Spring自动注入 HttpServletResponse 对象,用于直接操作HTTP响应。

  3. 重定向操作

    • 调用response.sendRedirect("http://localhost:8080/index");

      • 服务端返回 302状态码(临时重定向)

      • 响应头中包含Location:http://localhost:8080/index

      • 浏览器接收到响应后,自动跳转到指定的URL。

  4. 返回类型为void

    • 方法返回void,表示完全由开发者手动控制响应内容(不依赖Spring的视图解析器)。

http://www.xdnf.cn/news/14030.html

相关文章:

  • vue前端项目打包和部署
  • Vue3 + TypeScript 操作第三方库(Element Plus 的 ElTable)的内部属性
  • SQL Server 修改数据库名及物理数据文件名
  • 性能测试——搭建Prometheus+Grafana平台
  • linux学习慕课版 第一章 Linux 文件与目录学习笔记
  • Nginx 配置 HTTPS 与证书格式全解析:支持后端代理验证
  • 基于云计算的振动弦分析:谐波可视化与波动方程参数理解-AI云计算数值分析和代码验证
  • 计算机视觉之三维重建(深入浅出SfM与SLAM核心算法)—— 3. 单视几何
  • 从入门到精通:C# 中 AutoMapper 的深度解析与实战应用
  • 嵌入式PADS中元件封装绘制与实现
  • MySQL 8.0 OCP 英文题库解析(十八)
  • 使用 C/C++ 和 OpenCV DNN 进行人体姿态估计
  • 洛谷 蜜蜂路线 高精度
  • 图片去水印,图片变清晰,完成免费
  • Webpack:现代前端构建工具的核心解析
  • npm安装electron报错权限不足
  • 枫清科技携手中化信息挖掘实现AI高价值场景应用,打通智能化“最后一公里”
  • 音视频的前端知识
  • Google Chrome 书签导出
  • ffmpeg覆盖区域
  • AWS WebRTC:通过shell实现多进程启动master
  • ubuntu 拒绝ssh连接,连不上ssh,无法远程登录: Connection failed.
  • eBay自养号测评系统搭建需要解决哪些问题?
  • 一个模板元编程示例
  • 前端三剑客基础案例001
  • 05 - SimAM模块
  • Docker 下备份 Mariadb 数据库文件
  • [技术积累]成熟的前端和后端开发框架
  • 全新RA2L2 MCU超低功耗、支持CAN及USB-C、拓展工业及便携式应用
  • 洛谷 数楼梯 高精度