• 【Spring】Spring3+Spring3MVCの環境構築(中)


    参考URL:

    https://www.cnblogs.com/lnsylt/p/10258457.html

    ■目録

    ■環境設定

    ①pom.xml

      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <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">
      3 
      4     <modelVersion>4.0.0</modelVersion>
      5     <groupId>cn.com.sy</groupId>
      6     <artifactId>testspringmvc</artifactId>
      7     <packaging>war</packaging>
      8     <version>0.0.1-SNAPSHOT</version>
      9 
     10     <!-- エンコード(UTF8)を指定 -->
     11     <properties>
     12         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     13         <spring.version>3.1.2.RELEASE</spring.version>
     14     </properties>
     15 
     16     <dependencies>
     17 
     18         <!-- SpringMVCのJARを指定 -->
     19         <dependency>
     20             <groupId>org.springframework</groupId>
     21             <artifactId>spring-webmvc</artifactId>
     22             <version>${spring.version}</version>
     23         </dependency>
     24 
     25         <dependency>
     26             <groupId>org.springframework</groupId>
     27             <artifactId>spring-jdbc</artifactId>
     28             <version>${spring.version}</version>
     29         </dependency>
     30 
     31         <dependency>
     32             <groupId>org.springframework</groupId>
     33             <artifactId>spring-context</artifactId>
     34             <version>${spring.version}</version>
     35         </dependency>
     36 
     37         <dependency>
     38             <groupId>org.springframework</groupId>
     39             <artifactId>spring-aop</artifactId>
     40             <version>${spring.version}</version>
     41         </dependency>
     42 
     43         <dependency>
     44             <groupId>org.springframework</groupId>
     45             <artifactId>spring-core</artifactId>
     46             <version>${spring.version}</version>
     47         </dependency>
     48 
     49         <dependency>
     50             <groupId>org.springframework</groupId>
     51             <artifactId>spring-test</artifactId>
     52             <version>${spring.version}</version>
     53         </dependency>
     54 
     55         <!-- WebファイルのJAR -->
     56         <dependency>
     57             <groupId>javax.servlet</groupId>
     58             <artifactId>javax.servlet-api</artifactId>
     59             <version>3.0.1</version>
     60             <scope>provided</scope>
     61         </dependency>
     62         <dependency>
     63             <groupId>javax.servlet</groupId>
     64             <artifactId>jstl</artifactId>
     65             <version>1.1.2</version>
     66             <scope>provided</scope>
     67         </dependency>
     68         <dependency>
     69             <groupId>javax.servlet.jsp</groupId>
     70             <artifactId>javax.servlet.jsp-api</artifactId>
     71             <version>2.3.1</version>
     72             <scope>provided</scope>
     73         </dependency>
     74 
     75         <!-- ApacheのCommonsのJAR -->
     76         <dependency>
     77             <groupId>org.apache.commons</groupId>
     78             <artifactId>commons-lang3</artifactId>
     79             <version>3.3.2</version>
     80         </dependency>
     81         <dependency>
     82             <groupId>commons-io</groupId>
     83             <artifactId>commons-io</artifactId>
     84             <version>2.4</version>
     85         </dependency>
     86         <dependency>
     87             <groupId>org.apache.commons</groupId>
     88             <artifactId>commons-collections4</artifactId>
     89             <version>4.0</version>
     90         </dependency>
     91         <dependency>
     92             <groupId>commons-logging</groupId>
     93             <artifactId>commons-logging</artifactId>
     94             <version>1.1.3</version>
     95         </dependency>
     96         <dependency>
     97             <groupId>commons-codec</groupId>
     98             <artifactId>commons-codec</artifactId>
     99             <version>1.8</version>
    100         </dependency>
    101         <dependency>
    102             <groupId>commons-beanutils</groupId>
    103             <artifactId>commons-beanutils</artifactId>
    104             <version>1.8.3</version>
    105         </dependency>
    106         <dependency>
    107             <groupId>commons-chain</groupId>
    108             <artifactId>commons-chain</artifactId>
    109             <version>1.2</version>
    110         </dependency>
    111         <dependency>
    112             <groupId>commons-fileupload</groupId>
    113             <artifactId>commons-fileupload</artifactId>
    114             <version>1.3.1</version>
    115         </dependency>
    116         <dependency>
    117             <groupId>org.apache.commons</groupId>
    118             <artifactId>commons-math3</artifactId>
    119             <version>3.3</version>
    120         </dependency>
    121         <dependency>
    122             <groupId>org.apache.commons</groupId>
    123             <artifactId>commons-pool2</artifactId>
    124             <version>2.2</version>
    125         </dependency>
    126         <dependency>
    127             <groupId>org.apache.commons</groupId>
    128             <artifactId>commons-digester3</artifactId>
    129             <version>3.2</version>
    130         </dependency>
    131         <dependency>
    132             <groupId>commons-net</groupId>
    133             <artifactId>commons-net</artifactId>
    134             <version>3.3</version>
    135         </dependency>
    136         <dependency>
    137             <groupId>commons-dbutils</groupId>
    138             <artifactId>commons-dbutils</artifactId>
    139             <version>1.5</version>
    140         </dependency>
    141         <dependency>
    142             <groupId>org.apache.commons</groupId>
    143             <artifactId>commons-email</artifactId>
    144             <version>1.3.3</version>
    145         </dependency>
    146         <dependency>
    147             <groupId>commons-dbcp</groupId>
    148             <artifactId>commons-dbcp</artifactId>
    149             <version>1.4</version>
    150         </dependency>
    151 
    152         <!-- ログ出力のJAR -->
    153         <dependency>
    154             <groupId>log4j</groupId>
    155             <artifactId>log4j</artifactId>
    156             <version>1.2.16</version>
    157         </dependency>
    158 
    159         <dependency>
    160             <groupId>org.slf4j</groupId>
    161             <artifactId>slf4j-api</artifactId>
    162             <version>1.7.5</version>
    163         </dependency>
    164 
    165         <!-- DataBase -->
    166         <dependency>
    167             <groupId>com.alibaba</groupId>
    168             <artifactId>druid</artifactId>
    169             <version>1.1.12</version>
    170         </dependency>
    171         
    172         <!-- json jar -->
    173         <!-- <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-all</artifactId> <version>1.8.5</version> </dependency> -->
    174 
    175     </dependencies>
    176 </project>
    pom.xml

    ②web.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
     3                     http://www.springmodules.org/schema/cache/springmodules-cache.xsd
     4                     http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd" 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_3_0.xsd" id="WebApp_ID" version="3.0">
     5 
     6 
     7     <display-name>Archetype Created Web Application</display-name>
     8 
     9     <!--/WEB-INF/applicationContext.xml を導入(BeanのContainer) -->
    10     <context-param>
    11         <param-name>contextConfigLocation</param-name>
    12         <param-value>classpath*:applicationContext.xml</param-value>
    13     </context-param>
    14 
    15     <!-- リスナーの設定 -->
    16     <listener>
    17         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    18     </listener>
    19 
    20     <!-- 文字化けの設定 -->
    21     <filter>
    22         <filter-name>encodingFilter</filter-name>
    23         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    24         <init-param>
    25             <param-name>encoding</param-name>
    26             <param-value>UTF-8</param-value>
    27         </init-param>
    28     </filter>
    29     <filter-mapping>
    30         <filter-name>encodingFilter</filter-name>
    31         <url-pattern>/*</url-pattern>
    32     </filter-mapping>
    33 
    34     <!-- DispatcherServletを指定する -->
    35     <servlet>
    36         <servlet-name>springmvc</servlet-name>
    37         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    38         <init-param>
    39             <param-name>contextConfigLocation</param-name>
    40             <!-- 拡張XMLを指定する「;」で区切り -->
    41             <param-value>classpath*:/springmvc.xml</param-value>
    42         </init-param>
    43         <!-- <load-on-startup>1</load-on-startup> -->
    44     </servlet>
    45 
    46     <servlet-mapping>
    47         <servlet-name>springmvc</servlet-name>
    48         <!-- 請求URLに「*.do」を指定する、「"/"」を指定すると、すべての内容をインターセプトする(intercept) -->
    49         <url-pattern>*.do</url-pattern>
    50     </servlet-mapping>
    51 
    52 </web-app>
    web.xml

    注意:<web-app/>はVer.2.5以上を利用する必要

    ③「applicationContext.xml」はSpringの専用のXMLです。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <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:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
     3     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd 
     4     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd 
     5     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
     6 
     7     <!-- Beanのパス(サブパスを含む)を検索 -->
     8     <context:component-scan base-package="com.springdemo.service" />
     9 
    10     <!-- DB配置ファイル -->
    11     <context:property-placeholder location="classpath:jdbc.properties" />
    12 
    13     <!-- データベースの設定 -->
    14     <bean id="dataSource" 
    15             class="org.apache.commons.dbcp.BasicDataSource" 
    16             destroy-method="close" 
    17             p:driverClassName="${jdbc.driverClassName}" 
    18             p:url="${jdbc.url}" 
    19             p:username="${jdbc.username}" 
    20             p:password="${jdbc.password}" />
    21 
    22     <context:annotation-config />
    23 
    24     <!-- jdbcTemplateを導入 -->
    25     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" p:dataSource-ref="dataSource" />
    26 
    27     <!-- 事務管理設定 -->
    28     <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    29         <property name="dataSource" ref="dataSource" />
    30     </bean>
    31 
    32     <!-- 事務の設定(@Tranctional) -->
    33     <tx:annotation-driven transaction-manager="txManager" />
    34 
    35 </beans>
    applicationContext.xml

    ④「springmvc.xml」はSpringMVCの専用XMLです。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <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" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans 
     3        http://www.springframework.org/schema/beans/spring-beans.xsd 
     4        http://www.springframework.org/schema/context 
     5        http://www.springframework.org/schema/context/spring-context.xsd 
     6        http://www.springframework.org/schema/tx 
     7        http://www.springframework.org/schema/tx/spring-tx.xsd
     8           http://www.springframework.org/schema/mvc
     9        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    10 
    11     <!-- コントローラのパス(サブパスを含む)を検索(@Controller、@Service) -->
    12     <context:component-scan base-package="com.springdemo.*">
    13         <!-- 「@Service」を除外 -->
    14         <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
    15     </context:component-scan>
    16 
    17     <!-- HandlerMapper、HandlerAdapterを設定する(controller to controller) -->
    18     <mvc:annotation-driven />
    19 
    20     <!-- 静的なファイルを導入(方法一) -->
    21     <mvc:default-servlet-handler />
    22 
    23     <!-- 静的なファイルを導入(方法二) -->
    24     <!-- <mvc:resources /> -->
    25 
    26     <!-- JSON対応 開始 ([<mvc:annotation-driven />]と競合)-->
    27     <!-- 
    28     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    29         <property name="messageConverters">
    30             <list>
    31                 <ref bean="mappingJacksonHttpMessageConverter" />
    32                 <ref bean="utf8StringHttpMessageConverter" />
    33             </list>
    34         </property>
    35     </bean>
    36     <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
    37         <property name="supportedMediaTypes">
    38             <list>
    39                 <value>text/plain;charset=UTF-8</value>
    40                 <value>text/html;charset=UTF-8</value>
    41                 <value>application/json;charset=UTF-8</value>
    42             </list>
    43         </property>
    44     </bean>
    45     <bean id="utf8StringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
    46         <property name="supportedMediaTypes">
    47             <list>
    48                 <value>text/plain;charset=UTF-8</value>
    49                 <value>text/html;charset=UTF-8</value>
    50                 <value>application/json;charset=UTF-8</value>
    51             </list>
    52         </property>
    53     </bean>
    54     -->
    55     <!-- JSON対応 終了 -->
    56 
    57     <!-- 応対ファイルの形を設定、Root目録は「”/”」、拡張子は「.jsp」です。」 -->
    58     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    59         <property name="prefix" value="/"></property>
    60         <property name="suffix" value=".jsp"></property>
    61     </bean>
    62 
    63 </beans>
    springmvc.xml

    ⑤log4j.properties

    #---------------------------------------------------------------------------------------
    # Logger
    #---------------------------------------------------------------------------------------
    # Root
    log4j.rootLogger=INFO,STDOUT, ROOT
    
    #---------------------------------------------------------------------------------------
    # Appender
    #---------------------------------------------------------------------------------------
    # for Root
    log4j.appender.ROOT=org.apache.log4j.ConsoleAppender
    log4j.appender.ROOT.Target=System.out
    log4j.appender.ROOT.layout=org.apache.log4j.PatternLayout
    log4j.appender.ROOT.layout.ConversionPattern=%-5p - %m%n
    
    # for SQL
    log4j.appender.STDOUT=org.apache.log4j.RollingFileAppender
    log4j.appender.STDOUT.File=C:/Users/LNSYLT/Tools/pleiades2018/log/STDOUT.log
    log4j.appender.STDOUT.Append=true
    log4j.appender.STDOUT.MaxFileSize=1MB
    log4j.appender.STDOUT.MaxBackupIndex=20
    log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
    log4j.appender.STDOUT.layout.ConversionPattern=%d %-5.12p [%C{2}][%F][%M(%L)] - %m%n
    log4j.properties

    ⑥jdbc.properties

    #SET DB CONNECT
    jdbc.driverClassName=""
    jdbc.url=""
    jdbc.username=""
    jdbc.password=""
    View Code

    ⑦DemoController.java

     1 package com.springdemo.controller;
     2 
     3 import javax.servlet.http.HttpServletRequest;
     4 import javax.servlet.http.HttpServletResponse;
     5 
     6 import org.apache.log4j.Logger;
     7 import org.springframework.stereotype.Controller;
     8 import org.springframework.web.bind.annotation.RequestMapping;
     9 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
    10 
    11 /**
    12  * クラス名(任意) <br/>
    13  * 請求パス(”/demo”)を指定すれば、 配下関数の請求パス("/demo/xxxx.do")、「.do」はXMLにセットする
    14  * 
    15  * @author LNSYLT
    16  */
    17 @Controller
    18 
    19 @RequestMapping(value = "/demo")
    20 public class DemoController {
    21 
    22     public Logger log = Logger.getLogger(this.getClass());
    23     
    24     /**
    25      * 関数名(任意)<br/>
    26      * クラスに請求パスを指定する場合、関数の請求方法は「"/demo/***.do"」です。
    27      * クラスに請求パスを指定しない場合、関数の請求方法は「"***.do"」です。(唯一制御)
    28      * 
    29      * @param req (任意)
    30      * @param res (任意)
    31      * @return
    32      * @throws Exception
    33      */
    34     @RequestMapping(value = "/login")
    35     public String index(HttpServletRequest req, HttpServletResponse res) throws Exception {
    36         log.info("index");        
    37         //web.xmlにて、文字化けを対応すれば、下記の方法一、二は不要となる
    38         // 画面エンコードを設定(方法一)
    39         //res.setCharacterEncoding("UTF-8");
    40         // 画面エンコードを設定(方法二)
    41         // res.setContentType("text/html;charset=UTF-8");
    42 
    43         String key = (String) req.getParameter("KEY");
    44         if (key != null && key.equals("val_index2forAttr")) {
    45             log.info("このKEYは関数index2のAttrから戻る");
    46             log.debug("このKEYは関数index2のAttrから戻る");
    47         }
    48 
    49         // 応答ファイル:”/jsp/login.jsp”、ファイルの拡張子(.jsp)はXMLにセットする
    50         return "/jsp/login";
    51     }
    52 
    53     @RequestMapping(value = "/login2")
    54     public String index2(HttpServletRequest req, RedirectAttributes attr) {
    55         log.info("index2");
    56         // 引き渡すパラメータを設定、このようにすれば、請求URLに「?KEY=XXX」で保持する
    57         attr.addAttribute("KEY", "val_index2forAttr");
    58 
    59         // 再度請求URL、キー「"redirect:"」
    60         return "redirect:/demo/login.do";
    61     }
    62 }
    DemoController.java

    注意:Controller⇒Controllerの方法は「return "redirect:/demo/login.do"」にする。

    ⑧index.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
     2 <!DOCTYPE html>
     3 <html>
     4 <head>
     5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     6 <title>Insert title here</title>
     7 </head>
     8 <body>
     9     <div>
    10         <h2>これは、初期化画面です。(http://localhost:8080/${pageContext.request.contextPath}/index.jsp)</h2>
    11     </div>
    12 </body>
    13 </html>
    index.jsp

    ⑨login.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
     2 <!DOCTYPE html>
     3 <html>
     4 <head>
     5 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
     6 <title>Insert title here</title>
     7 </head>
     8 <body>
     9     <div>
    10         <h2><%="これは、サーバ側に通信した結果です。(http://localhost:8080/${pageContext.request.contextPath}/demo/login.do)" %></h2>
    11         ${KEY} 
    12     </div>
    13 </body>
    14 </html>
    login.jsp
  • 相关阅读:
    LeetCode 43. Multiply Strings
    LeetCode 42. Trapping Rain Water
    SQLite数据库的基本API函数
    在使用SQLite插入数据时出现乱码的解决办法
    关于1>LINK : fatal error LNK1168: 无法打开 ....exe或者....dll进行写入的问题
    如何向VS2010中插入ActiveX控件并且附带相应的类
    字符的编码方式介绍
    如何给ActiveX控件添加“事件”“属性”“标准事件”“自定义事件”等一些相关操作
    ActiveX控件的基本操作方法以及如何在VS2010下使用控件
    关于使用regsvr32命令注册ActiveX控件失败的解决办法
  • 原文地址:https://www.cnblogs.com/lnsylt/p/10315455.html
Copyright © 2020-2023  润新知