千家信息网

SpringMVC实现Controller的方式有哪些

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍了SpringMVC实现Controller的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringMVC实现Controller的方法有哪
千家信息网最后更新 2025年01月20日SpringMVC实现Controller的方式有哪些

这篇文章主要介绍了SpringMVC实现Controller的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringMVC实现Controller的方法有哪些文章都会有所收获,下面我们一起来看看吧。

实现Controller的三种方式

1.实现Controller接口

实现Controller接口,重写handleRequest方法,ModelAndView对象是一个模型视图对象,既可以添加数据,又可以保存页面信息,并且处理请求的方式是转发。这个对象要拆成两部分来看

model和view。转发到下一个页面之后,会把 model中的数据渲染到view中展示。在页面可以使用el表达式获取。Model中数据的范围是 request。

import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * @className: PACKAGE_NAME.MyController1 * @description: TODO * @author: ych * @create: 2021-06-02 20:25 */public class MyController1 implements Controller {    @Override    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {        //实例化ModelAndView对象        ModelAndView modelAndView = new ModelAndView();        //放数据,相当于request.setAttribute("msg", "我是数据");        modelAndView.addObject("msg", "我是数据");        //放视图        modelAndView.setViewName("forward:/WEB-INF/jsp/show.jsp");        return modelAndView;    }}

Spring-mvc.xml配置文件中添加,如下信息;

2.实现HttpRequestHandler接口

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

import org.springframework.web.HttpRequestHandler;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/** * @className: PACKAGE_NAME.MyController2 * @description: TODO * @author: ych * @create: 2021-06-02 20:28 */public class MyController2 implements HttpRequestHandler {    @Override    public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        //共享数据到request        request.setAttribute("msg", "我是数据");        //请求转发        request.getRequestDispatcher("/WEB-INF/jsp/show.jsp").forward(request, response);    }}

Spring-mvc.xml配置文件中添加,如下信息;

3.全注解

全注解,开发中写的@Controller注解必须配合扫描才能变成控制器。扫描组件会把头部带有注解的类管理起来。

@RequestMapping是提供请求访问路径的注解,比如UserController上添加的@RequestMapping("/"),这是相对路径,相对于整个程序来说的,所以可以在项目下直接访问到这个控制器类。

方法 test的头部添加@RequestMapping("/test.do"),表示访问到这个控制器类之后,在访问路径上再添加上"/test.do"才能访问到这个方法。

一个注解控制器类中可以定义很多的方法,只需要在方法头部添加不同的@RequestMapping 的值就可以吧这些方法作为不同的控制器使用,所以注解模式在开发中最常用。

import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;/** * @className: PACKAGE_NAME.MyController3 * @description: TODO * @author: ych * @create: 2021-06-02 20:32 */@Controller@RequestMapping("/")public class MyController3 {    @RequestMapping("/test1.do")    public ModelAndView test(){        //创建模型视图对象        ModelAndView modelAndView = new ModelAndView();        //添加模型数据,相当于request.setAttribute("msg", "helloworld");        modelAndView.addObject("msg", "helloworld");        //放视图        modelAndView.setViewName("forward:/WEB-INF/jsp/show.jsp");        return modelAndView;    }}

在spring-mvc.xml文件中必须增加上扫描组件:

关于SpringMVC的控制器(Controller)

控制器Controller

控制器负责解析用户的请求并将其转换为一个模型

在SpringMVC中一个控制器可以包含多个方法

SpringMVC中对于Controller的配置方式

  • 实现Controller接口

  • 注解实现Controller

1、实现Controller接口

1、web.xml

            springmvc        org.springframework.web.servlet.DispatcherServlet                    contextConfigLocation            classpath:springmvc-servlet.xml                1                springmvc        /    

2、springmvc-servlet.xml

                                    

3、创建Controller类

package com.springmvc.controller;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Test1Controller implements Controller {    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {        ModelAndView modelAndView = new ModelAndView();        modelAndView.addObject("msg","Controller");        modelAndView.setViewName("test");        return modelAndView;    }}

在springmvc-servlet.xml中为Test1Controller注册bean

2、注解实现Controller

1、web.xml

            springmvc        org.springframework.web.servlet.DispatcherServlet                    contextConfigLocation            classpath:springmvc-servlet.xml                1                springmvc        /    

2、springmvc-servlet.xml

                                

3、Test2Controller

      //被这个注解的类中的所有方法,如果返回值是String,并且有具体页面可以跳转,那么就会被视图解析器解析;      @Controller      public class Test2Controller {                @RequestMapping("/t2")          public String test2(Model model){              model.addAttribute("msg","注解实现Controller");              return "test";          }      }

4、test.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>    Title${msg}

关于"SpringMVC实现Controller的方法有哪些"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"SpringMVC实现Controller的方法有哪些"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

0