高级农民工(H.F.H)
我思,故我在!(僕なら、僕ができる!)

导航

 

参考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

 

posted on 2019-01-24 16:56  农民工024  阅读(82)  评论(0编辑  收藏  举报