티스토리 뷰
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 ]
'KH 정보교육원 [ Java ]' 카테고리의 다른 글
KH 84일차 - Servlet 생성 (****) (0) | 2022.06.28 |
---|---|
KH 83일차 - Driver SPY / junit (0) | 2022.06.27 |
KH 81일차 - JDBC 2 (*****) (0) | 2022.06.23 |
KH 80일차 - JDBC 1 ( Target DB에 연결 ) (0) | 2022.06.22 |
KH 79일차 - 메이븐 2 (0) | 2022.06.21 |