2021-10-08

Spring Mvc

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。 – 百度百科

spring mvc是一个轻量级,基于请求响应的mvc框架。

1、spring mvc优势

  • 与Spring无缝衔接 (spring ioc,aop)
  • 约定优于配置
  • 简单的 junit 测试
  • 拦截器
  • 本地化,国际化
  • 简化开发等、

2、Spring mvc了解简单结构

Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。(图片来自)
在这里插入图片描述

3、Dispatcher Servlet(Spring控制器)

控制器是唯一的你需要在Java web部署描述文件(即web.xml文件)中配置的Servlet。

Spring提供的前端控制器,所有的请求都有经过它来统一分发。分发前需要通过HandlerMapping Controller映射寻找处理器。

4、hello world

编写第一个使用spring mvc框架web程序

  1. 创建目录、文件
    在这里插入图片描述

    • indexController.java - 此类作为控制器实现Controller接口,处理web请求
    • springmvc-servlet.xml - springmvc配置文件
    • Index.jsp - 渲染文件
  2. 导入maven依赖

    <!--        spring mvc依赖-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>5.2.8.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>5.2.8.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>5.2.8.RELEASE</version>
            </dependency>
    <!--        后续RandomStringUtils类使用需要的jar-->
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
    
    <!--        Tomcat jar包-->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>2.5</version>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>2.0</version>
                <scope>provided</scope>
            </dependency>
    
  3. 编写第一步创建的文件内容

    web.xml 配置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">
        <!--配置Spring控制器-->
        <servlet>
            <servlet-name>springmvc</servlet-name>
            <servlet-class>
                org.springframework.web.servlet.DispatcherServlet
            </servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    </web-app>
    

    IndexController.java

    package cn.study;
    
    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 IndexController implements Controller {
        public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
            // 传入渲染视图
            ModelAndView modelAndView = new ModelAndView("index.jsp");
            // 存储数据
            modelAndView.addObject("message","hello world!");
            // 返回模型
            return modelAndView;
        }
    }
    
    

    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-3.0.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context-3.0.xsd
         http://www.springframework.org/schema/mvc
         http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
    
        <!--    创建HandlerMapping文件indexController类的Controller映射-->
        <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <props>
                    <!--    表示访问路径/index会交给id=indexController的bean处理-->
                    <prop key="/index">indexController</prop>
                </props>
            </property>
        </bean>
        <!--    配置IndexController类bean-->
        <bean id="indexController" class="cn.study.IndexController"></bean>
    
    </beans>
    

    index.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" isELIgnored="false"%>
     
    <h1>${message}</h1>
    
    1. 生成lib目录 project stucture-> Artifacts-> available Elements 右击->put inoutput root

    2. 配置tomcat 访问 项目下index 例如我的:http://localhost:8080/spring_mvc/index

    在这里插入图片描述

5、使用注解实现Springmvc框架

​ 在原项目上修改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-3.0.xsd
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context-3.0.xsd
     http://www.springframework.org/schema/mvc
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <!-- 创建视图解析器 规定显示的视图在web根目录下的后缀为jsp的文件 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--        <property name="prefix" value="/WEB-INF/page/" />    代表规定显示的视图在WEB-INF/page目录下 -->
        <property name="prefix" value="" />
        <property name="suffix" value=".jsp" />
    </bean>
    <!--扫描cn.study包下有@Controller注解的类-->
    <context:component-scan base-package="cn.study" />
</beans>

IndexController.java

package cn.study;

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

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Controller
public class IndexController {

    @RequestMapping("/index") // 渲染地址 web根目录下文件
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        // 传入渲染视图
        ModelAndView modelAndView = new ModelAndView("index");
        // 存储数据
        modelAndView.addObject("message","hello world!");
        // 返回模型
        return modelAndView;
    }
}

访问: http://localhost:8080/spring_mvc/index

效果在这里插入图片描述

今天先到这吧 写的不好请谅解

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值