본문 바로가기
프로그래밍 놀이터/Web

Chap 02. 웹 프로그램 시작하기.

by 돼지왕 왕돼지 2015. 1. 1.
반응형

Chap 02. 웹 프로그램 시작하기.


* 웹 프로그래밍 절차.


1. 개발환경 구축

2. 웹 어플리케이션 코드 개발 및 테스트

3. 완성된 웹 어플리케이션을 서비스 환경에 배포.




* 개발 환경 구축


-

필요한 프로그램

JDK

웹 컨테이너 ( 톰캣, 제티, GlassFish )

코드 편집기 ( UltraEdit, AcroEdit, 이클립스 )



-

웹 컨테이너 설치.

http://tomcat.apache.org 에서 다운로드 받아 압축을 푸는 것으로 설치가 완료된다.

JAVA_HOME 이 필수 환경변수로 지정되어야 한다.



-

톰캣 폴더와 파일 설명

bin : 톰캣 실행 종료시키는 스크립트 파일이 위치 - CATALINA_HOME 환경변수를 설정하면 어디서든 바로 실행가능

startup.bat : 톰캣을 독립 프로세스( 별도 명령 프롬프트 )로 시작.

shutdown.bat : 톰캣을 종료

catalina.bat : 톰캣을 시작하거나 종료


conf : server.xml 파일을 포함한 톰캣 설정 파일이 위치


lib : 톰캣을 실행하는 데 필요한 라이브러리 (.jar) 파일이 위치


logs : 톰캣 로그 파일이 위치


temp : 톰캣이 실행되는 동안 임시 파일이 위치


webapps : 웹 어플리케이션이 위치 - 배포 위치


work : 톰캣이 실행되는 동안 사용되는 작업 파일이 위치.




* 웹 어플리케이션 개발 시작하기


-

웹 어플리케이션 디렉터리 생성

tomcat/webapps/[폴더명]


접속은 http://localhost:8080/폴더명



-

간단한 JSP 작성하기


<%@ page contentType="text/html; charset=euc-kr" %>

<%@ page import="java.util.Date" %>


<% Date now = new Date(); %>


<html>

<head><title>현재 시간</title></head>

<body>

현재시각 :  <%= now %>

</body>

</html>


<%@ page ... %> 페이지 디렉티브라고 부른다.

<%@ %>디렉티브라고 부른다.


<% %>스크립트릿이라고 부르며 Java 코드가 들어간다.


<%= => 표현식이라고 부르며, Java 로 정의된 부분의 값을 출력하는 데 사용된다.


생성된 JSP 코드의 소스를 보면, 디렉티브, 스크립트릿 부분이 공백으로 표시된다.



-

간단한 서블릿 작성하기


1. tomcat/webapps/[폴더명] 를 생성

2. 생성한 폴더에 WEB-INF 폴더를 생성하고, 그 하위에 classes 디렉터리를 생성한다.

3. 서블릿 코드 작성

4. 소스를 2 에서 생성한 classes 디렉토리에 컴파일한다. ( javac -d 사용 )

5. WEB-INF/web.xml 파일을 만들어 서블릿 정보를 설정한다.


서블릿 컴파일을 위한 classpath 설정 스크립트

set TOMCAT = [tomcat 디렉토리]

set CLASSPATH=%TOMCAT%/webapps/[폴더명]/WEB_INF/classes

set CLASSPATH=%CLASSPATH%;%TOMCAT%/lib/servlet-api.jar


// ... package, import 생략


@WebServlet( urlPatterns = "/now" )  // web container 가 알아서 web.xml 에 정보 등록

public class NowServlet extends HttpServlet{

@Override

protected void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{

response.setContentType( "text/html; charset=euc-kr" );


Date now = new Date();


PrintWriter writer = response.getWriter();

writer.println("<html>");

writer.println("<head><title>현재시간</title></head>");

writer.println("<body>");

writer.println("현재 시각: " + now );

writer.println("</body>");

writer.println("</html>");


writer.close();

}

}



-

왜 복잡한 서블릿을 사용하려고 하는가?


중간 규모 이상의 웹 사이트는 유지보수를 위해 MVC ( Model-View-Controller ) 패턴에 맞춰 개발되고 있다.


이 경우 JSP 는 뷰(View)를 담당한다. 비지니스 로직은 모델(Model) 에서 처리되고, 컨트롤러(Controller) 는 모델을 사용해서 사용자의 요청을 처리하고 그 결과를 뷰에 전달하여 뷰가 알맞은 겨로가를 생성할 수 있도록 한다. 이 때 서블릿이 Controller 의 역할을 한다.








반응형

댓글