zoukankan      html  css  js  c++  java
  • SpringMVC的入门程序(Controller控制器实现的3种方式)

    项目结构:

    实现步骤:

    ①导入jar包

    ②web.xml配置核心控制器( DispatcherServlet )

    ex:

        <?xml version="1.0" encoding="utf-8"?>
        <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                              http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
            version="3.0" metadata-complete="false">
         
            <!-- 配置SpringMVC的核心控制器(负责所有请求的公共功能,然后在分发给具体的控制器(我们编写的控制器),完成业务逻辑,响应视图。) -->
            <servlet>
                <servlet-name>springmvc</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <!--
                    服务器在启动的时候,就加载springmvc的配置文件
                    如果不配置就默认去WEB-INF文件夹下找:<servlet-name>-servlet.xml的配置(这种方式需要拷贝配置文件到WEB-INF)
                 -->
                <init-param>
                    <param-name>contextConfigLocation</param-name>
                    <param-value>classpath:springmvc.xml</param-value>
                </init-param>
                <!-- Servlet容器启动的时候就进行初始化 -->
                <load-on-startup>1</load-on-startup>
            </servlet>
            <servlet-mapping>
                <servlet-name>springmvc</servlet-name>
                <!-- 请求的入口,所有请求都会经过DispatcherServlet处理 -->
                <url-pattern>/</url-pattern>
            </servlet-mapping>
         
        </web-app>

    ③Controller控制器实现的3种方式 ( 使用方式3全注解,方式1和方式2了解即可!!!)

    方式1:实现Controller的接口

        public class ControllerDemo1 implements Controller {
            @Override
            public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
                System.out.println("===方式一:实现Controller接口===");
                //使用ModelAndView去响应
                ModelAndView mav = new ModelAndView();//模型数据和视图对象
                mav.addObject("msg","helloworld");//添加模型数据
                mav.setViewName("/hello.jsp");//设置视图路径      是一个转发
                return mav;
            }
        }

    SpringMVC配置:

    <bean id="/demo1" class="com.zhengqing.controller.ControllerDemo1" ></bean>

    hello.jsp页面中添加显示内容  ==>  hello.jsp页面:${msg}

    运行效果:

    方式2:实现HttpRequestHandler接口

        public class ControllerDemo2 implements HttpRequestHandler {
            @Override
            public void handleRequest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                System.out.println("===实现HttpRequestHandler接口===");
            }
        }

    SpringMVC配置:

    <bean id="/demo2" class="com.zhengqing.controller.ControllerDemo2" ></bean>

    运行效果:

    方式3:直接就是一个普通JAVA类 (使用注解的方式,注意:要配置全注解!!)

        @Controller   //创建对象
        //@RequestMapping("/demo")
        public class ControllerDemo3 {
            @RequestMapping("/demo3")  //配置访问路径  注意:如果类上面添加了@RequestMapping("/demo")  则此时访问将变成/demo/demo3
            @ResponseBody
            public void test(){
                System.out.println("方式三:普通类+注解");
            }
        }

    在SpringMVC的配置中添加自动扫描(作用:让spring管理这个bean即可,无需指定路径,在方法上面通过@RequestMapping指定即可!)

        <!-- 全注解扫描所有的包 -->
        <context:component-scan base-package="com.zhengqing.controller" />

    运行效果:

    最后我的SpringMVC配置:

        <?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"
            xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
             http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">
         
            <!-- 配置实现的Controller接口 -->
            <bean id="/demo1" class="com.zhengqing.controller.ControllerDemo1" ></bean>
            <!-- 配置实现的HttpRequestHandler接口-->
            <bean id="/demo2" class="com.zhengqing.controller.ControllerDemo2" ></bean>
            
            <!-- 全注解扫描所有的包 -->
            <context:component-scan base-package="com.zhengqing.controller" />
            
        </beans>
    ---------------------
    作者:郑清
    来源:CSDN
    原文:https://blog.csdn.net/qq_38225558/article/details/83271233
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    几个新角色:数据科学家、数据分析师、数据(算法)工程师
    人类投资经理再也无法击败电脑的时代终将到来了...
    Action Results in Web API 2
    Multiple actions were found that match the request in Web Api
    Routing in ASP.NET Web API
    how to create an asp.net web api project in visual studio 2017
    网站漏洞扫描工具
    How does asp.net web api work?
    asp.net web api history and how does it work?
    What is the difference between a web API and a web service?
  • 原文地址:https://www.cnblogs.com/TomJay/p/9945432.html
Copyright © 2011-2022 走看看