• SpringMVC基础入门,创建一个HelloWorld程序


    新建maven工程,添加maven依赖

    
    <properties>
            <spring.version>4.1.3.RELEASE</spring.version>
        </properties>
    
        <dependencies>
            <!-- 添加servlet-api -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.0.1</version>
                <scope>provided</scope>
            </dependency>
            <!-- 添加jsp-api -->
            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>2.1</version>
                <scope>provided</scope>
            </dependency>
    
            <!-- 配置SpringMvc的依赖 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring.version}</version>
            </dependency>
        </dependencies>
    

    在Web.xml配置文件中关于SpringMVC的配置

    通过阅读springMVC的文档可知在web.xml文件中有,如下配置

    <web-app>
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/root-context.xml</param-value>
        </context-param>
        <servlet>
            <servlet-name>dispatcher</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value></param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>dispatcher</servlet-name>
            <url-pattern>/*</url-pattern>
        </servlet-mapping>
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    </web-app>

    根据自己的理解以及基于安全的原则,我们优化成如下结构

    <web-app>
        <servlet>
             <servlet-name>dispatcherServlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>/WEB-INF/spring-mvc.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        <servlet-mapping>
            <servlet-name>dispatcher</servlet-name>
            <url-pattern>/*</url-pattern>
        </servlet-mapping>
    <!--
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        -->
    </web-app>

    当然Spring官方还为我们提供了另一种初始化SpringMVC的方式

    • 就是新建一个类实现WebApplicationInitializer接口,以实现将DispatcherServlet动态的注册到web容器中,跟在配置文件中配置是一个道理
    public class MyWebApplicationInitializer implements WebApplicationInitializer {
    
        @Override
        public void onStartup(ServletContext container) {
            ServletRegistration.Dynamic registration = container.addServlet("dispatcher", new DispatcherServlet());
            registration.setLoadOnStartup(1);
            registration.addMapping("/example/*");
        }
    
    }
    

    在WEB-INF目录下添加spring-mvc.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:p="http://www.springframework.org/schema/p"
        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="使用了Controller注解的类所在的包"/>
    
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
                id="internalResourceViewResolver">
            <!-- 前缀 -->
            <property name="prefix" value="/WEB-INF/views/" />
            <!-- 后缀 -->
            <property name="suffix" value=".jsp" />
        </bean>
    
    </beans>
    
    

    编写代码

    编写Controller代码

    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    @RequestMapping(value = "/hello")
    public class HelloController {
    
        @RequestMapping(value = "/helloWorld")
        public String hello() {
            System.out.println("----------------->/helloWorld");
            return "hello";
        }
    
    }
    

    编写hello.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,first Spring Mvc</h3>
    </body>
    </html>
    

    启动服务器,输入http://localhost:8080/项目名/hello/helloWorld

    出现如下效果

    image

  • 相关阅读:
    5G应用前景广泛 不止是下电影更快,还能做这些事……
    新思科技Chekib:AI芯片架构创新面临四大挑战
    融通人工智能指数(LOF)净值下跌1.08% 请保持关注
    ThinkPHP学习 volist标签高级应用之多重嵌套循环、隔行变色(转)
    (document).height()、$(document).scrollTop()
    jquery获取元素到屏幕底的可视距离
    jquery获取元素到页面顶部距离
    CSS实现背景透明而背景上的文字不透明完美解决
    怎么阻止事件的冒泡过程?
    CSS从大图中抠取小图完整教程(background-position应用) (转)
  • 原文地址:https://www.cnblogs.com/haifeiWu/p/9079574.html
Copyright © 2020-2023  润新知