zoukankan      html  css  js  c++  java
  • SpringMVC入门

    • 介绍

      本文主要介绍SpringMVC的入门知识,搭建一个可运行的 SpringMVC Hello Word 程序。使用到的技术有:SpringMVC, Maven, Log4j。之所以采用 Maven 是为了方便我们对项目的 jar 进行管理,我们只需要将项目所需要的 jar 的版本信息配置到 pom.xml 文件中,其他依赖的 jar Maven 会自动帮我们关联构建到项目中来。这里推荐一个我个人比较喜欢的 Maven 库 mvnrepository ,在这上面,我们可以找到大多数 jar 的 Maven 依赖信息。采用的 Log4j 也是目前使用比较广泛的日志记录工具,方便我们打印调试信息。开发环境:Eclipse,Tomcat6,JDK6。项目源代码

    • 项目目录结构

      

    • 项目搭建

      右键->New->Maven Project

      

      把“Create a simple project(skip archetype selection)”选项勾选上,创建一个简单的项目,点击 Next 继续。

      

      在 Group Id 和 Artifact Id 的输入框输入对应的内容,点击 Finish 完成 Maven 项目的创建。

      

      初步创建好的项目结构如下图所示:

      

      选择项目,右键选择 Properties 选项,进入项目属性设置页面。

      

      在项目属性窗口,选择 Resource 选项,设置项目编码,默认编码为GBK,设置为UTF-8,点击 Apply 应用到项目上,此步骤非常重要,采用UTF-8的编码,可以避免中文乱码带来的一系列问题。

      

      在项目属性窗口,选择 Java Build Path 选项,并切换到 Libraries 选项卡,检查项目使用的 JRE,如果不是 JRE6 ,可以先 Remove 旧的 JRE, 再把 JRE6 添加进来。

      

      

      

      

      

      在项目属性窗口,选择 Java Compiler 选项,把项目的编译级别调整为1.6。

      

      在项目属性窗口,选择 Project Facets 选项,点击 “Convert to faceted form...”,对项目进行进一步的配置,具体配置项的值,如下图所示:

      

      

      项目右键-> Build Path -> Add Libraries...

      

      选择 Server Runtime , 添加 Tomcat 依赖库。

      

      

      到目前位置,一个基本的 Maven 项目已经搭建好了,接下来我们需要把项目所需要的 jar 引进来。项目所需要的 jar 如下图所示:

      

      pom.xml 配置文件的详细信息如下(配置好 pom 文件后,可以更新项目的Maven,即可把所依赖的jar引进项目中):

    复制代码
    <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>springmvc_helloword</groupId>
        <artifactId>springmvc_helloword</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>4.0.0.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>4.0.0.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>4.0.0.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>4.0.0.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>4.0.0.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
                <version>4.0.0.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>4.0.0.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
        </dependencies>
    </project>
    复制代码

      在项目属性窗口,选择 Deployment Assembly 选项,点击右边的 Add 按钮,把 Maven 依赖 jar 添加进来,否则 Tomcat 启动时,不会把 Maven 依赖的 jar 编译到 lib 目录下,导致项目无法正常启动。

      

      

      

      

      配置 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"
        id="WebApp_ID" version="2.5">
        <display-name>springmvc_helloword</display-name>
        <welcome-file-list>
            <welcome-file>index.html</welcome-file>
            <welcome-file>index.htm</welcome-file>
            <welcome-file>index.jsp</welcome-file>
            <welcome-file>default.html</welcome-file>
            <welcome-file>default.htm</welcome-file>
            <welcome-file>default.jsp</welcome-file>
        </welcome-file-list>
    
        <!-- 指定日志配置文件 -->
        <context-param>
            <param-name>log4jConfigLocation</param-name>
            <param-value>classpath:log4j.properties</param-value>
        </context-param>
    
        <!-- 配置日志Spring监听时间间隔, 单位为毫秒 -->
        <context-param>
            <param-name>log4jRefreshInterval</param-name>
            <param-value>60000</param-value>
        </context-param>
    
        <!-- 配置 Log4j 日志监听 -->
        <listener>
            <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
        </listener>
    
        <!-- 配置 DispatcherServlet -->
        <servlet>
            <servlet-name>springDispatcherServlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!-- 配置 DispatcherServlet 初始化参数 -->
            <init-param>
                <!-- 配置 SpringMVC 配置文件的位置和名称 -->
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springmvc.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <!-- 配置 DispatcherServlet 需要处理的 URL -->
        <servlet-mapping>
            <servlet-name>springDispatcherServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    </web-app>
    复制代码

      配置 SpringMVC 配置文件 springmvc.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 http://www.springframework.org/schema/context/spring-context-4.0.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
    
        <!-- 配置自定义扫描的包 -->
        <context:component-scan base-package="rex.springmvc"></context:component-scan>
    
        <!--
            配置视图解析器,把 Handler 的返回值解析为实际的物理视图。
            InternalResourceViewResolver 通过  prefix + 返回值 + suffix 的方式得到实际的物理视图,
            并将处理结果转发给实际物理视图。
        -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/pages/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
    </beans>
    复制代码

      配置 log4j.properties

    复制代码
    ### 设置###
    log4j.rootLogger = debug,stdout,D,E
    
    ### 输出信息到控制抬 ###
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target = System.out
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
    
    ### 输出DEBUG 级别以上的日志到=D://work/logs/log.log ###
    log4j.appender.D = org.apache.log4j.FileAppender
    log4j.appender.D.File = D://work/logs/log.log
    log4j.appender.D.Append = true
    log4j.appender.D.Threshold = DEBUG
    log4j.appender.D.layout = org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    
    ### 输出ERROR 级别以上的日志到=D://work/logs/error.log  ###
    log4j.appender.E = org.apache.log4j.FileAppender
    log4j.appender.E.File =D://work/logs/error.log
    log4j.appender.E.Append = true
    log4j.appender.E.Threshold = ERROR
    log4j.appender.E.layout = org.apache.log4j.PatternLayout
    log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
    复制代码

      创建一个简单的 handler 

    复制代码
    package rex.springmvc.handlers;
    
    import org.apache.log4j.Logger;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class HelloWordHandler {
        private static final Logger logger = Logger.getLogger(HelloWordHandler.class);
        private static final String SUCCESS = "success";
    
        /**
         * 使用 RequestMapping 注解来映射请求
         * @return
         */
        @RequestMapping(value="/sayHello")
        public String sayHello(){
            logger.debug("Running in sayHello");
            return SUCCESS;
        }
    
    }
    复制代码

      创建 index.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>Hello SpringMVC</title>
    </head>
    <body>
        <a href="sayHello">Hello Word</a>
    </body>
    </html>
    复制代码

      创建 success.jsp 页面,用于接收 handler 的处理结果,即物理视图。

    复制代码
    <%@ 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>Hello Word Success Page</title>
    </head>
    <body>
        <h1>Hello Word Success Page</h1>
    </body>
    </html>
    复制代码

      将项目部署到 Tomcat 并启动 Tomcat,然后在浏览器输入:http://localhost:8080/springmvc_helloword,项目能够正常访问,handler 也能正常触发,到此一个简单的 SpringMVC 的 Hello Word 就写好了。

       

      

    出处,知名博主:https://www.cnblogs.com/rexfang/p/6582469.html

  • 相关阅读:
    11111 Generalized Matrioshkas
    Uva 442 Matrix Chain Multiplication
    Uva 10815 Andy's First Dictionary
    Uva 537 Artificial Intelligence?
    Uva 340 MasterMind Hints
    SCAU 9508 诸葛给我牌(水泥题)
    Uva 10420 List of Conquests(排序水题)
    Uva 409 Excuses, Excuses!
    10/26
    11/2
  • 原文地址:https://www.cnblogs.com/xianfengzhike/p/9349028.html
Copyright © 2011-2022 走看看