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

Java学习Day41:骑龙救!(springMVC)

springMVC与sevlet都是对应表现层web的,但是越复杂的项目使用SpringMVC越方便

基于Java实现MVC模型的轻量级web框架

目标:

小案例:

1.导入依赖

spring-context: 提供 Spring 框架的核心功能,如依赖注入、事件发布和其他应用上下文的功能。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.20</version>
</dependency>
aspectjweaver: 提供 AspectJ 框架的织入支持,允许你在 Spring 应用中使用面向切面编程(AOP)
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.4</version>
</dependency>
<!--   springMVC依赖注入     -->
javax.servlet-api: 提供 Java Servlet API 的接口,用于构建 web 应用的服务器端逻辑。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
spring-webmvc: 支持 Spring MVC 框架,用于构建 web 应用程序的控制器和视图层,处理 HTTP 请求和响应。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>请告诉我这些依赖的作用

2.使用@controller定义Bean,并定义访问路径

@Controller
public class UserController {@RequestMapping("save")//定义访问路径@ResponseBody//设置当前返回值类型,将返回值当作一个整体返回public String save() {System.out.println("user save");return "{'info':'springmvc'}";}
}

3.创建springmvc的配置文件,加载controller 对应的bean

@Configuration
@ComponentScan("com.viki.controller")
public class SpringConfig {
}

4.定义一个servlet容器启动的配置类,在里面加载spring的配置

定义一个servlet容器启动的配置类,在里面加载spring的配置
public class ServletContainerInitConfig extends AbstractDispatcherServletInitializer {@Override//加载springMVC容器配置protected WebApplicationContext createServletApplicationContext() {AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();ctx.register(SpringConfig.class);return (WebApplicationContext) ctx;}@Override//设置哪些请求归属springMVC处理protected String[] getServletMappings() {return new String[]{"/"};}@OverrideJ//加载spring容器配置protected WebApplicationContext createRootApplicationContext() {return null;}
}

1.请求与响应

@Controller
@RequestMapping("/hello")
@ResponseBody// 类级别的请求映射
public class HelloHandler {@RequestMapping(value = "/index")  // 方法级别的请求映射public String index(String name,int age) {System.out.println("接受请求!"+"name:"+name+"age"+age);return "HelloHandler";}@RequestMapping( "/indexdifnam")@ResponseBody// 方法级别的请求映射public String indexdifnam(@RequestParam("name") String username, int age) {System.out.println("接受请求!"+"username:"+username+"age"+age);return "HelloHandler";}@RequestMapping( "/javabeanpar")@ResponseBody// 方法级别的请求映射public String javabeanpar(User user) {System.out.println("接受请求!"+"user===>"+user);return "HelloHandler";}@RequestMapping( "/set")@ResponseBody// 方法级别的请求映射public String set(@RequestParam List<String> list) {System.out.println("接受请求!"+"集合===>"+list.toString());return "HelloHandler";}
}

json数据

重要注释:

响应JSON数据只需要在对相应方法上@RequestBody方法,return后写上对应的String串,或者对象即可

此注解可以激活spring MVC的自动类型转换

类型转换数据依赖

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.1</version></dependency>

2.REST编码风格

3.SSM整合

4.拦截器

http://www.lryc.cn/news/435539.html

相关文章:

  • Redis 常用命令总结
  • Mysql SqlServer 分页
  • 电子支付原理
  • 什么是OAuth 2.0?OAuth 2.0的工作流程是什么?与OAuth 1.0有哪些区别?
  • Unity+LeapMotion2的使用
  • 【CanMV K230 AI视觉】 跌倒检测
  • 谈谈PCIe VID、DID、SSID、SSVID背后的智慧
  • 9月11日
  • 昇腾310内存拷贝测试
  • ‘$store‘ is not defined.
  • 如何利用Linux提升工作效率和安全性?
  • 初始Linux 和 各种常见指令
  • 【稀疏矩阵】使用torch.sparse模块
  • 如何增加谷歌网站曝光率?
  • 虚幻中的c++(持续更新)
  • 83-MySQL 索引有几种
  • 文献解读-The trans-omics landscape of COVID-19
  • Unity核心实践小项目
  • Avaloia 实现国产麒麟系统中文显示界面
  • pytest 生成allure测试报告
  • 查询GPU版本以及PyTorch中使用单GPU和多GPU
  • 基于SpringBoot+Vue的线上考试系统
  • 动手学深度学习(pytorch土堆)-02TensorBoard的使用
  • STM3学习记录
  • 【网络】应用层协议-http协议
  • 【python】OpenCV—Mask RCNN for Object Detection and Instance Segmentation
  • 通过 Python 使用 Pexels图片库 API 打造个性化壁纸应用
  • 多线程篇(其它容器- CopyOnWriteArrayList)(持续更新迭代)
  • OPENAIGC开发者大赛高校组金奖 | 知洞—基于大模型的智慧题库
  • java服务CPU使用率高排查