SpringMVC入门案例

概念

SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架, 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。

Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring的 Spring MVC 框架或集成其他 MVC 开发框架,如 Struts1(现在一般不用), Struts2 等。

SpringMVC 已经成为目前最主流的 MVC 框架之一, 从 Spring3.0 的发布, 就已全面超越 Struts2,成为最优秀的 MVC 框架。==它通过一套注解==,让一个普通的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful 编程风格的请求。

  1. servlet代码是属于侵入式的代码, 什么是侵入式的代码? 因为一个类如果需要变成一个Servlet类,那么必须要实现Servlet接口或者继承HttpServlet类。

  2. springmvc的控制器是属于一个非侵入式的代码, springmvc让一个普通的java类变成控制器是不需要要求该类去实现或者继承某一个类或者接口的。

 

案例

pom.xml(Maven)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>javajdey46</groupId>
    <artifactId>javajdey46</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
    </dependencies>

</project>

 

配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">

    <!--
		DispatcherServlet对象什么创建 ? 用户第一次访问的时候会创建,一旦创建DispatchServlet就会加载springmvc.xml的文件。
		存在的问题: 第一个用户访问的效率低, 所以第一个用户的体验是不好的。

	    解决方案:让tomcat服务器一旦启动的时候马上创建DispatchServlet对象, 如何才能人tomcat服务器在启动的时候
	    马上创建DispatchServlet,让所有的用户体验都好?

	-->

    <!--1.配置springmvc的前端空控制器(核心控制器)-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--2.使用核心控制器加载springmvc的核心配置文件-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:_01SpringMVC入门.xml</param-value>
        </init-param>
        <!--让tomcat服务器在启动的时候马上创建DispatchServlet对象-->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

 

配置springMVC.xml(小编名为: _01SpringMVC入门.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.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">


    <!--1. 配置一个视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--前缀名:-->
        <property name="prefix" value="/pages/"/>
        <!--后缀名-->
        <property name="suffix" value=".jsp" />
    </bean>

    <!--2.开启注解扫描-->
    <context:component-scan base-package="dt2008._01SpringMVC入门" />

    <!--3.开启注解驱动,用于启动springmvc三大组件-->
    <mvc:annotation-driven />

</beans>

 

编写控制器(HelloController)

package dt2008._01SpringMVC入门.controller;

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

@Controller
@RequestMapping("/hello")
public class HelloController {

    @RequestMapping("/hello")
    public String sayHello1(){
        System.out.println("控制器执行了");
        //这是一个页面的名称
        return "success";
    }

}

 

访问结果

 

希望这篇文章对您有帮助

 

 

 

本站资源除特别声明外,转载文章请声明文章出处
东泰博客 » SpringMVC入门案例

发表评论