블로그 내 spring 카테고리의 Java 다운받기에서 설명을 해 두었다.
https://velog.io/@kms9887/Java-%EB%8B%A4%EC%9A%B4%EB%B0%9B%EA%B8%B0
맥은 https://www.boostcourse.org/web316/lecture/16680 참고
(맥 https://velog.io/@max9106/Mac-apache-tomcat톰캣-설치-l0k4zt4f3c 참고)
웹 어플리케이션을 실행하기 위해 WAS가 필요하다. WAS란 클라이언트와 dbms 사이에 또 다른 서버를 두는 방식 중 하나로 프로그램 실행 환경과 데이터 베이스 접속 기능을 제공, 여러 트랜잭션 관리, 업무 처리 비즈니스 로직을 수행한다. 추가적으로 웹 서버의 기능도 제공을 하는데, 설치하는 Apache Tomcat은 WAS중 하나이다.
http://tomcat.apache.org 에서 다운받을 수 있다.
다운을 받으면 폴더 내에 bin 폴더를 들어가면 bat, sh를 확장자로 갖는 파일들을 확인할 수 있다. sh는 쉘스크립트 파일로 linux나 mac에서 실행 가능하며 윈도우에서는 bat을 사용한다. startup.bat을 사용하면 서버가 실행되며 톰캣을 8080 포트로 실행되기 때문에 웹 브라우저에 localhost:8080 혹은 127.0.0.1:8080을 입력하면 tomcat이 기본적으로 제공하는 웹 사이트가 보여지는 것을 확인할 수 있다.
shutdown.bat이나 실행파일을 닫으면 서버가 종료되어 오류 화면이 뜨는 것을 확인할 수 있다.
서블릿이란 클라이언트의 요청을 처리하고 그 결과를 반환하는 servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술로 쉽게말해 url 요청을 처리하는 프로그램이다.
기본적으로 http://localhost:8080/프로젝트이름/URL mapping 값 으로 url 주소를 갖는다.
실행해보기
이클립스 실행 후 file->new->project->web->Dynamic Web project를 선택하고 next를 누른다.
그리고 나서 프로젝트 이름을 설정해 준 뒤 target runtime을 설정해 줘야 하는데, New Runtime을 누르고 사용할 톰캣 8.5 버전을 선택한다. 이 때 Configuration에서 다운받은 톰캣의 폴더를 선택해 준다.
그리고 해당 프로젝트에서 servlet을 생성해 주는데, 패키지와 클래스 네임을 설정후 next를 누르다 보면 여러 체크박스가 뜨는 것을 볼 수 있는데, 우선 doGet체크박스만 체크하고 나머지는 지워준다.
doGet 메서드는 브라우저 요청이 되었을 때 출력을 하기위한 목적으로 응답이 들어왔을 때 처리하는 메서드 이다. 기본적으로 생성 된 doGet 메서드의 내용들을 지워주고 response.setContentType("text/html;charset=UTF-8");를 입력해 주는데, 이는 응답할 콘텐츠의 타입을 html, UTF-8로 정해주는 의미이다. 그리고
printWriter out = response.getWriter();
out.print("Hello servlet");
를 차례로 입력해 준다.
코드들을 작성한 후 src->servlet->run as->run on server->톰캣 8.5->finish를 누르면 아래와 같은 화면이 나온다.
만약 이클립스 내부 브라우저가 아닌 다른 브라우저를 이용하여 열고 싶으면 url을 원하는 브라우저에서 열거나 window->web browser->원하는 브라우저 선택 으로 기본 브라우저를 변경할 수 있다.
코드
package example;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HelloServlet
*/
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<h1>Hello Servlet</h1>");
}
}
출처 : 부스트코스 웹 프로그래밍(풀스택)
https://www.boostcourse.org/web316/lecture/254268