栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【软件开发架构平台】CH4 Spring MVC入门

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【软件开发架构平台】CH4 Spring MVC入门

Spring MVC简介

Spring MVC是Spring体系中的轻量级Web MVC (表示层)框架

Spring MVC核心是Controller控制器,用于处理响应和请求

Spring MVC基于Spring IoC容器运行,所有对象被IoC容器管理

体系架构

  • 请求首先道道前端控制器,委托给具体的控制器处理请求
  • 前端控制器通过查询处理器映射,找到URL对应的控制器
  • 控制器处理请求,包括数据处理,调用业务逻辑等
  • 控制器将模型数据(打包)和(逻辑)视图名返回给前端控制器
  • 视图解析器讲逻辑视图名匹配成具体的视图实现
  • 视图进行模型数据和视图实现的渲染
  • 交付模型数据,给出Web响应
Spring MVC基本使用

配置Maven
在pom.xml配置


      org.springframework
      spring-webmvc
      2.1.4

配置web.xml
打注解@Servlet或配置DispatcherServlet



      springmvc
      org.springframework.web.servlet.DispatcherServlet
      
      
      
      		contextConfigLocation
      		classpath:applicationContext.xml
      
      
       
      0      



      springmvc
      / 

配置applicationContext.xml
以下为配置web.xml后的配置


...

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e8cB9AJ8-1651079485702)(C:Users西铭AppDataRoamingTyporatypora-user-imagesimage-20220427235727515.png)]

编写Controller

  • @Controller 注解该类为一个Servlet控制器
  • @GetMapping 注解URL映射
  • @ResponseBody 注解直接以字符串内容进行响应

URL映射

  • Spring MVC通过URL映射将Web请求的URL和控制器中的方法进行映射
  • URL映射基于方法,比传统的web.xml中Serve论坛映粒度更小,使用更灵活
  • 常用注解
    • @RequestMapping:通用映射,不区分请求,常用于Controller类,进行全局设置
    • @GetMapping:Get请求映射,作用于具体方法
    • @PostMapping:Post请求映射,作用于具体方法

Spring MVC提供多种方式接收请求参数,包括:

(1) 使用属性在方法参数直接接收参数

  • 基于规则,所以要确保前后端属性名称一致,如果属性名称不一致,使用@RequestParam注解进行映射

(2) 使用JavaBean接收封装后的大量数据——更为常用

Spring MVC响应处理

Spring MVC对传统Servlet的相应处理进行了大量的简化,同时提供ModelAndView对象将响应的内容(Model)和视图进行了解耦合

常用于响应处理的方式有:

  • @ResponseBody:不进行页面跳转和视图渲染,直接输出响应文本,包括标准JSON格式等
  • ModelAndView:通过JSP、Themeleaf等模板继续宁视图渲染
    • 产生页面跳转的方法返回ModelAndView类型
    • ModelAndView中的对象作用域默认为request
    • ModelAndView的页面跳转方式默认为forward
@Controller
@RequestMapping("/hello")//配置URL映射
public class DemoCnotroller{
	
	@Autowired
    private AccountService accountService;
    		
	
	@SessionAttributes(value = "account",types = {Account.class})//获取account
	@GetMapping("/loginForm")//配置URL映射
	public String Hello(@SessionAttribute("account") Account account,
						@RequestParam(value = "firstName",required = false) String firstName,)
	{
		//@RequestParam为从页面上提交的值,如果前后端属性名要一致,则不用打@RequestParam
		Account account1=new Account();
        account1.setUsername(account.username);
		return "Hello,"+account.username+",your firstname is:"+firstName;
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/841691.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号