BLOG main image
분류 전체보기 (65)
JSP (6)
Android (1)
ASP.NET (0)
MSSQL (4)
PHP (18)
ASP (11)
오픈 API (1)
HTML (2)
JavaScript (0)
Windows Programming (8)
컴퓨터교양 (14)
객체 지향 (0)
리뷰 및 생각 (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2013. 10. 10. 17:05
[JSP]

웹 어플리케이션 발전 순서
웹 통신 초기에는 정적인 HTML 문서만 서비스함(과학분야 / 대학교 등에서 주로 사용됨)
항상 똑같은 정적인 문서에 동적인 표현이 필요하게 되어 CGI(Common Gateway Interface)가 동적으로 작성한 HTML을 서비스함
CGI의 시스템 퍼포먼스 문제와 느린 개발 속도 때문에 ASP, PHP, JSP & Servlet 같은 스크립트 방식 엔진이 등장함
첫 직장 최고 개발 팀장왈 ‘CGI 노가다 안해봤지? PHP 부터 하는걸 축복으로 생각해.’


CGI에 관한 자주 있는 오해
이름에서 알 수 있듯이, CGI는 어디까지나 인터페이스이며, 특정 플랫폼에 의존하지 않고, 웹 서버 등으로부터 외부 프로그램을 호출하는 조합을 가리킨다.
(출처 : http://ko.wikipedia.org/wiki/%EA%B3%B5%EC%9A%A9_%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4_%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4)
다시 말해 각각의 개발사가 필요에 의해 자신들만의 cgi 프로그램을 만든 것이고, 이를 통칭하여 cgi라고 한다.
특정 벤더가 만든 메이커 소프트웨어가 아니란 말이다.
요청을 분석하여 Perl, C, Python 등의 언어로 작성된 CGI 프로그램에 집어 넣으면, 요청에 따라 동적인 HTML을 작성하여 뱉어 낸다. 이것을 웹서버가 응답시킴

 

스크립트 방식 엔진에 사용되는 언어
ASP : 주로 VBScript
PHP : PHP
JSP : java


참고
http://www.cyberenter.com/study/00001_jsp.html

2013. 10. 10. 16:43
[JSP]

브라우저 <-------> 서버
            HTTP 통신
      TCP/IP 위에서 돌아감 (TCP : 노드 사이에서 파일을 보냄, IP : 호스트 사이에서 패킷을 보냄)


브라우저는
HTTP.GET 메소드
HTTP.POST 메소드 등으로 서버에게 요청(Request) 함
기타 HEAD, TRACE, PUT, DELETE, CONNECT 메소드가 있다.

요청의 주요 구성요소

구분 요소
요청라인 HTTP 메소드명 POST
  서버 자원경로 /bbs/read.jsp
  파라미터(GET일 경우) ?id=1&page=1
  HTTP 프로토콜 버전 HTTP / 1.1
요청헤더 Host,
User-Agent,
Accept,
Accept-Language,
Accept-Encoding,
Accept-Charset,
Keep-Alive,
Connection
등의 상세정보
 
메시지몸체
(POST일 경우)
id=1&page=1  

 


서버는
HTML이 포함된 HTTP 응답(Response)을 함

응답의 주요 구성요소

구분 요소 설명
응답헤더 상태코드 HTTP / 1.1 200 OK 요청 성공 여부
  컨텐츠 타입
(MIME 타입)
text/html

컨텐츠를 브라우저가 어떻게 해석 할 것인가?
텍스트인지, 그림인지, HTML인지 등

몸체 컨텐츠 <html>…</html> HTML 코드, 이미지 등

 

참고
http://ko.wikipedia.org/wiki/HTTP
http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol 문서의 Client request, Server response 부분

2013. 10. 10. 08:41
[JSP]

개요
웹 어플리케이션을 서비스 하기 위해서는
클라이언트 브라우저와 통신 할 웹 서버 : apache
웹 서버로 부터 넘겨 받은 요청을 효율적으로 처리해줄 웹 컨테이너 : tomcat
웹 컨테이너 관리하에 Servlet과 JSP를 실행해줄 엔진 : JRE(Java Runtime Enviroment)
등을 설치해야 합니다.

웹 어플리케이션 개발을 하기 위해서는 
java 소스를 컴파일해줄 javac.exe 등 여러 개발 도구가 들어 있는 : JDK(Java Development Kit)
를 설치해야 합니다.

JDK 설치

먼저 http://denisoh.tistory.com/entry/JAVA-JDK-설치-환경-변수-설정 이 게시물을 따라하세요.

apache-tomcat 설치 – 통합본 입니다.
http://tomcat.apache.org/

8.0은 RC 버전이라서 7.0을 다운로드 받았습니다.

자신의 시스템에 맞는 버전을 다운로드 합니다.
적당한 곳에 압축을 풀고, bin\startup.bat 으로 서버를 실행 합니다.
http://localhost:8080 이 열리는지 테스트 해봅니다.
* startup.bat 는 바탕화면에 단축 아이콘으로 빼놓으면 편합니다.

 

JAVA 웹 개발환경 테스트
apache-tomcat\webapps에 test 라는 폴더를 만듭니다.


test 폴더에 WEB-INF 라는 폴더를 만듭니다.



WEB-INF 폴더에 classes라는 폴더를 만듭니다. 또한 web.xml, Servlet1.java 라는 파일을 만듭니다.



web.xml, Servlet1.java 에 아래와 같이 각각 코딩 합니다.

<Servlet1.java> 이 줄은 코딩하지 않습니다.
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class Servlet1 extends HttpServlet
{
    public void doGet (HttpServletRequest request,
                        HttpServletResponse response)

    throws IOException {
            PrintWriter out = response.getWriter();
            java.util.Date today = new java.util.Date();
            out.println("<html>"
                      + "<body>"
                      + "<br>" + today
                      + "</body>"
                      + "</html>"
            );
        }
}

<web.xml> 이 줄은 코딩하지 않습니다.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

    <servlet>
        <servlet-name>Servlet1 Servlet</servlet-name>
        <servlet-class>Servlet1</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>Servlet1 Servlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>


커맨드 창을 하나 열어 소스가 있는 경로로 이동합니다.
cd "C:\apache-tomcat-7.0.42\webapps\test\WEB-INF”

Servlet1.java 를 컴파일 합니다.
javac -classpath "C:\apache-tomcat-7.0.42\lib\servlet-api.jar" -d classes Servlet1.java
아무런 메시지도 나오지 않았다면 컴파일이 성공한 겁니다.
컴파일에 성공했다면 아까 만들어둔 classes 폴더를 열어 보면 컴파일된 Servlet1.class 가 있을 겁니다.

브라우저에 http://localhost:8080/test/ 을 열어 확인합니다.

주의 : 실제 프로젝트는 위와 같은 폴더 구조를 사용하지 않습니다. 이건 어디까지나 구동 테스트 입니다.
         또한 tomcat/webapps 에 바로 코딩하는 일도 하지 않습니다.



web.xml 설명