zoukankan      html  css  js  c++  java
  • 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! ”就表明我们成功了!

  • 相关阅读:
    最近工作状态异常的原因追寻。
    当“逻辑”与“UE”冲突时
    面对一个“丢失了与用户“签订”的协议的修改”时进行的思考。
    如果公司的需求总是让研发部门有怨言…
    安装sybase12.0,运行时报错异常。
    你看到这份文档,我就想摔鼠标!
    对于研发组长的责任产生了疑惑。
    关于html中空格导致的排版问题
    如何配置你的工作环境。
    今天的笔记:2014年6月3日
  • 原文地址:https://www.cnblogs.com/yjq520/p/6729764.html
Copyright © 2011-2022 走看看