애플리케이션 아키텍처
thin client (성능이 낮은 컴퓨터) 가능!
서버에서 실행시키느냐 클라이언트에 실행시키느냐에 따라
Servlet : 서버에서 실행하는 작은 Application
Servlet API 규칙에 따라 만든 Java 프로그램
Java App. = Servlet
Java App. 관리자 = Servlet Container
Servlet 기술 (웹 애플리케이션 제작 기술)
EE = Enterprise Edition
기업에서 사용하는 프로그램의 특징
여러 사용자, 동시접속, 보안, 자원 공유
🔹 JavaEE
JavaEE : 기업에서 사용할 App. 제작 도구
Java SE를 포함하지 않는다
Java SE에 EE를 결합해야 됨
‐ 웹 기술
Servlet
JSP
JSTL
EL
...
로컬 객체
로컬이 아니라 다른 컴퓨터 있는 객체를 마치 로컬 객체처럼 사용
기업에서 사용하는 프로그램에서는 필요함
그래서 등장한 기술
‐ 분산 컴퓨팅 기술
EJB (Enterprise JavaBeans)
WebService
Java Persistance
JMS
‐ 관리 및 보안 기술
Java Security
Java Management
Eclipse 재단에 소스 관리를 위임
Java EE --> Jakarta EE
Java EE 8 이후로 Jakarta로 바뀜
패키지 이름도 바뀜
기존 소스가 100% 호환이 안 된다
Servlet 2.5 -> 3.0
± 클래스, 메서드, 인터페이스
Java EE 5 -> 6
± 기술
3.1 버전을 쓰면 4 버전에 있는 클래스나 메서드를 사용하면 안 된다
Implements <- 기술 규약에 따라 동작하도록 만든 서버
Java EE | 구현체(서버)
고객사 --사용--> JEUS 7 (제품) --준수--> Java EE 6 (기술)
↑ 규칙을 따른다
App
Java EE 6 기술에 정의된 클래스와 메서드를 사용하여 프로그래밍을 한다
Java EE
‐ 웹 기술
Servlet
JSP
...
‐ 분산컴퓨팅
EJB
...
Tomcat 서버
Resin
Jetty
Undertow (JSP를 지원하지 않는다)
Servlet Container = Java EE 기술 중에서 웹 기술의 일부만 지원 = EJB 기술로 만든 자바 프로그램 실행 불가!
JEUS
Java EE 전체 기술 지원
Servlet/JSP 뿐만 아니라 EJB 기술을 사용해서 만든 클래스도 실행할 수 있다
JBoss
WebLogic (Oracle)
WebSphere (IBM)
Geronemo
GlassFish
JBoss 커뮤니티 서버
https://tomcat.apache.org/tomcat-8.5-doc/index.html
/Users/nana/apache-tomcat-9.0.62/bin 로 가기
ls -al
chmod 755 *.sh
./startup.sh
./shutdown.sh
웹 애플리케이션
/Users/nana/git/bitcamp-study/project-app3/app/build.gradle
plugins {
id 'application'
id 'eclipse-wtp' // 이클립스 웹 프로젝트를 다룰 수 있는 기능 추가
id 'war' // 웹 애플리케이션 배포파일(.war)을 생성할 수 있는 기능 추가
}
repositories {
mavenCentral()
}
dependencies {
// Servlet API 라이브러리
// => 컴파일 할 때만 사용하고, 배포할 때는 제외할 라이브러리
providedCompile 'javax.servlet:javax.servlet-api:4.0.1'
testImplementation 'junit:junit:4.13.2'
implementation 'com.google.guava:guava:30.1.1-jre'
}
https://search.maven.org/artifact/javax.servlet/javax.servlet-api/4.0.1/jar
// gradle에서 빌드할 때 정보
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
sourceCompatibility = '11'
targetCompatibility = '11'
}
// eclipse에서 빌드할 때 정보
eclipse {
project {
name = "project-app3"
}
jdt {
sourceCompatibility = 11
targetCompatibility = 11
javaRuntimeName = "JavaSE-11"
}
}
eclipse 설정 파일 생성
gradle build
배포 파일 생성됨
http://localhost:8080/web/index.html
@WebServlet("/hello")
gradle build
http://localhost:8080/web/hello?name=nana
다음 시간에서는 이클립스에서 톰캣을 띄우겠다