블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total652,955
Today8
Yesterday77

'WEB-INF'에 해당되는 글 1건

  1. 2010.06.11 Servlet, 제대로 되는지 확인해보자!
JSP는 간결하다. 하지만, 그 기본이 되는 Servlet를 알지 못하고는 제대로 알 수 있다고 할 수 없다. 마치 한글 자모음을 모른채 각 단어의 뜻만 안다는 것? 많은 단어의 뜻을 알고 있으면 언어를 구사하는데는 어려움이 없지만, 풍부하고 다양한 언어를 구사할 수 없다. 자신의 생각을 나타내는대 있어서 한계를 갖게 되는 것이다.


JAVA 파일 만들기.
Servlet이 제대로 실행되는지 확인하기 위해서는 직접 서블릿 파일을 생성해 보고, 실행해보는것이 가장 빠른 방법이다. 서블릿 파일은 JAVA의 클래스들과 HTML의 태그들이 모여 하나의 파일을 만들고 있다. 톰캣이 설치되어 있는 폴더 아래 앞으로 프로젝트를 진행할 임의의 폴더를 생성하고 WEB-INF, src, classes, lib 의 폴더들을 차례로 만든다. 그리고 src 폴더안에 'HelloServlet.java'라는 파일을 새로 생성하고 다음의 코드를 입력한다.

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

public class HelloServlet extends HttpServlet {
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
        throws IOException, ServletException {   
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
       
        out.println("<html>");
        out.println("<head><title>Hello Servlet</title></head>");
        out.println("Hello Servlet!");
        out.println("<body>");
        out.println("</html>");
        out.close();
    }
}


위의 소스는 'Hello Servlet!' 라는 메시지를 출력하라는 간단한 소스이지만, 처음 JSP 나 서블릿을 접하는 사람이라면 굉장히 복잡하게 보여질 수 있다. 상세한 설명은 다음으로 미루기로 하고, 위의 코드를 컴파일 하도록 한다. java 파일을 컴파일 하기 위해서는 javac 명령어를 사용하면 된다.

$ cd Library/apache-tomcat-6.0.26/webapps/ServletExam/WEB-INF/src
$ javac -d ../classes/ HelloServlet.java

그림1. java 컴파일

HelloServlet.java 파일을 생성하였다면 터미널을 실행하고, java 파일이 저장되어 있는 src 폴더로 이동하도록 한다. 위에서와 같이 javac 명령어를 이용하여 HelloServlet.java 파일을 컴파일 하도록 한다. 위의 그림에서처럼 아무런 메시지가 나오지 않는다면 제대로 컴파일이 된것이고, classes 폴더에 class 파일이 생성된것을 확인할 수 있을 것이다. javac 명령어는 자바파일을 컴파일을 하는 명령어이다. 여기에 -d 옵션을 주면 원하는 장소에 컴파일한 파일을 생성하게 된다.


web.xml 파일 추가하기.
web.xml 파일은 컴파일된 클래스 파일이 서블릿파일임을 알려주고, 그에 필요한 설정정보들이 포함되어 있는 중요한 파일이다. 아무리 폴더구성을 만들고, java 파일과 컴파일된 class 파일을 만들었다고 해도 서블릿 클래스 파일에 대한 정보를 주지 않는다면 컨테이너는 그것을 확인할 길이 없다. web.xml 은 직접 작성해야 하지만, 처음에 만들기에는 어려움이 있고, 대부분 비슷한 형식을 가지고 있기 때문에 이미 만들어져 있는 파일을 복사해서 조금만 수정하여 사용해도 된다. 톰캣폴더 -> webapps -> ROOT -> WEB-INF 의 폴더에 들어가게되면 web.xml 파일이 있는것을 볼 수 있다. 'web.xml' 파일을 복사해서 ServletExam -> WEB-INF 폴더에 붙여넣기를 한후 'web.xml' 파일을 텍스트편집기 프로그램으로 수정하도록 한다.

<web.xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
    ... ...
-->

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
    <display-name>Welcome to Tomcat</display-name>
    <description>
        Welcome to Tomcat
    </description>
 
    <servlet>
        <servlet-name>ServletExam</servlet-name>
        <servlet-class>ServletExam</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletExam</servlet-name>
        <url-pattern>/test</url-pattern>
    </servlet-mapping>
  </web-app>

web.xml 파일을 보면 위와 같이 되어 있는 것을 볼 수 있는데, '</description>' 와 '</web-app>' 사이에 굶은 글씨 부분을 써 넣도록 한다. <servlet> 안의 <servlet-name> 태그안에 있는 이름은 꼭 클래스명과 동일하게 하지 않아도 되지만, <servlet-mapping> 안의 <servlet-name>태그의 이름과는 같아야 한다. <servlet-class> 태그안의 클래스 이름은 컴파일한 클래스명과 동일해야 한다. <url-pattern> 태그 안에 지정한 '/test' 는 서블릿에 접근하기 위한 url을 의미한다. 'web.xml' 파일을 저장하고 톰캣서버를 실행한 상태에서 'http://localhost:8080/ServletExam/test' 입력하면 다음과 같은 서블릿 페이지를 볼 수 있다.


그림2. 서블릿 페이지

간단하게 'Hello Servlet!' 를 출력하는 서블릿을 만들고 실행해 보았다. 간단할 수도, 복잡할 수도 있겠지만, JSP 를 시작하는데 있어서 서블릿은 기초지식과도 같다. 이제 기초를 알았으니, JSP의 세계에 떨리는 한걸음은 내딛은 것이다.

Posted by seanhigher

댓글을 달아 주세요

최근에 달린 댓글

글 보관함