我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringMVC实现Controller的方式有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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;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配置文件中添加,如下信息;

<bean class="MyController1" id="controller1"/>

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;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配置文件中添加,如下信息;

<bean class="MyController2" id="controller2"/>

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;@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文件中必须增加上扫描组件:

<context:component-scan base-package="需要扫描的包路径"/>

关于SpringMVC的控制器(Controller)

控制器Controller

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

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

SpringMVC中对于Controller的配置方式

  • 实现Controller接口

  • 注解实现Controller

1、实现Controller接口

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"         version="4.0">    <servlet>        <servlet-name>springmvc</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:springmvc-servlet.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>springmvc</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping></web-app>

springmvc-servlet.xml

    <context:component-scan base-package="com.springmvc.controller"/>    <mvc:default-servlet-handler/>    <mvc:annotation-driven/>    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">        <property name="prefix" value="/WEB-INF/jsp/"/>        <property name="suffix" value=".jsp"/>    </bean>

创建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

<bean id="/test1" class="com.springmvc.controller.Test1Controller"/>

2、注解实现Controller

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"         version="4.0">    <servlet>        <servlet-name>springmvc</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:springmvc-servlet.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>springmvc</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping></web-app>

springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:context="http://www.springframework.org/schema/context"       xmlns:mvc="http://www.springframework.org/schema/mvc"       xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context        https://www.springframework.org/schema/context/spring-context.xsd        http://www.springframework.org/schema/mvc        https://www.springframework.org/schema/mvc/spring-mvc.xsd">    <!-- 自动扫描指定的包,下面所有注解类交给IOC容器管理 -->    <context:component-scan base-package="com.springmvc.controller"/>    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">        <property name="prefix" value="/WEB-INF/jsp/"/>        <property name="suffix" value=".jsp"/>    </bean><!--    <bean id="/test1" class="com.springmvc.controller.Test1Controller"/>--></beans>

Test2Controller

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

test.jsp

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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SpringMVC实现Controller的方式有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SpringMVC实现Controller的方式有哪些

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

在springMVC中controller的返回类型有哪些

这篇文章将为大家详细讲解有关在springMVC中controller的返回类型有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、返回ModelAndView返回ModelAndVie
2023-06-06

springMVC获取请求参数的方式有哪些

这篇文章主要讲解了“springMVC获取请求参数的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springMVC获取请求参数的方式有哪些”吧!初步认识可以直接在请求地址中给于请
2023-06-29

java实现锁的方式有哪些

Java实现锁的方式有以下几种:synchronized关键字:使用synchronized关键字可以在方法或者代码块上加锁,确保在同一时间只有一个线程可以访问被锁定的代码。ReentrantLock类:ReentrantLock是Java
2023-10-24

vbs ping实现的方式有哪些

这篇文章将为大家详细讲解有关vbs ping实现的方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。对于vbs中ping的实现可以通过两种方式 :1、调用系统ping命令;2、使用wmi查询ping
2023-06-08

vue实现tab的方式有哪些

这篇“vue实现tab的方式有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue实现tab的方式有哪些”文章吧。vue
2023-07-05

Spring AOP实现的方式有哪些

Spring AOP实现的方式有以下几种:1. 基于XML的配置:通过在Spring配置文件中使用元素来配置切面和通知。2. 基于注解的方式:通过在Java代码中使用注解来标识切面和通知。3. 基于@AspectJ的方式:通过在Java类中
2023-08-18

实现多线程的方式有哪些

本篇文章为大家展示了实现多线程的方式有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。实现多线程的方式:一,继承Thread方式:特点:多线程多实例,无法实现资源的共享。例子:package co
2023-05-31

java实现继承的方式有哪些

在Java中,实现继承的方式有以下几种:1. 类继承(单继承):一个子类只能继承一个父类。例如:class SubClass extends SuperClass2. 接口继承(多继承):一个子类可以实现多个接口。例如:class SubC
2023-10-18

node实现爬虫的方式有哪些

有以下几种方式可以使用node实现爬虫:使用第三方库:可以使用node.js的第三方库如request、cheerio、puppeteer等来实现爬虫功能。这些库提供了简单的API来发送HTTP请求、解析HTML页面、模拟用户行为等操作。自
node实现爬虫的方式有哪些
2024-03-08

spring事务实现的方式有哪些

Spring事务的实现方式有以下几种:1. 基于注解的方式:使用@Transactional注解来标识需要被事务管理的方法或类。可以将@Transactional注解放在方法上或者类上,来指定事务的传播行为和隔离级别。2. 基于XML配置的
2023-09-28

ListView中item的实现方式有哪些

在ListView中,可以使用以下几种方式实现item:1. 使用自定义布局文件:可以自定义一个布局文件,然后在Adapter中使用该布局文件来创建item的视图。2. 使用系统提供的布局:Android系统提供了一些默认的布局文件,如Si
2023-08-09

java多态的实现方式有哪些

Java中多态的实现方式有以下几种:1. 继承:子类继承父类,并重写父类的方法,通过父类引用指向子类对象实现多态。2. 接口:定义一个接口,多个类实现该接口,并重写接口中的方法,通过接口引用指向实现类对象实现多态。3. 方法重载:在同一个类
2023-08-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录