3.2 SpringMVC 核心类和注解开发

注册一个DispatcherServlet

在web.xml中注册一个DispatcherServlet前端控制器:
在这里插入图片描述

控制器的注解:@Controller

写在前面:
使用注解方式,运行时候需要依赖Spring的AOP包,因为要在pom.xml添加spring-aop-4.3.6.RELEASE.jar.

在控制器类中引入 org.springframework.stereotype.Controller ,就可以使用 @Controller 在类上标记,通过Spring的扫描,将该类作为控制器,不在需要实现 Controller接口了。

在这里插入图片描述

利用Spring的扫描,使控制器内的注解生效:
在这里插入图片描述

关于@RequestMapping注解:

  Spring通过 @Controller 注解找到控制器后,还需要将 将浏览器发来的请求Url 映射到 控制器内的 具体处理方法上,此时需要 @RequestMapping 注解来配置。
  @RequestMapping 注解可以放在类上,也可以放在控制器类的方法上。放在控制器类上,则为该控制器类指定了一个url前缀,浏览器端在发送请求时候,必须先写该类的 @RequestMapping 指定的value,再拼接具体方法的映射; @RequestMapping放在方法上时,就是为该处理方法,配置一个映射供浏览器端访问。

具体 @RequestMapping 中有几个属性:
name: 为映射地址指定别名;
 **value: 为处理方法或控制类 指定一个映射地址,value属性时默认属性,若没有指定其他属性时,可以直接写 @RequestMapping(“user/query”);
 **method: 限定该处理方法 只接受固定请求方式(其值有RequestMethod.GET、RequestMethod.POST、RequestMethod.PUT、RequestMethod.DELETE等);
  *params: 用于指定 浏览器端发来的请求中 必须包含某些参数,才能顺利访问该处理方法;
  *headers: 检验Request 中必须包含某些指定的请求头,才能顺利访问该处理方法;
consumes:用于指定请求的提交内容类型(如application/json、text/html 等);
produces:定义返回的数据类型;

对 @RequestMapping 的改进:
  Spring 4.3 以后,引入了 @GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping 分别映射 GET 、POST、PUT、DELETE、PATCH 方式的请求,其中每个注解同样适用value等除method以外的其他属性,来配置请求信息;

对于请求方法的参数和返回数据类型:
在这里插入图片描述

除了图中注释说明关于处理方法的返回String类型,可以降低Model与View的耦合性;且通过处理方法的Model参数,解决了String返回类型不能携带数据供View展示的问题。String返回类型,同样可以处理实际业务经常用到的重定向、请求转发:

重定向:

在实际项目中,经常需要在修改外信息后,重新到数据展示视图中,展示修改的信息:

@PostMapping("/update")
public String updateUser(HttpServletRequest request,HttpServletResponse response,Model model){
     …………
     return "redirect:queryUser";
}

请求转发:

用户在数据展示视图中,点击 “编辑”,转发到数据编辑视图:

@PostMapping("/edit")
public String editUser(HttpServletRequest request,HttpServletResponse response,Model model){
     …………
     return "forward:editUser";
}

ViewResolver

 简化处理 请求 对应的处理方法 String 返回类型,具体返回值:

 例如,在处理函数后,需要 return “/WEB-INF/JSP/first.jsp”;

 使用ViewResolver,首先在Spring配置文件中配置ViewResolver:
在这里插入图片描述
在Spring配置ViewResolver后,可以改为 return “first”;;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值