zoukankan      html  css  js  c++  java
  • [SpringMVC-初始] 初始SpringMVC

    关于SpringMVC的简介

    A.SpringMVC概述

      作用:

        SpringMVC框架是SpringFramWork中实现了MVC架构模式的轻量级子框架

        用于将WEB层进行职责解耦,松散的耦合可插拔组件结构,
        比其他的MVC框架有更强的扩展性和灵活性

      优点:
        简介的MVC设计
        与Spring框架的无缝集合
        灵活的URL映射
        丰富的视图(字符串,对象,转发,重定向,json,xml,图片...)支持

    B.新建一个SpringMVC项目

        

    HelloController.java

    package com.stu.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    /**
     * 文件名称: com.stu.controller.HelloController.java<br/>
     * 初始作者: Administrator<br/>
     * 创建日期: 2018-2-5<br/>
     * 功能说明: 新建一个Controller控制器 <br/>
     * =================================================<br/>
     * 修改记录:<br/>
     * 修改作者 日期 修改内容<br/>
     * ================================================<br/>
     * Copyright (c) 2010-2011 .All rights reserved.<br/>
     */
    // @Controller注解:使得一个普通的POJO(Plain Old Java Object,没有实现过任何接口或继承过任何类的Java对象)类成为一个控制器。
    @Controller
    // @RequestMapping注解:用来指定请求的映射路径,可以加在类前面,也可以加在方法前面
    // 例如在类前面加上@RequestMapping("/hello") 表示通过/hello能够访问到HelloController这个类
    // 对于不同的Controller类,类前面的@RequestMapping对应的映射路径不要重复!
    @RequestMapping("/hello")
    public class HelloController {
    
        @RequestMapping("/demoForHello")
        // 说明该方法的访问路径是/hello/demoForHello
        // 即在hello注解中的demoForHello注解的方法
        public String helloPage() {
            //返回的为视图名,前缀+返回值+后缀名=最后 跳转/转发 路径
            return "Hello";
        }
    }

    通过浏览器地址栏访问容器地址:http://127.0.0.1:7070/SpringMVCDemo/hello/demoForHello  则会根据返回的 “Hello" 匹配相应的界面。

    前缀和后缀在SpringMVC-servlet.xml中配置

        <!--
            注解扫描器 ,base-package用于指定要扫描的包的路径
            当前配置用来扫描com.niit.controller包及其子包下所有的类,所有含@Controller注解的类就会成为一个控制器类(就有了处理请求和返回响应的能力)
            另外被@Controller注解标记的类也会成为Spring IOC 容器中被管理的一个对象
        -->
        <context:component-scan base-package="com.stu.controller"></context:component-scan>
    
        <!-- 视图解析器  -->
        <bean id="viewResolver"
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!-- 前缀 -->
            <property name="prefix" value="/WEB-INF/"></property>
            <!-- 后缀 -->
            <property name="suffix" value=".jsp"></property>
        </bean>
    
    
        <!-- 不拦截静态资源 -->
        <mvc:annotation-driven></mvc:annotation-driven>
        <mvc:default-servlet-handler />

    编辑一个 Hello.jsp 文件,文件名和方法返回值大小写一致。

    并且在web.xml中添加如下配置信息

    <!-- SpringMVC的中央控制器 -->
        <servlet>
            <servlet-name>springMVC</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!-- 
                   也可以通过修改Servlet的初始化参数来指定要加载的SpringMVC配置文件所在的路径
                -->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>/WEB-INF/config/springMVC-servlet.xml</param-value>
                <!-- 从类路径加载 -->
                <!--<param-value>classpath:applicationContext.xml</param-value>-->
            </init-param>
            <!--页面加载时开始加载-->
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>springMVC</servlet-name>
            <!--
                /* 拦截的是所有的路径,如果直接访问jsp,那么不可能存在以/***/***.jsp为路径的控制器 如果访问/hello/hello01
                那么在转发过程中依然跳转到.jsp路径,和前面的场景一样是错误的
            -->
            <!--
                / 只会拦截路径型请求,例如 /hello/hello01 不会拦截后缀型请求,例如jsp
                但是会拦截纯静态资源,例如css、js、图片之类 如果要纯静态资源能够被正常加载,那么需要在Spring配置文件中加上:
                <mvc:annotation-driven/> <mvc:default-servlet-handler/>
            -->
            <url-pattern>/</url-pattern>
        </servlet-mapping>

    添加到Tomcat容器中,用浏览器进行访问结果如下

        

  • 相关阅读:
    【luogu T34117 打油门】 题解
    【luogu P1774 最接近神的人_NOI导刊2010提高(02)】 题解
    【luogu P1462 通往奥格瑞玛的道路】 题解
    【luogu P3808 AC自动机(简单版)】 模板
    替罪羊树~讲解
    【luogu P3369 【模板】普通平衡树(Treap/SBT)】 模板 Scapegoat Tree
    【luogu P1801 黑匣子_NOI导刊2010提高(06)】 题解
    【luogu P2590 [ZJOI2008]树的统计】 题解
    【luogu P3398 仓鼠找sugar】 题解
    【luogu P3884 [JLOI2009]二叉树问题】 题解
  • 原文地址:https://www.cnblogs.com/x-you/p/8419357.html
Copyright © 2011-2022 走看看