1.实现Controller接口
实现Controller接口,重写handleRequest方法,ModelAndView对象是一个模型视图对象,既可以添加数据,又可以保存页面信息,并且处理请求的方式是转发。这个对象要拆成两部分来看
model和view。转发到下一个页面之后,会把 model中的数据渲染到view中展示。在页面可以使用el表达式获取。Model中数据的范围是 request。

2.实现HttpRequestHandler接口

实现HttpRequestHandler接口,重写 handleRequest方法。这个实现方式与servlet 基本一致。

3.全注解
全注解,开发中写的@Controller注解必须配合扫描才能变成控制器。扫描组件会把头部带有注解的类管理起来。@RequestMapping是提供请求访问路径的注解,比如UserController上添加的@RequestMapping(“/”),这是相对路径,相对于整个程序来说的,所以可以在项目下直接访问到这个控制器类。方法 test的头部添加@RequestMapping(“/test.do”),表示访问到这个控制器类之后,在访问路径上再添加上“/test.do”才能访问到这个方法。一个注解控制器类中可以定义很多的方法,只需要在方法头部添加不同的@RequestMapping 的值就可以吧这些方法作为不同的控制器使用,所以注解模式在开发中最常用。

springmvc有两种实现控制器的主要方法一种实现接口方法,还有一种是用注解实现(@Controller)

实现接口Controller(不建议使用,因为一个接口一个方法,十分繁琐)
导入包

import org.springframework.web.servlet.mvc.Controller;
注意是web下的包

重写Controller中的方法

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
       
        return null;
    }
第一步:创建ModeAndView对象

第二步:调用对象中的方法,接受前端的信息并返回

第三步:封装跳转到视图,放在ModeAndView

public class HelloController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        //ModelAndView 模型和视图
        ModelAndView mv = new ModelAndView();
        //封装对象,放在ModelAndView中。Model
        mv.addObject("msg","HelloSpringMVC!");
        //封装要跳转的视图,放在ModelAndView中
        mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp
        return mv;
    }
}
实现接口Controller定义控制器是较老的办法
缺点是:一个控制器中只有一个方法,如果要多个方法则需要定义多个Controller;定义的方式比较麻烦;
注解实现Controller(推荐使用)
导入包

import org.springframework.stereotype.Controller;
注意这个是和前边的不一样

@Controller
@RequestMapping("/HelloController")
public class HelloController {
    //真实访问地址 : 项目名/HelloController/hello
    @RequestMapping("/hello")
    public String sayHello(Model model){
        //向模型中添加属性msg与值,可以在JSP页面中取出并渲染
        model.addAttribute("msg","真漂亮");
        //web-inf/jsp/hello.jsp
        return "hello";
    }
}
@Controller

在类面前添加不用实现接口的方法,只需要新建一个方法返回的是String类型,参数为视图model加上其他,就直接可以在这个方法中实现与前端交互

@RequestMapping

这个注解表示在locolhost:8080/后加上HelloController,之后再加上下边return的关键字组成网页的地址,同时这个放在类前边和方法前边是一样的,不过要先添加上类的关键字后加入方法的,其他方法和接口无差别。

controller实现相关推荐

  1. go系列(5)- beego自己写controller

    前边的系列文章已经讲述了如何安装环境, beego的处理逻辑都是在Controller里面完成的,下面就写一个最简单的Controller. 我们在写自己的controller的时候,一定要继承bee ...

  2. @Controller和@RestController的区别?

    @RestController注解相当于@ResponseBody + @Controller合在一起的作用 1) 如果只是使用@RestController注解Controller,则Control ...

  3. 关于Page翻页效果--Page View Controller

    Page View Controllers 你使用一个page view controller用page by page的方式来展示内容.一个page view controller管理一个self- ...

  4. mvc ajax提交html标签,asp.net-mvc – 如何使用ajax get或post在带有参数的mvc中将数据从View传递到Controller...

    我试图使用ajax将数据从View传递到Controller Action Method,如下所示: – 我有一个用户的Membership实例,我从另一个控制器传入这个视图,使用的视图有点像这个Vi ...

  5. spring 两次进入拦截器_4.SpringBoot 拦截器Fliter,Interceptor,Controller……

    在项目的开发中,在某些情况下,我们需要对客户端发出的请求进行拦截,常用的API拦截方式有Fliter,Interceptor,ControllerAdvice以及Aspect. 上面的图是Spring ...

  6. gvgai框架搭建及controller编写

    gvgai框架搭建及controller编写 gvgai框架搭建 controller编写 gvgai框架搭建 gvgai官网:http://www.gvgai.net/ 框架下载:http://ww ...

  7. Animation Override Controller动画重载器

    假设游戏有很多个小人, 每一个人有2种动画站立,跑.  在通常情况下每一个人物都需要一个动画控制器. 有没有想过定义一个动画控制器 无须在定义全新的动画充值器实现每一个小人都播放自己的动画呢?没错An ...

  8. Ext.app.controller的refs

    简 单来说,就是4.0建议的MVC中controller引用组件的一种方式,selector中设置组件,可以用id.classname,但推荐用 ComponentQuery("组件检索&q ...

  9. java注解返回不同消息,Spring MVC Controller中的一个读入和返回都是JSON的方法如何获取javax.validation注解的异常信息...

    Spring MVC Controller中的一个读入和返回都是JSON的方法怎么获取javax.validation注解的错误信息? 本帖最后由 LonelyCoder2012 于 2014-03- ...

  10. controller不跳转页面的几个原因_光知道SpringBoot,不用thymeleaf就太不对了

    之前的时候,我为了演示Linux配置提交项目执行环境,简单的整理了一下springboot得相关内容,但是在实际的开发过程中,SpringBoot得使用可不仅仅就是这一点点遍历而已,在SpringBo ...

最新文章

  1. 2022-03-16
  2. 即时聊天IM之二 openfire 整合现有系统用户
  3. python 命令行 解析模块 optparse、argparse
  4. Java笔记-使用RabbitMQ的Java接口实现round-robin(轮询分发)
  5. (63)FPGA面试题-用verilog写一段代码,实现消除一个glitch(毛刺)(二)
  6. MISCONF Redis配置为保存RDB快照
  7. DFS csu1719 Boggle
  8. 服务于win10的telnet的简易聊天服务器(单进程)
  9. 阿里oss服务端签名后直传
  10. 软件工程之概要设计说明书
  11. GreeDAO 使用
  12. 宋体 ttf_Linux安装7种思源宋体的5个步骤
  13. java等待所有子线程执行完毕再执行
  14. 对傅里叶函数以及级数的理解
  15. 隐藏17年的Firefox文件窃取漏洞,可结合WhatsApp钓鱼窃取文件
  16. 浅析N沟道增强型MOS管的工作原理
  17. Python老司机带你快速搞定日志分析工具
  18. 从零学习Vue - 02模板语法、el与data两种写法、mvvm模型、数据代理
  19. 毕业这五年走来,这些私藏Redis的最全知识点我贡献出来了
  20. Squid 缓存代理(二)---ACL访问控制、日志分析

热门文章

  1. 小丸子学Hadoop系列之——部署Hbase集群
  2. MATLAB 如何让图形变美?[第一期]
  3. 详解主流浏览器多进程架构:Chrome、IE
  4. 北航计算机考博经验,最新的北航考博经验
  5. 开发人员的人品问题 收藏
  6. 2017 ACM Arabella Collegiate Programming Contest A. Sherlock Bones GYM101350A
  7. H264(AVC)/H265(HEVC)/H266(VVC):GOP的区别
  8. PAMI2012跟踪算法TLD的配置(Tracking-learning-detection)
  9. windows内码、外码、字符映射表
  10. 2020年美容师(中级)报名考试及美容师(中级)考试总结