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

实现Controller的三种方式1.实现Controller接口

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

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

importorg.springframework.web.servlet.ModelAndView;importorg.springframework.web.servlet.mvc.Controller;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/***@className:PACKAGE_NAME.MyController1*@description:TODO*@author:ych*@create:2021-06-0220:25*/publicclassMyController1implementsController{@OverridepublicModelAndViewhandleRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsException{//实例化ModelAndView对象ModelAndViewmodelAndView=newModelAndView();//放数据,相当于request.setAttribute("msg","我是数据");modelAndView.addObject("msg","我是数据");//放视图modelAndView.setViewName("forward:/WEB-INF/jsp/show.jsp");returnmodelAndView;}}

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

<beanclass="MyController1"id="controller1"/>2.实现HttpRequestHandler接口

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

importorg.springframework.web.HttpRequestHandler;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;/***@className:PACKAGE_NAME.MyController2*@description:TODO*@author:ych*@create:2021-06-0220:28*/publicclassMyController2implementsHttpRequestHandler{@OverridepublicvoidhandleRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//共享数据到requestrequest.setAttribute("msg","我是数据");//请求转发request.getRequestDispatcher("/WEB-INF/jsp/show.jsp").forward(request,response);}}

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

<beanclass="MyController2"id="controller2"/>3.全注解

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

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

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

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

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

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

<context:component-scanbase-package="需要扫描的包路径"/>关于SpringMVC的控制器(Controller)控制器Controller

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

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

SpringMVC中对于Controller的配置方式

实现Controller接口

注解实现Controller

1、实现Controller接口

1、web.xml

<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://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>

2、springmvc-servlet.xml

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

3、创建Controller类

packagecom.springmvc.controller;importorg.springframework.web.servlet.ModelAndView;importorg.springframework.web.servlet.mvc.Controller;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassTest1ControllerimplementsController{publicModelAndViewhandleRequest(HttpServletRequesthttpServletRequest,HttpServletResponsehttpServletResponse)throwsException{ModelAndViewmodelAndView=newModelAndView();modelAndView.addObject("msg","Controller");modelAndView.setViewName("test");returnmodelAndView;}}

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

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

2、注解实现Controller

1、web.xml

<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://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>

2、springmvc-servlet.xml

<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--自动扫描指定的包,下面所有注解类交给IOC容器管理--><context:component-scanbase-package="com.springmvc.controller"/><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><propertyname="prefix"value="/WEB-INF/jsp/"/><propertyname="suffix"value=".jsp"/></bean><!--<beanid="/test1"class="com.springmvc.controller.Test1Controller"/>--></beans>

3、Test2Controller

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

4、test.jsp

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

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