반응형

개발을 하다 보면 옛날 버전의 java jdk 로 개발을 해야할 때가 종종 있습니다.

 

그럴때는 최신버전의 sts 에선 1.8 이전 버전의 자바를 지원을 안하는경우가 있고

 

혹은 프로젝트가 여러개가 있어서

 

같은 WorkSpace 에서 하나의 STS 로는 자바 버전을 나누기 애매해서(?)

 

옛날 버전의 STS 가 필요할 때가 있는데요

 

그때 이전 버전의 STS 를 찾고 싶은데 sts 공식 홈페이지에서는 4.0.0 버전 까지의 STS 만 다운로드할 수 있게 되어 있는 것을 확인하였습니다.

https://github.com/spring-projects/sts4/wiki/Previous-Versions

 

Previous Versions

The next generation of tooling for Spring Boot, including support for Cloud Foundry manifest files, Concourse CI pipeline definitions, BOSH deployment manifests, and more... - Available for Eclipse...

github.com

그래서 열심히 서칭을 하여 결국 옛날 버전의 STS 까지 다운받을 수 있는 사이트를 찾았습니다.

https://dist.springsource.com/release/STS/index.html

 

https://dist.springsource.com/release/STS/index.html

Spring Tool Suite 3.9.12 3.9.12.RELEASE (Mrz 12, 2020) Spring Tool Suite 3.9.11 3.9.11.RELEASE (Dez 16, 2019) Spring Tool Suite 3.9.10 3.9.10.RELEASE (Sep 19, 2019) Spring Tool Suite 3.9.9 3.9.9.RELEASE (Jun 18, 2019) Spring Tool Suite 3.9.8 3.9.8.RELEASE

dist.springsource.com

이곳에서 Spring Tool Suite 2.0.1 버전까지 다운로드가 가능하고

윈도우 뿐만 아니라 MacOS 와 Linux 버전의 옛날 STS 까지 전부 다 있기 때문에

필요하신 분들은 이곳에서 다운로드를 받으시면 될 것 같습니다!

반응형
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Mutation Observer => DOM 에 변화가 있을 때 감지해서 이벤트를 발생시켜주는 기능
//var target = document.getElementById('target');
var target = $('#target')[0];
 
// 감시자 인스턴스 만들기
var observer = new MutationObserver((mutations) => {
  // 노드가 변경 됐을 때의 작업
  console.log("event 발생!");
})
 
// 감시자 옵션 포함, 대상 노드에 전달
var config = {
  attributes: true
  childList: true,
  characterData: true
};
 
// 대상 노드에 감시자 전달
observer.observe(target, config);
 
// 나중에, 감시를 중지 가능
observer.disconnect();
cs

 

https://developer.mozilla.org/ko/docs/Web/API/MutationObserver

 

MutationObserver - Web API | MDN

MutationObserver 는 개발자들에게 DOM 변경 감시를 제공합니다. DOM3 이벤트 기술 설명서에 정의된 Mutation Events 를 대체합니다.

developer.mozilla.org

이곳을 참고하였습니다~

반응형
반응형

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function once(fn, context) { 
    var result;
 
    return function() { 
        if(fn) {
            result = fn.apply(context || thisarguments);
            fn = null;
        }
 
        return result;
    };
}
 
// Usage
var canOnlyFireOnce = once(function() {
    console.log('Fired!');
});
 
canOnlyFireOnce(); // "Fired!"
canOnlyFireOnce(); // nada
cs

https://davidwalsh.name/javascript-once

 

JavaScript Once Function

Learn how to ensure your function fires only once with JavaScript!

davidwalsh.name

이분의 글을 참고하였습니다~

반응형
반응형

작업을 하다가 어느 순간

어떤 배열을 이용하여 Object 를 생성해야 하는데

배열을 이용하여 동적으로 key 와 value 를 생성해야할 때가 있었습니다.

 

Object 를 생성할 때는

1
2
3
4
5
6
7
var testObject = {
    "1번째 컬럼" : "사과",
    "2번째 컬럼" : "바나나",
    "3번째 컬럼" : "오렌지",
    "4번째 컬럼" : "포도",
    "5번째 컬럼" : "옥수수"
}
cs

 

이렇게 생성하는 방법밖에 몰랐었는데

 

blog.knowgari.com/JSON%EB%8F%99%EC%A0%81%ED%95%A0%EB%8B%B9/

 

[JavaScript] JSON 객체 Key값 동적 할당

JSON 객체 Key값 동적 할당

blog.knowgari.com

이분의 블로그를 참조하여

어떠한 배열 등이 있을 때

다음과 같이 동적으로 key 와 value 를 선언할 수 있게 되엇습니다.

그 방법은

 

1
2
3
4
5
6
7
8
9
10
11
12
<script>
    var testArray = ['사과''바나나''포도''오렌지''옥수수']
    
    var testObject = new Object();
 
    testArray.forEach(function(item, index, arr2){
        testObject[(index+1)+"번째 컬럼"]=item;
    })
 
    console.log(testObject);
 
</script>
cs

 

이렇게 object 를 생성하게 되면

 

이렇게 동적으로 생성되는것을 확인하실 수 있습니다.

반응형
반응형

정리가 잘 된 블로그가 있어서 첨부합니다.

 

crosstheline.tistory.com/41

 

JQuery 노드찾기

1. 노드 찾기  - 태그 이름으로 노드 찾기 :  $("태그이름"), $("선택자")  - 클래스 이름으로 노드 찾기 : $(".클래스이름")  - ID로 노드 찾기 : $("선택자")  - 속성으로 노드 찾기 : $("[속성이름=값]").

crosstheline.tistory.com

 

반응형
반응형

이 글은 

https://dzzienki.tistory.com/66

 

Eclipse Dynamic Web Project로 Spring Maven 프로젝트 만들기

이번 포스팅에서는 STS 나 egovframework 를 사용하지 않고 이클립스에서 Dynamic Web Project 를 이용하여 Spring Maven 기반의 웹 프로젝트를 만들어 보도록 하겠습니다. 이 포스팅의 목적은 가장 기본적인 �

dzzienki.tistory.com

이 포스팅의 마지막 부분에서 이어집니다.

 

tiles 라는 것은 말 그대로 화면을 조각들로 분할하여 사용할 수 있도록 도와주는 프레임워크 입니다.

예를들어 인터넷 카페나 블로그 등을 생각 해 보시면

화면이 상단메뉴, 좌측 혹은 우측 메뉴, 콘텐츠 부분, 하단메뉴

이렇게 나누어져 있는 것을 보신 적이 있으실 겁니다.

그걸 각각의 jsp 로 나누어 관리하기 편하도록 도와주는 툴이 바로 tiles 입니다.

 

타일즈를 사용하기 위해선 우선 pom.xml 에 다음 dependency 를 추가해주셔야 합니다.

 

코드는 아래쪽의 것을 복사하시면 되구요

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<!-- tiles -->

    <dependency>

        <groupId>org.apache.tiles</groupId>

        <artifactId>tiles-jsp</artifactId>

        <version>3.0.8</version>

    </dependency>

    

    <dependency>

        <groupId>org.apache.tiles</groupId>

        <artifactId>tiles-servlet</artifactId>

        <version>3.0.8</version>

    </dependency>

    

    <dependency>

        <groupId>org.apache.tiles</groupId>

        <artifactId>tiles-extras</artifactId>

        <version>3.0.8</version>

    </dependency>

    <!-- /tiles -->

    

    

    <dependency>

        <groupId>javax.servlet</groupId>

        <artifactId>jstl</artifactId>

        <version>1.2</version>

    </dependency>

Colored by Color Scripter

cs

그 다음으로는 

src/main/resources/spring/servlet-context.xml 에

아래의 내용을 추가해주셔야 합니다.

코드는 아래의 것을 복사하시면 됩니다.

1

2

3

4

5

6

7

8

9

10

11

12

13

    <!-- Tiles -->

    <beans:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">

        <beans:property name="definitions">

            <beans:list>

                <beans:value>/WEB-INF/tiles/tiles.xml</beans:value>

            </beans:list>

        </beans:property>

    </beans:bean>        

    <beans:bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">

        <beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />

        <beans:property name="order" value="1" />

    </beans:bean>   

    <!-- /Tiles -->

Colored by Color Scripter

cs

 

다음은 tiles 의 설정 파일을 만들어 주어야 합니다.

위의 <beans:value>/WEB-INF/tiles/tiles.xml</beans:value>

이부분에 보시면 WEB-INF아래에 tiles라는 폴더 아래에 tiles.xml

이라는 파일 안에 설정파일을 넣어주겠다 라는 뜻이니

저 경로에 정확하게 파일을 tiles.xml 이라는 파일을 만들어 주시고

아래와 같이 작성을 해 줍니다.

코드 내용은 아래 코드를 복사하시면 됩니다.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE tiles-definitions PUBLIC

  "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"

  "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">

 

<tiles-definitions>

 

    <!-- 메뉴 표시 -->

    <definition name="base" template="/WEB-INF/tiles/template.jsp">

        <put-attribute name="left"   value="/WEB-INF/tiles/left.jsp" />

        <put-attribute name="header" value="/WEB-INF/tiles/header.jsp" />

        <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" />

    </definition>

 

    <definition name="*.page" extends="base">

        <put-attribute name="body" value="/WEB-INF/jsp/{1}.jsp" />

    </definition>

 

     <definition name="*/*.page" extends="base">

         <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp" />

     </definition>

    

    <definition name="*/*/*.page" extends="base">

        <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" />

    </definition>

    

    

    <!-- 메뉴 미표시 -->

    <definition name="baseEmpty" template="/WEB-INF/jsp/templateEmpty.jsp">

    </definition>

    

    <definition name="*.part" extends="baseEmpty">

        <put-attribute name="body" value="/WEB-INF/jsp/{1}.jsp" />

    </definition>

 

     <definition name="*/*.part" extends="baseEmpty">

         <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp" />

     </definition>

    

    <definition name="*/*/*.part" extends="baseEmpty">

        <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" />

    </definition>        

    

</tiles-definitions>

Colored by Color Scripter

cs

위의 tiles.xml 에 작성한

 template="/WEB-INF/tiles/template.jsp"

attribute name="left"   value="/WEB-INF/tiles/left.jsp"

attribute name="header" value="/WEB-INF/tiles/header.jsp"

attribute name="footer" value="/WEB-INF/tiles/footer.jsp"

 

이부분을 보시면 템플릿 파일은 WEB-INF/tiles/폴더 아래에 template.jsp 에,

left, header, footer 파일은 각각 WEB-INF/tiles/ 폴더 아래에

left.jsp, header.jsp, footer.jsp

에 설정해 두겠다고 명시해 두었습니다.

그러니 파일 구조를 보시면

 

 

위와 같은 파일 구조가 되도록 각각의 파일들을 생성해 주시면 됩니다.

 

그리고 template.jsp 에는 아래와 같이

코드는

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>

<!DOCTYPE html>

 

<html>

    <head>

        <meta charset="EUC-KR">

        <title>Insert title here</title>

        <style>

            #header{            

                width:100%;

                height:50px;

                text-align: center;

                line-height: 50px;

                background-color: #61868e;

            }

            #left{

                float:left;

                 width:15%;

                 text-align: center;

                background-color: #d78b7d;

            }

            #main{

                float:left;

                 width:85%;

                background-color: #f9f3e3;

            }

            #footer{

                width: 100%;

                height: 50px;            

                text-align: center;

                background-color: #cfc8b5;

                clear:both;

            }

             #left, #main{ 

                   min-height: 700px;

             

        </style>

    </head>

    <body>

        <div style="width:100%; height:100%;">

        <div id="header"><tiles:insertAttribute name="header" /></div>

        <div id="left"><tiles:insertAttribute name="left" /></div>

        <div id="main"><tiles:insertAttribute name="body" /></div>    

        <div id="footer"><tiles:insertAttribute name="footer" /></div>

        </div>

     

    </body>

</html>

Colored by Color Scripter

cs

 

그리고 header.jsp, left.jsp, footer.jsp 에는 각각 아래와 같이 만들어 주시면 됩니다.

 

아래의 코드의 div 안의 내용만 바꾸시면 될 것 같습니다.

1

2

3

4

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html>

<div>왼쪽 메뉴</div>

Colored by Color Scripter

cs

 

그럼 이제 tiles 를 사용하기 위한 기본적인 설정 파일들은 다 만들고 설정을 마친 것입니다.

물론 세세한 설정들은 손을 봐야겠지만 큰 틀을 잡고 가는데에는 문제가 없습니다.

그럼 이제 tiles를 테스트 해 보기 위해

mainController.java 에

아래와 같이 추가해줍니다.

코드는 

1

2

3

4

5

6

7

8

    /**

     * Tiles 사용

     */        

    @RequestMapping(value="/testTiles.do")

    public String testPage() {

        System.out.println("tiles Test!");

        return "main/tilesTest.page";

    }

Colored by Color Scripter

cs

위에 있구요

 

보통 타일즈를 사용할 때 상단메뉴 왼쪽 메뉴 아래쪽 메뉴를 고정시켜놓고 content 부분인 내용만 바꿔가며 사용하는 경우가 많습니다. 그 content 는 위의 return 에 명시한 대로

WEB-INF/jsp 폴더의 main폴더 아래에 tilesTest.jsp 를 만들고

아래와 같이 코드를 작성해줍니다.

1

2

3

4

5

6

7

8

9

10

11

12

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>Insert title here</title>

</head>

<body>

타일즈 테스트

</body>

</html>

Colored by Color Scripter

cs

그리고 나서 서버를 실행시킨 뒤

http://localhost:8080//testTiles.do 에 접속해 보시면

 

위와 같이 각각의 tiles 들이 정해놓은 위치에 생성되어 있는 것을 보실 수 있습니다.

 

여기까지가 tiles 기본 설정 방법이었습니다.

 

반응형
반응형
1
2
3
4
5
6
7
8
9
10
fnDrawCallback: function () { 
    $('#tableId tbody tr').click(function () {  
        // get position of the selected row  
        var position = $('#tableId').dataTable().fnGetPosition(this)  
        // value of the first column (can be hidden)  
        var id = $('#tableId').dataTable().fnGetData(position).id
        // redirect
        document.location.href = 'abcd.html?id=' + id
    })
}
cs

 

반응형
반응형

이번 포스팅에서는 STS 나 egovframework 를 사용하지 않고

이클립스에서 Dynamic Web Project 를 이용하여

Spring Maven 기반의 웹 프로젝트를 만들어 보도록 하겠습니다.

 

이 포스팅의 목적은 가장 기본적인 설정을 직접 셋팅해봄으로써

각 설정의 의미들을 파악하고 익숙해지는데에 있습니다.

 

그럼 바로 시작해보겠습니다.

 

우선 이클립스에서 DynamiDynamic Web Project 를 하나 생성해 줍니다.

생성 방법은 상단 메뉴의 File > New > Dynamic Web Project

를 선택해주거나

 

 

혹은 Package Explorer 혹은 Project Explorer 에서

빈 공간에 마우스 우클릭을 한 후

New > Dynamic Web Project

를 선택해주는 방법입니다.

 

가급적 Project Explorer 보다는 Package Explorer 를 사용하시는 걸 추천드립니다.

왜냐하면 물리적 구조가 아닌 논리적 구조로 표시해줌으로써

더 직관적으로 파일 구조를 볼 수 있기 때문입니다.

 

 

혹시 Package Explorer 이 없으신 분들은 

 

 

상단 메뉴의 Window 에서 Show View > Other 를 선택하신 후

 

 

Package Explorer 를 선택하고 Open 을 눌러주시면 보이실 겁니다.

 

다시 본론으로 돌아와서

 

 

Project name 은 Spring_maven 으로 하고 (다른 이름을 사용하셔도 괜찮습니다.)

Target runtime 을 Apache Tomcat v8.5 를 선택해줍니다.

그리고 Next > 버튼을 눌러줍니다.

 

혹시 Tomcat 이 설치가 안된분들은

제 블로그의 톰캣 설치 방법 포스팅을 확인해주시면 됩니다.

https://dzzienki.tistory.com/5?category=1031882

 

1. 개발환경 세팅(3) 아파치 톰캣 apache tomcat 설치 및 환경변수 설정

1. http://tomcat.apache.org/ 에 접속합니다. 2. 왼쪽의 Download 의 Tomcat 8 부분을 클릭합니다. 3. Core 의 64-bit windows.zip 을 클릭하여 파일을 다운받아 줍니다. (자신의 버전에 맞게!) 다운받은 파일..

dzzienki.tistory.com

 

Next > 를 눌러주시구요

 

 

Context directory 이름이 WebContent 로 되어있을 수 있는데

위의 사진처럼 webapp 으로 수정해주신 후

(안하셔도 상관 없습니다. 제가 익숙한 파일명이라 바꿔주는 것이니

혹시 그대로 놔두실 분들은 앞으로 있을 설정에서 wepapp 이 나오는 부분에

설정하신 폴더 명을 사용하시면 됩니다.)

Generate web.xml deployment descriptor 에 체크를 해주시고 

Finish 를 눌러 줍니다.

 

그러면 이렇게 다이나믹 웹 프로젝트가 생성이 됩니다.

 

 

생성 된 프로젝트를 마우스로 우클릭 한 후

Configure > Convert to Maven Project 를 선택해줍니다.

이것은 일반 프로젝트를 메이븐 프로젝트로 바꿔주겠다는 뜻입니다.

 

 

위와 같은 화면이 뜨시면 

Finish 를 클릭해줍니다.

그러면 아래 사진처럼

 

 

프로젝트의 최상위 경로에 pom.xml 이 추가된 것을 보실 수 있습니다.

pom.xml 을 더블클릭하여 열면

아래 사진처럼 처음 내용이 입력되 있을텐데요

 

아래 사진과 같이 수정해 줍니다.

 

소스코드는 아래에서 복사 하시면 됩니다.

(위의 사진에는 없지만 아래 코드에 보시면

javax.annotation

 디펜던시가 추가되었습니다. 해당 라이브러리도 필요한 것이니 꼭 추가해주세요!)

 

<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>com</groupId>
  <artifactId>spring_maven</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <url>http://maven.apache.org</url>
  <dependencies>
		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
		<dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>javax.servlet-api</artifactId>
		    <version>4.0.1</version>
		    <scope>provided</scope>
		</dependency>
		<dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>jsp-api</artifactId>
		    <version>2.0</version>
		    <scope>provided</scope>
		</dependency>
		<dependency>
		    <groupId>org.springframework</groupId>
		    <artifactId>spring-beans</artifactId>
		    <version>5.2.3.RELEASE</version>
		</dependency>
		<dependency>
		    <groupId>org.springframework</groupId>
		    <artifactId>spring-context</artifactId>
		    <version>5.2.3.RELEASE</version>
		</dependency>
		<dependency>
		    <groupId>org.springframework</groupId>
		    <artifactId>spring-core</artifactId>
		    <version>5.2.3.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>5.2.3.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>5.2.3.RELEASE</version>
		</dependency>
	</dependencies>
    
    <!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
	<dependency>
	    <groupId>javax.annotation</groupId>
	    <artifactId>javax.annotation-api</artifactId>
	    <version>1.3.2</version>
	</dependency>
  
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
      	<groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
      	<groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.1</version>
        <configuration>
          <warSourceDirectory>webapp</warSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

그리고 저장해 주신 후

이번에는 webapp 폴더 아래의 WEB-INF 폴더 아래의

web.xml 파일을 더블클릭하여 열어줍니다.

 

그리고 내용을 아래와 같이 바꿔줍니다.

 

소스코드는 아래에

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
id="WebApp_ID" version="3.1">

  <display-name>spring_maven</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>contextConfigLocation</param-name>
		<param-value>classpath*:spring/context-*.xml</param-value>
	</context-param>

	<servlet>
		<servlet-name>dispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath*:spring/servlet-context.xml</param-value> 
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>dispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
  
</web-app>

 

그리고 저장해 줍니다.

그리고 나서

src 폴더를 우클릭 하여 

New > Folder 를 선택하여

새로운 폴더를 하나 생성해 줍니다.

 

 

폴더 이름은 아래와 같이 main 으로 해주신 후

 

생성된 main 이라는 폴더 아래에

java 와 resources 라는 폴더 두개를 더 생성해 줍니다.

 

생성을 해 주셨으면 아래와 같이 src 아래에 main 아래에

java 와 resources 라는 두 폴더가 생성되셨을 텐데요

 

이번에는 resources 폴더 아래에 spring 이라는 폴더 하나를 더 생성해 줍니다.

 

그리고 위의 사진과 같이

resources.spring 처럼 생성되셨을 수도 있고

resources 폴더 아래에 spring 이라는 폴더가 생성되셨을 수도 있는데 상관없습니다.

 

spring 폴더를 우클릭 한 후

New > Other... 를 선택하고

xml 이라고 검색하면 나오는

XML File 을 선택하고 Next > 버튼 눌러줍니다.

 

그리고 servlet-context.xml 라는 이름의 파일을 만들어줍니다.

 

그리고 servlet-context.xml 의 내용을 위와 같이 수정해 줍니다.

소스코드는 아래에 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
    xmlns:security="http://www.springframework.org/schema/security"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:beans="http://www.springframework.org/schema/beans"
    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/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/security
       http://www.springframework.org/schema/security/spring-security.xsd
       ">

	<annotation-driven />
	<resources mapping="/resources/**" location="/resources/" /> 
	
	<beans:bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
		<beans:property name="prefix" value="/WEB-INF/jsp/"/>
		<beans:property name="suffix" value=".jsp"/>
	</beans:bean>
	
	<context:component-scan base-package="main"/>
</beans:beans>

 

그리고 이번에는 src 폴더 아래의 main 폴더 아래의 java 라는 폴더를

마우스 우클릭 한 후 

New > Other... 를 선택하셔서

 

 

Package 라는 항목을 검색하셔서 선택하신 후

 

 

Name 부분을 아래와 같이

main.java.com

으로 입력해 주신 후

Finish 를 눌러 생성해 줍니다.

 

그리고 동일한 방법으로 

com 이라는 package 아래에

web 이라는 패키지를 만들어줍니다.

 

그리고 web 이라는 package 아래에

MainController 라는 class 를 만들어 줍니다.

web package 를 우클릭 한 후 New > Other... 에서 

class 를 선택하신 후

 

위와같이 생성해주시면 됩니다.

 

그리고 MainController 의 내용을 위와같이 입력해 줍니다.

코드는 아래에

package main.java.com.web;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import main.java.com.service.MainService;

@Controller
public class MainController {
 
	@Resource(name="mainService")
	private MainService mainService;
	
	@RequestMapping(value="/")
	public String test(Model model) throws Exception {
		System.out.println("controller");
		String test=mainService.selectTest();
		System.out.println(test);
		model.addAttribute("selectTableList", test);
		return "main/Main";
	}
}

 

 

그리고 이번에는 com package 아래에 service 라는 package 를 만들어 줍니다.

생성 방법은

com package 를 우클릭 하신 후

New > Other.. 에서 Package 를 선택하신 후

 

 

Name 을 위와 같이

main.java.com.service 로 입력해 주신 후

Finish 를 눌러줍니다.

그러면 생성되는 service package 에서

 

 

동일한 방법으로 우클릭 New > Other.. 를 선택하여

 

 

이번에는 Interface 를 선택하고 Next > 를 눌러줍니다.

 

 

MainService 란 이름의 인터페이스를 생성해 줍니다.

 

코드는 간단합니다.

입력해주시고 저장해줍니다.

package main.java.com.service;

public interface MainService {
	String selectTest() throws Exception;
}

 

그리고 service package 아래에 impl 이라는 package 를 만들어 줍니다.

 

 

그리고 동일한 방식으로 impl 아래에 

MainServiceImpl.java 라는 class 파일과

MainDAO.java 라는 class 파일을 만들어 줍니다.

 

 

그리고 MainServiceImpl.java 파일의 내용은 아래처럼

 

소스코드는 아래에

package main.java.com.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import main.java.com.service.MainService;

@Service("mainService")
public class MainServiceImpl implements MainService{

	@Resource(name="mainDao")
	private MainDAO mainDao;
	
	@Override
	public String selectTest() throws Exception {
		System.out.println("serviceImpl");
		return mainDao.selectTest();
	}
}

 

사진과 소스코드의 내용이 좀 다를 수 있는데

import 부분이 굳이 표시하지 않아도 되는 부분은 축소되어서 그런것이니

소스코드의 내용 그대로 입력해 주시면 됩니다.

 

그리고 MainDAO.java 파일의 내용은

 

 

아래처럼

 

 

 

package main.java.com.service.impl;

import org.springframework.stereotype.Repository;

@Repository("mainDao")
public class MainDAO {

	public String selectTest() throws Exception {
		String test = "Hello World!";
		return test;
	}
}

 

이렇게 작성해주시고 저장해줍니다.

 

 

그 다음은 webapp 폴더 아래의 WEB-INF 폴더 아래에 

jsp 라는 새로운 폴더 하나를 만들어 주고

 

 

jsp 폴더 아래에 main 이라는 폴더 하나를 더 만들어 줍니다.

 

 

 

그리고 그 main 이라는 폴더 아래에 Main.jsp 라는 파일을 생성해 줍니다.

생성방법은 이제 굳이 설명하지 않아도 되겠죠?

 

jsp 파일입니다.

 

파일 이름을 Main.jsp 로 해줍니다.

그리고 내용은

 

이렇게 소스코드는

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
Hellow world!
</body>
</html>

이렇게 해주시면 됩니다.

 

그럼 이제 만들어놓은 프로젝트를 실행시켜 봐야겟죠?

서버 탭에서 새로운 서버를 하나 생성해 줍니다.

생성방법은 아래처럼 파란 글씨를 누르시거나

 

 

혹시 서버 탭이 안보이신다면

Package Explorer 탭을 열때와 동일하게

Window > Show View > Servers

이렇게 해주시면 됩니다.

 

 

새로운 서버를 생성하는 창이 열리면

 

 

Tomcat v8.5 Server 를 선택해 주시고

Server's host name 은 그대로 두시고

Server name 을 spring_maven 으로 입력해주시고

Finish 를 눌러줍니다.

 

그러면 아래처럼

 

spring_maven 이라는 이름의 서버가 생성이 된겁니다.

 

이제 마지막으로 프로젝트를 마우스 오른쪽 클릭 하신 후

 

Run As > Run on Server 를 선택해줍니다.

 

 

그리고 방금 전 생성한 spring_maven 서버를 선택해 주시고 Next >

위의 그림처럼 spring_maven 프로젝트가 Configured 쪽에 오게 해주신 후 

Finish 를 눌러주면

 

위의 그림처럼 콘솔창에는 MainController와 MainServiceImpl 그리고 MainDAO 에 입력했던

System.out.println 에 입력한 문구들이 나오고

위의 브라우저에는 jsp 파일에 입력한 Hellow World! 라는 문구가 보이는 걸 확인하실 수 있으실 겁니다.

 

아 그리고 마지막으로 작업해주실 게 한가지 남았는데

 

생성된 spring_maven 서버를 더블클릭해서 여시면

 

아래처럼 창이 열릴 텐데

 

 

왼쪽 아래의 Modules 탭을 선택해 주신 후

 

 

 

/spring_maven 을 선택해 주신 후 

오른쪽의 Edit.. 버튼을 눌러줍니다.

 

 

그리고 Path 부분을 위처럼

하나만 남기고 지워주신 후 OK 를 눌러줍니다.

그리고 서버를 재실행 시켜 주신 후

 

익스플로러나 크롬같은 인터넷 브라우저 창을 여시고

주소창에

https://localhost:8080/

를 입력해보시면

위의 사진처럼

여러분이 생성한 웹 프로젝트가

인터넷 브라우저에서 열리는 걸 확인하실 수 있으실 겁니다.

 

여기까지 여러분은 mvc 패턴으로 된

spring_maven 프로젝트를 직접 생성하고 만들어보셨습니다.

조금 과장해서 홈페이지 하나를 만든것과 다름없는 일입니다.

 

앞으로 이 홈페이지를 어떻게 꾸며나갈지

잘 준비해서 다시 포스팅 할 수 있도록 해보겠습니다.

 

그럼 지금까지 긴 글 읽어주셔서 감사합니다.

반응형

+ Recent posts