• SSM框架的搭建


    pom 的依赖
    <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/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>Cheng</groupId>
      <artifactId>helloworld</artifactId>
      <packaging>war</packaging>
      <version>0.0.1-SNAPSHOT</version>
      <name>helloworld Maven Webapp</name>
      <url>http://maven.apache.org</url>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
       
        <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.11.1</version>
      </dependency>
      <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.12</version>
       <scope>test</scope>
      </dependency>
      <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>1.7.12</version>
      </dependency>
      <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-core</artifactId>
       <version>1.1.1</version>
      </dependency>
      <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-classic</artifactId>
       <version>1.1.1</version>
       <scope>test</scope>
      </dependency>
      <!-- 数据库相关依赖 -->
      <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>8.0.11</version>
      </dependency>
      <dependency>
       <groupId>c3p0</groupId>
       <artifactId>c3p0</artifactId>
       <version>0.9.1.2</version>
      </dependency>
      <!-- mybatis相关依赖 -->
      <dependency>
       <groupId>org.mybatis</groupId>
       <artifactId>mybatis</artifactId>
       <version>3.3.0</version>
      </dependency>
      <dependency>
       <groupId>org.mybatis</groupId>
       <artifactId>mybatis-spring</artifactId>
       <version>1.2.3</version>
      </dependency>
      <!-- web相关依赖 -->
      <dependency>
       <groupId>taglibs</groupId>
       <artifactId>standard</artifactId>
       <version>1.1.2</version>
      </dependency>
      <dependency>
       <groupId>jstl</groupId>
       <artifactId>jstl</artifactId>
       <version>1.2</version>
      </dependency>
      <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-databind</artifactId>
       <version>2.5.4</version>
      </dependency>
      <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>javax.servlet-api</artifactId>
       <version>3.0.1</version>
       <scope>compile</scope>
      </dependency>
      <!-- spring相关依赖 -->
      <!-- 1)spring核心依赖 -->
      <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-core</artifactId>
       <version>4.3.18.RELEASE</version>
      </dependency>
      <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-beans</artifactId>
       <version>4.3.18.RELEASE</version>
      </dependency>
      <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-context</artifactId>
       <version>4.3.18.RELEASE</version>
      </dependency>
      <!-- 2)springDAO层依赖 -->
      <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-jdbc</artifactId>
       <version>4.3.18.RELEASE</version>
      </dependency>
      <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-tx</artifactId>
       <version>4.3.18.RELEASE</version>
      </dependency>
      <!-- 3)spring web相关依赖 -->
      <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-web</artifactId>
       <version>4.3.18.RELEASE</version>
      </dependency>
      <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-webmvc</artifactId>
       <version>4.3.18.RELEASE</version>
      </dependency>
      <!-- 4)spring test相关依赖 -->
      <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-test</artifactId>
       <version>4.3.18.RELEASE</version>
       <scope>test</scope>
      </dependency>
      
      <dependency>
         <groupId>commons-codec</groupId>
         <artifactId>commons-codec</artifactId>
         <version>1.11</version>
          </dependency>
      
      
      <!-- https://mvnrepository.com/artifact/org.json/json -->
            <dependency>
                <groupId>org.json</groupId>
                <artifactId>json</artifactId>
                <version>20160810</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.7</version>
            </dependency>
           
             <dependency>
                <groupId>net.sf.json-lib</groupId>
                <artifactId>json-lib</artifactId>
                <version>2.4</version>
                <classifier>jdk15</classifier>
            </dependency>
      </dependencies>
      <build>
        <finalName>helloworld</finalName>
        <plugins>
       <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.2</version>
        <configuration>
         <source>1.8</source>
         <target>1.8</target>
        </configuration>
       </plugin>
       <!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-maven-plugin -->
       <plugin>
       
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <version>7.0.0.pre5</version>
        
        
        <configuration>
         <webDefaultXml>src/test/resources/webdefault.xml</webDefaultXml>
        </configuration>
       </plugin>
      </plugins>
      </build>
    </project>
     
     
     
     
     
     
     
     
    webdefault.xml
    替补的资源
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!-- ===================================================================== -->
    <!-- This file contains the default descriptor for web applications.       -->
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <!-- The intent of this descriptor is to include jetty specific or common  -->
    <!-- configuration for all webapps.   If a context has a webdefault.xml    -->
    <!-- descriptor, it is applied before the contexts own web.xml file        -->
    <!--                                                                       -->
    <!-- A context may be assigned a default descriptor by:                    -->
    <!--  + Calling WebApplicationContext.setDefaultsDescriptor                -->
    <!--  + Passed an arg to addWebApplications                                -->
    <!--                                                                       -->
    <!-- This file is used both as the resource within the jetty.jar (which is -->
    <!-- used as the default if no explicit defaults descriptor is set) and it -->
    <!-- is copied to the etc directory of the Jetty distro and explicitly     -->
    <!-- by the jetty.xml file.                                                -->
    <!--                                                                       -->
    <!-- ===================================================================== -->
    <web-app
       xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
       metadata-complete="true"
       version="2.5">
      <description>
        Default web.xml file. 
        This file is applied to a Web application before it's own WEB_INF/web.xml file
      </description>

      <!-- ==================================================================== -->
      <!-- Context params to control Session Cookies                            -->
      <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
      <!-- UNCOMMENT TO ACTIVATE
      <context-param>
        <param-name>org.mortbay.jetty.servlet.SessionDomain</param-name>
        <param-value>127.0.0.1</param-value>
      </context-param>
      <context-param>
        <param-name>org.mortbay.jetty.servlet.SessionPath</param-name>
        <param-value>/</param-value>
      </context-param>
      <context-param>
        <param-name>org.mortbay.jetty.servlet.MaxAge</param-name>
        <param-value>-1</param-value>
      </context-param>
      -->
      <context-param>
        <param-name>org.mortbay.jetty.webapp.NoTLDJarPattern</param-name>
        <param-value>start.jar|ant-.*.jar|dojo-.*.jar|jetty-.*.jar|jsp-api-.*.jar|junit-.*.jar|servlet-api-.*.jar|dnsns.jar|rt.jar|jsse.jar|tools.jar|sunpkcs11.jar|sunjce_provider.jar|xerces.*.jar</param-value>
      </context-param>
               

      <!-- ==================================================================== -->
      <!-- The default servlet.                                                 -->
      <!-- This servlet, normally mapped to /, provides the handling for static -->
      <!-- content, OPTIONS and TRACE methods for the context.                  -->
      <!-- The following initParameters are supported:                          -->
      <!--                                                                      -->
      <!--   acceptRanges     If true, range requests and responses are         -->
      <!--                    supported                                         -->
      <!--                                                                      -->
      <!--   dirAllowed       If true, directory listings are returned if no    -->
      <!--                    welcome file is found. Else 403 Forbidden.        -->
      <!--                                                                      -->
      <!--   welcomeServlets  If true, attempt to dispatch to welcome files     -->
      <!--                    that are servlets, if no matching static          -->
      <!--                    resources can be found.                           -->
      <!--                                                                      -->
      <!--   redirectWelcome  If true, redirect welcome file requests           -->
      <!--                    else use request dispatcher forwards              -->
      <!--                                                                      -->
      <!--   gzip             If set to true, then static content will be served-->
      <!--                    as gzip content encoded if a matching resource is -->
      <!--                    found ending with ".gz"                           -->
      <!--                                                                      -->
      <!--   resoureBase      Can be set to replace the context resource base   -->
      <!--                                                                      -->
      <!--   relativeResourceBase                                               -->
      <!--                    Set with a pathname relative to the base of the   -->
      <!--                    servlet context root. Useful for only serving     -->
      <!--                    static content from only specific subdirectories. -->
      <!--                                                                      -->
      <!--   useFileMappedBuffer                                                -->
      <!--                    If set to true (the default), a  memory mapped    -->
      <!--                    file buffer will be used to serve static content  -->
      <!--                    when using an NIO connector. Setting this value   -->
      <!--                    to false means that a direct buffer will be used  -->
      <!--                    instead. If you are having trouble with Windows   -->
      <!--                    file locking, set this to false.                  -->
      <!--                                                                      -->
      <!--  cacheControl      If set, all static content will have this value   -->
      <!--                    set as the cache-control header.                  -->
      <!--                                                                      -->
      <!--  maxCacheSize      Maximum size of the static resource cache         -->
      <!--                                                                      -->
      <!--  maxCachedFileSize Maximum size of any single file in the cache      -->
      <!--                                                                      -->
      <!--  maxCachedFiles    Maximum number of files in the cache              -->
      <!--                                                                      -->
      <!--  cacheType         "nio", "bio" or "both" to determine the type(s)   -->
      <!--                    of resource cache. A bio cached buffer may be used-->
      <!--                    by nio but is not as efficient as a nio buffer.   -->
      <!--                    An nio cached buffer may not be used by bio.      -->
      <!--                                                                      -->
      <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
      <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.mortbay.jetty.servlet.DefaultServlet</servlet-class>
        <init-param>
          <param-name>acceptRanges</param-name>
          <param-value>true</param-value>
        </init-param>
        <init-param>
          <param-name>dirAllowed</param-name>
          <param-value>true</param-value>
        </init-param>
        <init-param>
          <param-name>welcomeServlets</param-name>
          <param-value>false</param-value>
        </init-param>
        <init-param>
          <param-name>redirectWelcome</param-name>
          <param-value>false</param-value>
        </init-param>
        <init-param>
          <param-name>maxCacheSize</param-name>
          <param-value>256000000</param-value>
        </init-param>
        <init-param>
          <param-name>maxCachedFileSize</param-name>
          <param-value>10000000</param-value>
        </init-param>
        <init-param>
          <param-name>maxCachedFiles</param-name>
          <param-value>1000</param-value>
        </init-param>
        <init-param>
          <param-name>cacheType</param-name>
          <param-value>both</param-value>
        </init-param>
        <init-param>
          <param-name>gzip</param-name>
          <param-value>true</param-value>
        </init-param>
        <init-param>
          <param-name>useFileMappedBuffer</param-name>
          <param-value>false</param-value>
        </init-param> 
        <!--
        <init-param>
          <param-name>cacheControl</param-name>
          <param-value>max-age=3600,public</param-value>
        </init-param>
        -->
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
     
      <!-- ==================================================================== -->
      <!-- JSP Servlet                                                          -->
      <!-- This is the jasper JSP servlet from the jakarta project              -->
      <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
      <!-- The JSP page compiler and execution servlet, which is the mechanism  -->
      <!-- used by Glassfish to support JSP pages.  Traditionally, this servlet -->
      <!-- is mapped to URL patterh "*.jsp".  This servlet supports the         -->
      <!-- following initialization parameters (default values are in square    -->
      <!-- brackets):                                                           -->
      <!--                                                                      -->
      <!--   checkInterval       If development is false and reloading is true, -->
      <!--                       background compiles are enabled. checkInterval -->
      <!--                       is the time in seconds between checks to see   -->
      <!--                       if a JSP page needs to be recompiled. [300]    -->
      <!--                                                                      -->
      <!--   compiler            Which compiler Ant should use to compile JSP   -->
      <!--                       pages.  See the Ant documenation for more      -->
      <!--                       information. [javac]                           -->
      <!--                                                                      -->
      <!--   classdebuginfo      Should the class file be compiled with         -->
      <!--                       debugging information?  [true]                 -->
      <!--                                                                      -->
      <!--   classpath           What class path should I use while compiling   -->
      <!--                       generated servlets?  [Created dynamically      -->
      <!--                       based on the current web application]          -->
      <!--                       Set to ? to make the container explicitly set  -->
      <!--                       this parameter.                                -->
      <!--                                                                      -->
      <!--   development         Is Jasper used in development mode (will check -->
      <!--                       for JSP modification on every access)?  [true] -->
      <!--                                                                      -->
      <!--   enablePooling       Determines whether tag handler pooling is      -->
      <!--                       enabled  [true]                                -->
      <!--                                                                      -->
      <!--   fork                Tell Ant to fork compiles of JSP pages so that -->
      <!--                       a separate JVM is used for JSP page compiles   -->
      <!--                       from the one Tomcat is running in. [true]      -->
      <!--                                                                      -->
      <!--   ieClassId           The class-id value to be sent to Internet      -->
      <!--                       Explorer when using <jsp:plugin> tags.         -->
      <!--                       [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93]   -->
      <!--                                                                      -->
      <!--   javaEncoding        Java file encoding to use for generating java  -->
      <!--                       source files. [UTF-8]                          -->
      <!--                                                                      -->
      <!--   keepgenerated       Should we keep the generated Java source code  -->
      <!--                       for each page instead of deleting it? [true]   -->
      <!--                                                                      -->
      <!--   logVerbosityLevel   The level of detailed messages to be produced  -->
      <!--                       by this servlet.  Increasing levels cause the  -->
      <!--                       generation of more messages.  Valid values are -->
      <!--                       FATAL, ERROR, WARNING, INFORMATION, and DEBUG. -->
      <!--                       [WARNING]                                      -->
      <!--                                                                      -->
      <!--   mappedfile          Should we generate static content with one     -->
      <!--                       print statement per input line, to ease        -->
      <!--                       debugging?  [false]                            -->
      <!--                                                                      -->
      <!--                                                                      -->
      <!--   reloading           Should Jasper check for modified JSPs?  [true] -->
      <!--                                                                      -->
      <!--   suppressSmap        Should the generation of SMAP info for JSR45   -->
      <!--                       debugging be suppressed?  [false]              -->
      <!--                                                                      -->
      <!--   dumpSmap            Should the SMAP info for JSR45 debugging be    -->
      <!--                       dumped to a file? [false]                      -->
      <!--                       False if suppressSmap is true                  -->
      <!--                                                                      -->
      <!--   scratchdir          What scratch directory should we use when      -->
      <!--                       compiling JSP pages?  [default work directory  -->
      <!--                       for the current web application]               -->
      <!--                                                                      -->
      <!--   tagpoolMaxSize      The maximum tag handler pool size  [5]         -->
      <!--                                                                      -->
      <!--   xpoweredBy          Determines whether X-Powered-By response       -->
      <!--                       header is added by generated servlet  [false]  -->
      <!--                                                                      -->
      <!-- If you wish to use Jikes to compile JSP pages:                       -->
      <!--   Set the init parameter "compiler" to "jikes".  Define              -->
      <!--   the property "-Dbuild.compiler.emacs=true" when starting Jetty     -->
      <!--   to cause Jikes to emit error messages in a format compatible with  -->
      <!--   Jasper.                                                            -->
      <!--   If you get an error reporting that jikes can't use UTF-8 encoding, -->
      <!--   try setting the init parameter "javaEncoding" to "ISO-8859-1".     -->
      <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
      <servlet id="jsp">
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>logVerbosityLevel</param-name>
            <param-value>DEBUG</param-value>
        </init-param>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <!-- 
        <init-param>
            <param-name>classpath</param-name>
            <param-value>?</param-value>
        </init-param>
        -->
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
        <url-pattern>*.jspf</url-pattern>
        <url-pattern>*.jspx</url-pattern>
        <url-pattern>*.xsp</url-pattern>
        <url-pattern>*.JSP</url-pattern>
        <url-pattern>*.JSPF</url-pattern>
        <url-pattern>*.JSPX</url-pattern>
        <url-pattern>*.XSP</url-pattern>
      </servlet-mapping>
     
      <!-- ==================================================================== -->
      <!-- Dynamic Servlet Invoker.                                             -->
      <!-- This servlet invokes anonymous servlets that have not been defined   -->
      <!-- in the web.xml or by other means. The first element of the pathInfo  -->
      <!-- of a request passed to the envoker is treated as a servlet name for  -->
      <!-- an existing servlet, or as a class name of a new servlet.            -->
      <!-- This servlet is normally mapped to /servlet/*                        -->
      <!-- This servlet support the following initParams:                       -->
      <!--                                                                      -->
      <!--  nonContextServlets       If false, the invoker can only load        -->
      <!--                           servlets from the contexts classloader.    -->
      <!--                           This is false by default and setting this  -->
      <!--                           to true may have security implications.    -->
      <!--                                                                      -->
      <!--  verbose                  If true, log dynamic loads                 -->
      <!--                                                                      -->
      <!--  *                        All other parameters are copied to the     -->
      <!--                           each dynamic servlet as init parameters    -->
      <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
      <!-- Uncomment for dynamic invocation
      <servlet>
        <servlet-name>invoker</servlet-name>
        <servlet-class>org.mortbay.jetty.servlet.Invoker</servlet-class>
        <init-param>
          <param-name>verbose</param-name>
          <param-value>false</param-value>
        </init-param>
        <init-param>
          <param-name>nonContextServlets</param-name>
          <param-value>false</param-value>
        </init-param>
        <init-param>
          <param-name>dynamicParam</param-name>
          <param-value>anyValue</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>
      -->
     
      <!-- ==================================================================== -->
      <session-config>
        <session-timeout>30</session-timeout>
      </session-config>
      <!-- ==================================================================== -->
      <!-- Default MIME mappings                                                -->
      <!-- The default MIME mappings are provided by the mime.properties        -->
      <!-- resource in the org.mortbay.jetty.jar file.  Additional or modified  -->
      <!-- mappings may be specified here                                       -->
      <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
      <!-- UNCOMMENT TO ACTIVATE
      <mime-mapping>
        <extension>mysuffix</extension>
        <mime-type>mymime/type</mime-type>
      </mime-mapping>
      -->
      <!-- ==================================================================== -->
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      <!-- ==================================================================== -->
      <locale-encoding-mapping-list>
        <locale-encoding-mapping><locale>ar</locale><encoding>ISO-8859-6</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>be</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>bg</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>ca</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>cs</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>da</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>de</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>el</locale><encoding>ISO-8859-7</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>en</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>es</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>et</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>fi</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>fr</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>hr</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>hu</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>is</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>it</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>iw</locale><encoding>ISO-8859-8</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>ja</locale><encoding>Shift_JIS</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>ko</locale><encoding>EUC-KR</encoding></locale-encoding-mapping>    
        <locale-encoding-mapping><locale>lt</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>lv</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>mk</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>nl</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>no</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>pl</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>pt</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>ro</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>ru</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>sh</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>sk</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>sl</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>sq</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>sr</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>sv</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>tr</locale><encoding>ISO-8859-9</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>uk</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>zh</locale><encoding>GB2312</encoding></locale-encoding-mapping>
        <locale-encoding-mapping><locale>zh_TW</locale><encoding>Big5</encoding></locale-encoding-mapping>  
      </locale-encoding-mapping-list>
     
      <security-constraint>
        <web-resource-collection>
          <web-resource-name>Disable TRACE</web-resource-name>
          <url-pattern>/</url-pattern>
          <http-method>TRACE</http-method>
        </web-resource-collection>
        <auth-constraint/>
      </security-constraint>
     
    </web-app>
     
     
    jdbc.properties
    #mysql
    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://47.106.96.86:3306/525station?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
    jdbc.username=?
    jdbc.password=?
    #oracle
     
     
    mybatis-config.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
      PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
      "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
     <!-- 配置全局属性 -->
     <settings>
      <!-- 使用jdbc的getGeneratedKeys 获取数据库自增主键 -->
      <setting name="useGeneratedKeys" value="true" />
      <!-- 使用列名替换列名 默认:true select name as title from table -->
      <setting name="useColumnLabel" value="true" />
      <!-- 开启驼峰命名转换:Table(create_time)->Entity(createTime) -->
      <setting name="mapUnderscoreToCamelCase" value="true" />
     </settings>
    </configuration>
     
     
     
     
    关于spring的扫描器
    spring-dao.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"
     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
     http://www.springframework.org/schema/tx
      http://www.springframework.org/schema/tx/spring-tx.xsd
     ">
     <!-- 配置整合mybatis -->
     <!-- 1.配置数据库相关参数 -->
     <context:property-placeholder location="classpath:jdbc.properties" />
     
     <!-- 2.数据库连接池 -->
     <bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
      <!-- 配置连接池属性 -->
      <property name="driverClass" value="${jdbc.driver}"></property>
      <property name="jdbcUrl" value="${jdbc.url}"></property>
      <property name="user" value="${jdbc.username}"></property>
      <property name="password" value="${jdbc.password}"></property>

      <!-- c3p0连接池私有属性 -->
      <property name="maxPoolSize" value="30"></property>
      <property name="minPoolSize" value="10"></property>
      <!-- 关闭后不自动commit -->
      <property name="autoCommitOnClose" value="false"></property>
      <!-- 连接超时时间 -->
      <property name="checkoutTimeout" value="10000"></property>
      <!-- 连接失败重试次数 -->
      <property name="acquireRetryAttempts" value="3"></property>
     </bean>

     <!-- 配置SqlSessionFactory -->
     <bean name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
      <!-- 注入数据库连接池 -->
      <property name="dataSource" ref="dataSource"></property>
      <!-- 配置mybatis全局配置文件mybatis-config.xml -->
      <property name="configLocation" value="classpath:mybatis-config.xml"></property>
      <!-- 扫描entity包使用别名 -->
      <property name="typeAliasesPackage" value="cn.com.iistudio.entity"></property>
      <!-- 扫描sql配置文件:mapper需要的xml文件 -->
      <property name="mapperLocations" value="classpath:cn/com/iistudio/mapper/conf/*.xml"></property>
     </bean>
     <!-- 配置扫描DAO接口的包,动态实现DAO接口,注入spring容易中 -->
     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      <!-- 注入sqlSessionFactory -->
      <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
      <!-- 扫描DAO接口包 -->
      <property name="basePackage" value="cn.com.iistudio.mapper"></property>
     </bean>
     
     
    </beans>
     
     
     
     
    spring-service.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:tx="http://www.springframework.org/schema/tx"
     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
     http://www.springframework.org/schema/tx
      http://www.springframework.org/schema/tx/spring-tx.xsd
     ">
       
        <!-- 扫描entity包下所有使用注解的类型 -->
     <context:component-scan base-package="cn.com.iistudio.entity.**"></context:component-scan>
        
     <!-- 扫描service包下所有使用注解的类型 -->
     <context:component-scan base-package="cn.com.iistudio.service.serviceipml"></context:component-scan>
     <!-- 配置事务管理器 -->
     <bean id="transactionManager"
      class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <property name="dataSource" ref="dataSource"></property>
     </bean>
     <!-- 配置基于注解的声明式事务 -->
     <tx:annotation-driven transaction-manager="transactionManager" />
    </beans>
     
    spring-web.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.xsd
     http://www.springframework.org/schema/tx
     http://www.springframework.org/schema/tx/spring-tx.xsd
     http://www.springframework.org/schema/mvc
     http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
     
        <context:annotation-config/>
     <!-- 配置Spring MVC -->
     <!-- 开启SpringMvc注解模式 -->
     <mvc:annotation-driven></mvc:annotation-driven>
     <!-- 2.静态资源默认servlet配置 (1)加入对静态资源的处理:js,gif,png (2)允许使用"/"做整体映射 -->
     
     <mvc:resources location="/css/" mapping="/css/**" />
     <mvc:resources location="/js/" mapping="/js/**" />
     <mvc:resources location="/images/" mapping="/images/**" />
     <mvc:resources location="/logo/" mapping="/logo/**" />
     <mvc:resources location="/index.jsp" mapping="/index.jsp" />
     <mvc:resources location="/errorPage" mapping="/errorPage/**" />
     <mvc:default-servlet-handler />
     <!-- 3.定义试图解析器 -->
     <bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/jsp/"></property>
      <property name="suffix" value=".jsp"></property>
     </bean>
     <!-- 4.扫描web相关的bean -->
     <context:component-scan base-package="cn.com.iistudio.controller.**"></context:component-scan>

    </beans>
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    控制跳转到首页
    package cn.com.iistudio.controller;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    @Controller
    public class MainController {
     
     
     @RequestMapping("/")
     public String toindex() {
      
      
      return "index";
      
     }
    }
  • 相关阅读:
    Linux 改变文件的所有者
    Opencv -lippicv
    数据结构--二叉搜索树
    Window下cmd查看目录结构
    windows cmake与nmake
    Ubuntu18.04安装caffe python3.6 opencv3.2 CPU
    apt-get install 下载速度慢问题的解决
    使用pip安装速度慢问题的解决
    神经网络可视化
    【VS】代码行无法折叠及ctrl+鼠标左键无法跳转到定义的问题
  • 原文地址:https://www.cnblogs.com/chengxiangboke/p/10456746.html
Copyright © 2020-2023  润新知