<톰캣>
https://tomcat.apache.org

-톰캣9 다운로드
서비스 목적이면 인스톨 버전 설치 (부팅 시 서비스목록에 추가)
개발, 공부 목적이면 집파일 설치

-JAVA_HOME  jdk 환경변수 등록이 안되어 있으면 등록

-톰캣 폴더 내 bin 폴더 startup.bat 실행
(안될 경우 jdk 환경변수 또는 이미 설치된 톰캣이 포트를 점거하고 있을 수 있다)

-localhost:8080포트를 사용. 브라우저로 접속이 되는지 확인한다.



<Tomcat (Java Web Application Server) - WAS>

java에서 자주 쓰이는 WAS 중 하나.
WAS와 웹 서버 기능이 포함되어있다.

WEB SERVER 
- 웹 브라우저 클라이언트로부터 HTTP 요청을 받고, 정적인 컨텐츠(html, css 등)를 제공하는 컴퓨터 프로그램

Web Application Server (WAS) 
- DB 조회 및 다양한 로직 처리 요구시 동적인 컨텐츠를 제공하기 위해 만들어진 애플리케이션 서버

클라이언트(사용자) - 웹서버(웹문서제공자) - WAS(동적콘텐츠제공) - DB서버

퍼포먼스를 위해 위처럼 하드웨어적으로 나누어져 있는 게 기본이지만 서비스 규모에 따라 달라진다.

톰캣폴더\webapps\ROOT 폴더에 txt 등의 문서 파일을 넣으면 브라우저의 ip:8080/문서명.확장자 주소에서 확인할 수 있다.



<context 사이트>

-https://locahos:8080/분리사이트
-분리사이트의 폴더가 실제 톰캣 루트 폴더에 위치하지 않아도 conf 서버의 server.xml 수정을 통해 context 해줄 수 있다
(권장되지 않는 방법이다)

<Host name="localhost" appBase="webapps ">
<Context path = "컨텍스트할폴더" docBase="컨텍스트할폴더가있는경로" privileged="true"/>
</Host>


tomcat\webapps\ROOT\WEB-INF\classes 
-작성하여 WAS에서 실행 할 Java 패키지 및 클레스 파일들은 해당 폴더 내에 위치
-해당 폴더는 url을 통한 요청이 불가능하며 비공개 상태
-WEB_INF 내의 web.xml 문서의 수정을 통해 컴파일된 java 클래스를 url 주소로 맵핑 시켜줄 수 있다.

(하지만 web.xml 은 공용 설정 파일이므로 어노테이션 맵핑 방식을 주로 사용한다)

  <servlet>
  <servlet-name>na</servlet-name>
  <servlet-class>package.Nana</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>na</servlet-name>
  <url-pattern>/hello</url-pattern>
  </servlet-mapping>

  <display-name>Welcome to Tomcat</display-name>

-package 패키지 안에 있는 Nana 클래스 파일을 localhost:8080/hello 로 맵핑



Servlet 기본 코드

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class ??? extends HttpServlet
{
  public void service(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
    PrintWriter out = resp.getWriter();
    out.println("web page output")
  }
}

HttpServlet 추상 클래스를 상속받아 service() 를 구현한다.

개발환경을 사용하지 않을 경우 import되는 servlet은 tomcat\lib\servlet-api.jar 을 필요로 한다.

web.xml 빨간색 줄 에러 문제가 생길 경우
xml을 정의하는 xsd 스키마 파일의 주소가 http에서 https로 바뀌면서 에러 발생
주소를 https로 바꿔주면 해결된다

 


○ 위의 과정들은 번거로우므로 이클립스 등에서 웹 개발환경을 사용하여 컴파일, xml 편집, 서버 재시작 등을 할 필요 없이 편하게 개발할 수 있다.

'Development > Java' 카테고리의 다른 글

Servlet (Application, Session, Cookie) #2  (0) 2022.08.12
Servlet #1  (0) 2022.08.11
JDBC  (0) 2022.08.07
Java Thread & Sync  (0) 2022.08.04
JAVA Collection & Generic  (0) 2022.08.04

+ Recent posts