SpringMVC 之 Hello World 入门

1 准备开发环境和运行环境

   依赖 jar 包下载,如下图所示:

  

2 前端控制器的配置

   在我们的web.xml中添加如下配置:

<!-- The front controller of this Spring Web application, responsible for handling all application requests -->
    <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 配置 DispatcherServlet 的一个初始化参数:配置 SpringMVC 配置文件的位置和名称 -->
        <!-- 默认的配置文件格式:/WEB-INF/<servlet-name>-servlet.xml -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Map all requests to the DispatcherServlet for handling -->
    <servlet-mapping>
        <servlet-name>springDispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

  1.load-on-startup

    1)load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其 init() 方法)。

    2)它的值必须是一个整数,表示servlet应该被载入的顺序

    3)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;

    4)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。

    5)正数的值越小,该servlet的优先级越高,应用启动时就越先加载。

    6)当值相同时,容器就会自己选择顺序来加载。

  所以,<load-on-startup>x</load-on-startup>,中 x 的取值1,2,3,4,5代表的是优先级,而非启动延迟时间。

  2.url-pattern表示哪些请求交给 Spring Web MVC 处理, “/” 是用来定义默认servlet映射的。也可以如 “*.html” 表示拦截所有以html为扩展名的请求。

     自此请求已交给Spring Web MVC框架处理,因此我们需要配置Spring的配置文件,

     默认DispatcherServlet会加载WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件。

3 在Spring配置文件中配置ViewResolver

<!-- 配置自定义扫描包 -->
     <context:component-scan base-package="com.cqvie" />
     
     <!-- 配置视图解析器:如何把 handler 方法返回值解析为实际的物理视图 -->
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
         <property name="prefix" value="/WEB-INF/views/"></property>
         <property name="suffix" value=".jsp"></property>
     </bean>

    InternalResourceViewResolver:用于支持Servlet、JSP视图解析;

    prefix 和 suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传进来的逻辑视图名为hello,则该该jsp视图页面应该存放在“WEB-INF/jsp/hello.jsp”;

4 开发处理器/页面控制器

package com.cqvie.handler;

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

@Controller
public class HelloWorld {

    /**
     * 1.使用 @RequestMapping 注解来映射请求的 URL
     * 2.返回值会通过视图解析器解析为实际的物理视图,对于 InternalResourceViewResolver 视图解析器,会做如下的解析:
     *         通过 prefix + returnVal + suffix 这样的方式得到实际的物理视图,然后做转发操作
     *     
     * @return
     */
    @RequestMapping("/helloworld")
    public String sayHello() {
        System.out.println("Hello World!");
        return "success";
    }
    
}
org.springframework.stereotype.Controller:页面控制器/处理器必须实现Controller接口;

5 开发视图页面

  在 /WEB-INF/views/ 目录下新建 jsp 页面,命名为 success.jsp;

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h3>Hello World!</h3>
</body>
</html>

6 启动服务器运行测试

  通过请求:http://localhost:8080/springmvc/helloworld,如果页面输出“Hello World! ”就表明我们成功了!

原文地址:https://www.cnblogs.com/yjq520/p/6729764.html