티스토리 뷰

KH 정보교육원 [ Java ]

KH 82일차 - WAS

monimoni 2022. 6. 24. 21:58

1.    Web Application을 위한 프로젝트 생성 주의사항

-      1 ) Eclipse JSE Version에서는 Web Application 프로젝트 생성을 하지 못한다.

-      2 ) Eclipse JEE Version에서는 가능하다.

 

2.    WAS ( Web Application Sever )

-      WAS는 웹 어플리케이션 서버를 의미한다.

-      WAS는 동적 서버 콘텐츠를 수행하며, 주로 데이터 서버와 같이 수행된다.

-      WAS는 웹 브라우저와 같은 클라이언트로부터 웹 서버가 요청을 받으면, 어플리케이션에 대한 로직을 실행하여 웹 서버로 반환해주는 소프트웨어이다.

-      WAS는 웹 서버와 DBMS 사이에서 동작하는 미들웨어로, 컨테이너 기반으로 동작한다.

-      WAS는 등록되어 있는 모든 웹 어플리케이션마다 지정되어 있는 ContextPath에 따라서, 요청이 들어올 때 어느 웹 어플리케이션이 이 요청을 처리해야 하는지 판단하기 위해서, 등록되어 있는 ContextPath를 검사한다.

-      ContextPath를 결정하는 태그는 pom.xml파일의 <finalName>이다.

-      ContextPath는 유니크해야하며, 중복되서는 안된다.

 


[ 1. 프로젝트 생성방법 ]

 

[ 1 - 1. new - project클릭 : Maven Project 선택 ]

 

[ 1 - 2. next 클릭 ]

 

[ 1 - 3. web app 선택 ]

 

[ 1 - 4. Group id, Artifact id, Package 명 지정 ]

 

[ 1 - 5. pom.xml 파일 내용 변경 ]

 

[ 1 - 6. pom.xml ]

 

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


<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>org.zerock</groupId>
  <artifactId>mweb03</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <packaging>war</packaging>

  <name>mweb03</name>
  <url>http://maven.apache.org</url>
  <description>The project of maven webapp archetype</description>


  <properties>
  	<java-version>11</java-version>
  	<java-home>${env.JAVA_HOME}</java-home>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
    <org.slf4j-version>1.7.36</org.slf4j-version>
  </properties>
  

  <dependencies>
		
		<!-- 1. Logging -->

		<!-- lombok 의 @Log4j2 어노테이션을 사용하는데 필요한 라이브러리 -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.17.2</version>
		</dependency>

		<!-- DriverSpy Logging 에 필요한 라이브러리 -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${org.slf4j-version}</version>
		</dependency>

		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>${org.slf4j-version}</version>
      <!-- ${org.slf4j-version}는 <org.slf4j-version> 태그 안에 있는 값을 가져온다. -->

			<scope>runtime</scope>
      <!-- scope - runtime : 실행시킬때에만 필요하기 때문에 배포시에는 포함되지 않는다. -->
		</dependency>

		<!-- 2. javax.servlet-api (****) -->
    <!-- + javax는 자바 확장파일이라는 의미이다. -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>4.0.1</version>

			<scope>provided</scope>
		</dependency>

		<!-- 3. javax.servlet.jsp-api -->
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>javax.servlet.jsp-api</artifactId>
			<version>2.3.3</version>

			<scope>provided</scope>
		</dependency>

		<!-- 4. javax.servlet/jstl ( JSP 스탠다드 태그 ) -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>

		<!-- 5. junit -->
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>5.8.2</version>
			<scope>test</scope>
		</dependency>

		<!-- 6. lombok -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.24</version>
		</dependency>

	    <!-- 7. DriverSpy -->
      <!-- jdbc Driver의 내부 동작을 찍어준다. -->
	    <dependency>
	      <groupId>org.bgee.log4jdbc-log4j2</groupId>
	      <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
	      <version>1.16</version>
	    </dependency>
	    
	    <!-- Oracle JDBC Driver -->
		<dependency>
			<groupId>com.oracle.database.jdbc</groupId>
			<artifactId>ojdbc8-production</artifactId>
			<version>21.5.0.0</version>

			<type>pom</type>

			<exclusions>
				<exclusion>
				<groupId>com.oracle.database.ha</groupId>
				<artifactId>simplefan</artifactId>
				</exclusion>

				<exclusion>
				<groupId>com.oracle.database.ha</groupId>
				<artifactId>ons</artifactId>
				</exclusion>

				<exclusion>
				<groupId>com.oracle.database.jdbc</groupId>
				<artifactId>rsi</artifactId>
				</exclusion>

				<exclusion>
				<groupId>com.oracle.database.jdbc</groupId>
				<artifactId>ucp</artifactId>
				</exclusion>

				<exclusion>
				<groupId>com.oracle.database.xml</groupId>
				<artifactId>xdb</artifactId>
				</exclusion>

				<exclusion>
				<groupId>com.oracle.database.xml</groupId>
				<artifactId>xmlparserv2</artifactId>
				</exclusion>
			</exclusions>
		</dependency>


  </dependencies>


  <build>
    
    <finalName>/mweb03</finalName>
	<!-- finalName태그는 ContextPath를 결정해준다. -->

    <plugins>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.3.2</version>
      </plugin>
      <!-- 패키지를 war파일로 묶어낸다. -->

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-eclipse-plugin</artifactId>
        <version>2.10</version>

        <configuration>
          <downloadSources>true</downloadSources>
          <downloadJavadocs>false</downloadJavadocs>
        </configuration>
        <!-- 다운받을 때, 소스파일과, javadocs파일도 다운받을지 정하는 것이다. -->
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.10.1</version>

        <configuration>
          <release>${java-version}</release>
        </configuration>
        <!-- 컴파일의 버전을 <java-version>태그에 작성된 버전으로 되게 하였다. -->
      </plugin>

    </plugins>

  </build>
  
</project>

[ 1 - 7. Deployment Descriptor Archetype 더블클릭 -> web.xml파일로 들어감 ]

 

[ 1 - 8. web.xml 파일 내용 변경 ]

 

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

<web-app
    version="4.0"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd">

    <display-name>mweb03</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-list>


</web-app>

[ 1 - 9. 프로젝트를 잡고 Properties(설정)으로 들어간다. ]

 

[ 1 - 10. Context root 설정 ]

 

[ 1 - 10. 웹 컨텐츠 설정 ]

 

[ 1 - 11. 버전에 따라서 Tomcat 설정 ]

 

[ 1 - 12. 그에 따라서 Server 설정 ]

 

[ 1 - 13. 프로젝트를 구성할 언어와 컨텐츠 타입( JSP Fragment ) 설정 ]

 

[ 1 - 14. 자바 컴파일러 설정 ]

 

[ 1 - 15. Build Path 설정 ]

 

[ 1 - 16. Build Path - Source 설정 - Add Folder ]

 

[ 1 - 17. Build Path - Source 설정 - test파일 설정 ]

 

 

[ 1 - 18. Build Path - 파일 순서 설정 ]

 

 

[ 1 - 19. Apply and Close ]

728x90
댓글
«   2024/11   »
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
최근에 올라온 글
Total
Today
Yesterday
공지사항