SpringMVC(一)搭建第一个SpringMVC实例

一、SpringMVC概述

  SpringMVC也叫Spring Web MVC,数据Spring框架的一部分,在Spring3.0之后发布。

优点:

  • 基于MVC架构,分工明确,能够解耦合

  • SpringMVC是轻量级的,jar很小,不依赖特定的接口和类

  • 作为Spring框架的一部分,能够使用Spring的Ioc、Aop,方便整合Struts、Mybatis、Hiberate等其他框架。

二、第一个SpringMVC实例

实现功能::用户提交一个请求,服务端处理器在接收到这个请求后,给出一条欢迎信息, 在响应页面中显示该信息。

  1. 新建Maven项目
    test.png
  2. pom文件加入所需依赖
<!--spring-webmvc依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.0.4.RELEASE</version>
    </dependency>

    <!--servlet依赖 (servlet的jar)-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
  1. 创建JSP文件
  • index.jsp用于提交请求
<body>
    <h1><a href="some.do">点击发送(some.do)请求</a></h1><br>
    <h1><a href="other.do">点击发送(other.do)请求</a></h1>
</body>
  • show.jsp用于接收some.do请求结果
<body>
    <h1>/WEB-INF/view/show.jsp从request作用域中获取数据</h1><br>
    <h1>msg数据:${msg}</h1><br>
    <h1>fun数据:${fun}</h1><br>
</body>
  • other.jsp用于接收other.do请求结果
<body>
    <h1>/WEB-INF/view/other.jsp从request作用域中获取数据</h1><br>
    <h1>msg数据:${msg}</h1><br>
    <h1>fun数据:${fun}</h1><br>
</body>
  1. MyController.java
package cn.krain.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

//@Controller:表示当前类为处理器 
@Controller
public class MyController {
    /*
    *   处理用户请求,springmvc中使用方法进行处理
    *   方法时自定义的,可以有多种返回值和多个参数
    *
    *   @RequestMapping:请求映射,作用是把一个请求地址和一个方法绑定,使得一个方法处理一个请求
    *
    *       属性:1、value是一个String,表示请求的url地址,value的值必须唯一,不能重复,推荐地址“/”
    *
    *       位置:在方法之上
    *   说明:使用@RequestMapping修饰的方法叫做处理器或控制器方法
    *       该方法可以处理请求,类似servlet中的doGet或doPost方法
    *
    *   返回值:ModelAndView 表示本次请求放回的处理结果
    *       Model:数据、请求处理完成后显示给用户的数据
    *       View:视图,例如JSP
    * */
    @RequestMapping(value = "/some.do")
    public ModelAndView doSome(){
        ModelAndView mv = new ModelAndView();
        //添加数据到request域中
        //等同于:request.setAttribute("msg","欢迎使用SpringMVC")
        mv.addObject("msg","欢迎使用SpringMVC");
        mv.addObject("fun","指定的是doSome方法");
        //指定视图的完整路径
        //等同于Servlet中的转发操作
        //mv.setViewName("/WEB-INF/view/show.jsp");

        //在springmvc.xml文件中配置视图解析器,使用逻辑名称(文件名)指定视图
        //框架会使用视图解析器的 前缀 + 逻辑名称 + 后缀 组成文件路径
        mv.setViewName("show");
        return mv;
    }

    @RequestMapping(value = "/other.do")
    public ModelAndView odOther(){
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg","===========欢迎使用SpringMVC===========");
        mv.addObject("fun","指定的是odOther方法");
        mv.setViewName("other");
        return mv;
    }
}
  1. 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">
    <!--
        配置中央调度器:
        声明、注册springmvc的核心对象DispatcherServlet
        在tomcat服务器启动后,创建DispatcherServlet对象实例

        在DispatcherServlet对象创建的过程中,同时会创建springmvc容器对象,
        读取springmvc配置文件,把配置文件中的对象全部创建好,当用户发起请求时直接使用
        
        servlet的初始化方法init(),DispatcherServlet在init()中执行{
            //创建容器对象,读取配置文件
            WebApplicationContext ctx = new ClassPathXmlApplicationContext("springmvc.xml");
            //将容器放到ServletContext中
            getServletContext().setAttribute(key,ctx);
        }
    -->
    <servlet>
        <servlet-name>myweb</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--
            springmc创建对象时,默认读取配置文件的路径是/WEB-INF/<servlet-name>-servlet.xml
            因此需要修改配置文件路径
        -->
        <init-param>
            <!--springmvc配置文件的属性-->
            <param-name>contextConfigLocation</param-name>
            <!--指定自定义文件位置-->
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!--
            tomcat启动后根据load-on-startup参数的值创建对象。
            该标签参数值为大于零的整数,从小到大依次进行对象的创建。
        -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>myweb</servlet-name>
        <!--
            使用框架时,url-pattern可以有两种值
            1、使用自定义扩展名
                语法:*.xxx    xxx是自定义扩展名。常用的有 *.do  *.action  *.mvc等
            2、使用"/"
        -->
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>
  1. SpringMVC.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"
       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">

    <!--声明组件扫描器-->
    <context:component-scan base-package="cn.krain.controller" />

    <!--声明springmvc框架中的视图解析器,帮助开发人员设置视图文件路径-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--前缀:视图文件路径-->
        <property name="prefix" value="/WEB-INF/view/"/>
        <!--后缀:视图文件扩展名-->
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>
  1. 运行结果

发送(some.do)请求:
在这里插入图片描述
发送(other.do)请求:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
[ 2021年,将Spring全家桶的课程进行Review,确保不再有顺序错乱等问题导致学员看不懂内容,进入2022年,将Spring的课程进行整理,整理为案例精讲的系列课程,并开始逐步增加高阶的Spring Security等内容,课件将逐步进行上传,敬请期待! ]本课程是Spring全家桶案例精讲课程的第二部分Spring MVC,Spring案例精讲课程以真实场景、项目实战为导向,循序渐进,深入浅出的讲解Java网络编程,助力您在技术工作中更进一步。 本课程聚焦Java Spring的Web知识点,主要是关于Spring MVC的应用,包含:表单的增删改查、国际化、过滤器、拦截器、日志Log4j2及slf4j的使用、主题更改网站皮肤及样式、文件上传等的案例讲解,并且最后以一个SSM(Spring+Spring MVC+Mybatis)贯穿前后台的案例作为Spring MVC课程的终奖, 从而使大家快速掌握Spring的基础核心知识,快速上手,为面试、工作等做好充足准备。 由于本课程聚焦于案例,即直接上手操作,对于Spring的原理等不会做过多介绍,希望了解原理等内容的需要通过其他视频或者书籍去了解,建议按照该案例课程一步步做下来,之后再去进一步回顾原理,这样能够促进大家对原理有更好的理解。 【通过Spring全家桶,我们保证你能收获到以下几点】 1、掌握Spring全家桶主要部分的开发、实现2、可以使用Spring MVC、Spring Boot、Spring Cloud及Spring Data进行大部分的Spring开发3、初步了解使用微服务、了解使用Spring进行微服务的设计实现4、奠定扎实的Spring技术,具备了一定的独立开发的能力  【实力讲师】 毕业于清华大学软件学院软件工程专业,曾在Accenture、IBM等知名外企任管理及架构职位,近15年的JavaEE经验,近8年的Spring经验,一直致力于架构、设计、开发及管理工作,在电商、零售、制造业等有丰富的项目实施经验 【本课程适用人群】如果你是一定不要错过!  适合于有JavaEE基础的,如:JSP、JSTL、Java基础等的学习者没有基础的学习者跟着课程可以学习,但是需要补充相关基础知识后,才能很好的参与到相关的工作中。 【Spring全家桶课程共包含如下几门】 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

krain.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值