'JSP/JSP 수업'에 해당되는 글 6건

  1. 2012.10.05 JSP 수업 DB부분
  2. 2012.09.13 네번째 수업.
  3. 2012.09.11 jsp 세번째수업
  4. 2012.09.07 두번째 수업 (추가정리).
  5. 2012.09.07 두번째 수업.
  6. 2012.09.03 첫번째 수업.
posted by changhozz 2012. 10. 5. 20:25

JSP에서 JDBC 프로그래밍하기.

JDBC( Java DataBase Connectivity)는 자바에서 데이터베이스와 관련된
작업을 처리할 수 있도록 도와주는 API이다.

JDBC의 구조는

자바어플리케이션    ㅡ> JDBC API  ㅡ> JDBC드라이버  ㅡ> 데이터베이스 
(우린 JSP일테고)

이런식이다.

각각의 DBMS는 자신에게 알맞은 JDBC 드라이버(클래스 형태로 존재하면 일반적으로 Jar파일로 제공됨)를 제공하고 있으며, JDBC API는 JDBC 드라이버를 거쳐 데이터베이스와 통신을 한다.

나같은 경우는 mysql-connector-java-5.1.22.zip파일을 받았는데
압축을 풀게되면 mysql-connector-java-5.1.22-bin.jar 파일이 있다.
이 jar파일을 원하는프로젝트/WEB-INF/lib 디렉터리에 복붙하면된다.

------------------------------------------------------------------------------------

JDBC 프로그래밍의 코딩 스타일

JDBC 프로그램의 일바너인 실행 순서 ㅡ>

1.JDBC 드라이버로딩
2.데이터페이스 커넥션 구함
3.쿼리 실행을 위한 Statement 객체 생성
4.쿼리 실행
5.쿼리 실행 결과 사용
6 Statement 종료
7.데이터베이스 커넥션 종료

 

 

// 1. JDBC 드라이버 로딩

Class.forName("com.mysql.jdbc.Driver");

Connection conn = null; Statement stmt = null; ResultSet rs = null;

    try {

        // 2. 데이터베이스 커넥션 생성

     conn = DriverManager.getConnection(""jdbc:mysql://localhost:3306/chap12", "user", "pass");

        // 3. Statement 생성

        stmt = conn.createStatement();

        // 4. 쿼리 실행

        rs = stmt.executeQuery("select * from MEMBER order by MEMBERID");

        // 5. 쿼리 실행 결과 출력

        while(rs.next()) {

             String name = rs.getString(1);

        }

    } catch(SQLException ex) {

        ex.printStackTrace();

    } finally {

        // 6. 사용한 Statement 종료

        if (rs != null) try { rs.close(); } catch(SQLException ex) {}

        if (stmt != null) try { stmt.close(); } catch(SQLException ex) {}

        // 7. 커넥션 종료

        if (conn != null) try { conn.close(); } catch(SQLException ex) {}

    }

 

 

 

DBMS와의 통신을 위한 JDBC 드라이버.

여기서 Class.forName("여기안에는 JDBC드라이버 클래스의 완전한 이름"); 이들어간다.
나같은 경우는 MySQL을 사용하므로 MySQL에 대한 JDBC 드라이버에 해당하는 클래스를 입력하면된다. 그것이 바로 com.mysql.jdbc.Driver 이다.

---------------------------------------------------------------------------------------------

데이터베이스 식별을 위한 JDBC URL

데이터베이스를 구분할 때에도 URL과 비슷한 형식을 취하는 JDBC URL을 사용한다.
MySQL JDBC 드라이버는 다음과 같은 JDBC URL을 사용한다.

jdbc:mysql://HOST[:PORT]/DBNAME[?param=value&param1=value2&...]
여기서 [HOST]는 MySQL 서버의 호스트 주소를 나타내며, [DBNAME]은 데이터베이스 이름을 나타낸다. [PORT]는 MySQL 서버가 사용하는 포트 번호를 나타낸다. JDBC URL뒤에 몇 가지 설정 정보를
추가할 수 있으며, 표현 방식은 파라미터와 동일하다.

ex)
jdbc:mysql://locallhost:3303/test(DB명임)?useUnicode=true&characterEncoding=euckr

MySQL JDBC 드라이버가 MySQL 서버와 데이터를 주고 받을 때 사용되는 캐릭터 셋을
올바르게 지정하지 않을 경우 한글이나 한자와 같은 글자가 잘못된 값으로 데이터베이스에
저장될 수 있다. 따라서 MySQL에서 한글 데이터를 올바르게 하기 위해서는 위에와 같이
추가 파라미터를 이용해서 캐릭터 셋을 알맞게 지정해 주어야한다.

---------------------------------------------------------------------------------------------

데이터베이스 커넥션

데이터베이스 프로그래밍을 하기 위해서는 먼저 데이터베이스와 연결된 커넥션을 구해야한다.
java.sql.Connection 클래스가 데이터베이스 커넥션을 나타내며, 커낵션은 java.sql.DriverManager
클래스가 제공하는 getConnection() 메서드를 사용해서 구할 수 있다.
DriverManager 클래스는 다음과 같은 두 개의 getConnection()메서드를 제공하고 있다.

DriverManager.getConnection(String jdbcURL)
DriverManager.getConnection(String jdbc URL, String user, String password)

JDBC URL과 데이터베이스 사용자 계정/아이디를 올바르게 지정했다면, DriverManager.getConnection() 메서드는 Connection 객체를 리턴한다.
리턴받은 Connection 객체를 사용해서 필요한 작업을 시작할 수 있는 것 이다.

*여기서 주의할 점*
Connection 객체를 다 사용한 뒤에는 close() 메서드를 호출하여 Connection 객체가 사용한 시스템
자원을 반환해 주어야 한다. 그렇지 않을 경우 시스템 자원이 불필요하게 소모되어 커넥션을 구할 수 없는 상황이 발생할 수도 있다.
Connection을 줄때 try문으로 묶은뒤 finally에서 close()를 사용하여 닫아주면된다.

--------------------------------------------------------------------------------------

Statement를 사용한 쿼리 실행

Connection 객체를 생성한 후에는 Connection으로부터 Statement를 생성한 뒤에 쿼리를 실행할 수 있다. Statement는 다음과 같이 Connection.createStatement() 메서드를 사용하여 생성할 수 있다.

Statement stmt = conn.createStatement();
여기서 conn은 Connection의 객체임.

위와 같이 Statement 클래스를 생성한 다음에는 다음의 두 메서드를 사용해서 쿼리를 실행 할 수 있다.

(리턴값 : ResultSet) executeQuery(String query) : SELECT 쿼리를 실행한다.     
(리턴값 :int)  executeUpdate(String query) : INSERT , UPDATE, DELETE 쿼리를 실행한다. 

executeUpdate()메서드는 리턴값이 int인 이유는 변경된 (또는 삽입된) 레코드의 개수를 리턴하기 때문

 

 

'JSP > JSP 수업' 카테고리의 다른 글

네번째 수업.  (0) 2012.09.13
jsp 세번째수업  (0) 2012.09.11
두번째 수업 (추가정리).  (0) 2012.09.07
두번째 수업.  (0) 2012.09.07
첫번째 수업.  (0) 2012.09.03
posted by changhozz 2012. 9. 13. 21:21

6장 기본객체와 영역.

우선 JSP의 기본 객체로는
request, response, pageContext, session, application, out, config,
page, exception 등이 있는데,

여기서 exception 객체는 에러페이지에서만 사용가능하다.
나머지 객체들은 일반 jsp페이지에서 사용가능.

request객체의 실제타입에는 javax.servlet.http.HttpServletRequest 와
javax.servlet.ServletRequest 있는데 이 둘은 버전에 따라 사용되며,
현재는 전자를 쓴다.


-------------------------out 기본 객체-------------------------

write() 메서드는 스트림출력을 할때 사용되고,
print() 메서드는 단순 콘솔출력을 할때 사용된다.

JSP페이지가 생성하는 모든 내용은 out 기본 객체를 통해서 전송된다.
JSP 페이지 내에서 사용되는 비스크립트 요소들(일반적인 HTML 코드 내지 텍스트)은
out 기본 객체에 그대로 전달되며, 값을 출력하는 표현식의 결과값 역시out  기본객체에 전달된다.

ex) out.println("<html>");
     out.println("<head>");
    또는
   out.println("안녕하세요");

-----------------------------pageContext 기본객체-----------------------------

pageContext가 제공하는 기본 객체 접근 메서드

 

메서드 

리턴타입 

설명 

getRequest() 

ServletRequest 

request 기본 객체를 구한다. 

getResponse() 

ServletResponse 

response 기본 객체를 구한다. 

getSession() 

HttpSession 

session 기본 객체를 구한다. 

getServletContext() 

ServletContext 

application 기본 객체를 구한다. 

getServletConfif() 

ServletConfig 

config 기본 객체를 구한다. 

getOut() 

JspWriter 

out 기본 객체를 구한다. 

getException() 

Exception 

exception 기본 객체를 구한다. 

getPage() 

Object 

page 기본 객체를 구한다. 

마찬가지로 getException() 메서드는 JSP페이지가 에러 페이지인 경우에만 의미가 있다.

 

-------------------------application 기본객체-----------------------------

application 기본 객체는  웹 어플리케이션과 관련된 기본 객체로써,
특정 웹 어플리케이션에 포함된 모든 JSP페이지는 하나의 application 기본 객체를 공유하게된다.

즉 제일 큰 덩어리를 뜻한다.

WEB-INF\web.xml 파일에서 웹 어플리케이션 전체에서 사용할 수 있는 초기화 파라미터를
<context-param> 태그를 사용하여 추가할 수 있다.

application 기본 객체의 웹 어플리케이션 초기화 파라미터 관련 메서드

 

메서드 

리턴 타입 

설 명 

getInitParameter(String name) 

String 

이름이 name인 웹 어플리케이션 초기화 파라미터의 값을 읽어 온다. 존재하지 않을 경우 null을 리턴한다. 

getInitParameterNames() 

Enumeration 

웹 어플리케이션 초기화 파라미터의 이름 목록을 리턴한다. 


--------------------JSP 기본 객체와 영역----------------------

PAGE 영역 : 하나의 JSP 페이지를 처리할 때 사용되는 영역
REQUEST영역: 하나의 HTTP 요청을 처리할 때 사용되는 영역(form.jsp 와 result.jsp처럼 요청을 하는
관계를 합쳐서 REQUEST 영역이라 함.)
SESSION 영역: 하나의 웹 브라우저와 관련된 영역(브라우저하나당 SESSION영역도 하나.)
APPLICATION 영역 : 하나의 웹 어플리케이션과 관련된 영역.(JSP의 모임.)

--------------------------기본 객체의 속성(Attribute)사용하기-----------------------

 

메서드 

리턴타입 

설명 

setAttribute(String name,
                 Object value) 

void 

이름이 name인 송성의 값을
value로 지정한다. 

getAttribute(String name) 

Object 

이름이 name인 속성의 값을 구한다. 지정한 이름의 속성이 존재하지 않을 경우 null을 리턴한다. 

removeAttribute(String name) 

void 

이름이 name인 속성을 삭제한다. 

getAttributeNames() 

java.util.Enumeration 

속성의 이름 목록을 구한다.
(pageContext 기본 객체는 이메서드를 제공하지 않는다.) 

형변환 autoBoxing unBoxing 주의!!

 

7장 페이지 모듈화와 요청 흐름 제어

-----<jsp:include> 액션 태그를 이용한 페이지 모듈화----

<jsp:include> 액션 태그는 지정한 페이지를 태그가 위치한 부분에 포함시킬 때 사용된다.

----include 디렉티브를 이용한 중복된 코드 삽입----

include 디렉티브도 <jsp:include>와 마찬가지로 지정한 페이지를 현재 위치에 포함시켜
주는 기능을 제공한다. 하지만, <jsp:include>완느 달리 include 디렉티브는 포함되는 방식에서 큰 차이를 보인다. <jsp:include>는 다른 JSP로 흐름을 이동시켜 그 결과물을 현재 위치에 포함시키는 방식인 반면, include 디렉티브는 다른 파일의 내용을 현재 위치에 삽입한 후에 JSP파일을 자바 파일로
변환하고 컴파일 하는 방식이다.

ex)   <%@ include file = "포함할파일"%>

'JSP > JSP 수업' 카테고리의 다른 글

JSP 수업 DB부분  (0) 2012.10.05
jsp 세번째수업  (0) 2012.09.11
두번째 수업 (추가정리).  (0) 2012.09.07
두번째 수업.  (0) 2012.09.07
첫번째 수업.  (0) 2012.09.03
posted by changhozz 2012. 9. 11. 21:42

파라미터 request될때 String으로 넘어온다.

if esle문 말고 switch 문으로 해라.

 

5장 필수 이해 요소


서블릿에 요청 전달하는 것은 순수 자바를 말함.

java ㅡ> 실행코드방식
jsp ㅡ> 스크립트방식

was(톰캣)가 실행 될때 자바가 실행됨.

톰캣 ㅡ>

jsp란 확장자가 있으면 자바 코드가 없어도 class파일을 떨군다.

 

출력 버퍼 ------

jsp가 생성한 응답 결과를 임시로 저장

출력 결과를 버퍼에 저장하고 버퍼가 꽉 차게되면 내뱉는다.
버퍼가 꽉 안찼어도 로딩이 다 됐다면 내뱉는다.

오토플러시가 투르 일때!!
팔스면 꽉찼을때 오류 띄움.


buffer 속성  보통 8kb로 설정함.8kb 성능이좋음.

버퍼 ㅡ> 잠시 거쳐가는 임시 저장소. 컨트롤 해줌.


--------------------------------------------------
웹 어플리케이션디렉터리 구성
src ㅡ> 자바만 들어감 (자바소스 저장됨.)
webcontent ㅡ> META_INF
           ㅡ> WEB_INF      web.xmlㅡ>설정파일
                   ㅡ>lib 
      ㅡ>classes               
 web  ㅡ> 패키지관리를 잘해라. 지금 부터 연습. 패키기 구조 잡기.

원랜 bin폴더에 떨궈지는데
빌드패스를 classes로 바꿔라.!!!!!!!!!!!

빌드가 (컴파일이)다시 필요한 파일들을 classes에 모아둬야함.
java파일이나 server.xml이나 설정파일등.

앤트빌드 ㅡ> 수동으로 컴파일.


---------------------------------------------------------
war    ㅡ> 웹 어플리케이션 archieve

우리는 servel.xml 설정으로 해줘서 webapps를 통하지않고
바로 접근하게 한다.

 

----------------------------------------------------
목요일 (기본객체 읽어오기.)
메서드  같은거 보고오기.

 

----------------------------------------------------------------------------------------

1) JSP의 처리과정
웹 컨테이너는 JSP에 해당하는 서블릿이 존재하지 않을 경우
JSP페이지를 컴파일 하여 서블릿을 생성한 후, 생성된 서블릿을
사용하여 클라이언트의 요청을 처리한다.
JSP에 해당하는 서블릿이 존재하는 경우엔 곧바로 서블릿을
사용하여 클라이언트의 요청을 처리한다.

즉, JSP 페이지를 요청할 때에는 JSP를 직접적으로 실행하는 것이
아니라, JSP를 자바 소스 코드로 변환을 한ㄷ 뒤 컴파일 해서 생성된
서블릿을 실행하는것 이다. 여기서 JSP 페이지를 자바 코드로
변경하는 단계를 "변환 단계"라고 하며, 자바 코드를 서블릿 클래스로
변경한는 단계를 "컴파일 단계"라고 한다.

2) 출력 버퍼와 응답
JSP페이지가 생성하는 출력 내용을 곧바로 웹 브라우저에 전송하지 않고
버퍼에 저장했다가 한꺼번에 전송함으로써 생기는 장점은 다음과 같다.
-데이터 전송 성능이 향상된다.
-곧바로 웹 브라우저로 전송되지 않기 때문에, JSP 실행 도중에 버퍼를 비우고
새로운 내용을 보여줄 수 있다.
-버퍼가 다 차기 전까지는 헤더를 변경할 수 있다.

버퍼 설정.
<%@ page buffer = "8kb"%>
보통 8kb로 설정한다고함.(가장 높은 성능을 보임.)

"none" 일경우엔 내용을 바로 웹 브라우저에 전송.
page디렉티브 속성중 autoFlush는 true, false를 속성값으로 갖는다.
true : 버퍼가 다 찼을 경우 버퍼를 플러시하고 계속해서 작업을 진행
false: 버퍼가 다 찼을 경우 예외를 발생시키고 작업을 중지.

3) 웹 어플리케이션 디렉터리 구성과 URL 매핑

WEB-INF = 웹 어플리케이션 설정 정보를 담고 있는 web.xml 파일이 위치한다.
WEB-INF\classes = 웹 어플리케이션에서 사용하는 클래스 파일이 위치한다.
WEB-INF\lib = 웹 어플리케이션에서 사용하는 jar파일이 위치한다.

4) 웹 어플리케이션의 배포
개발된 웹 어플리케이션을 실 서버에 배포하는 방법은 크게 다음의 두 가지가 있다.
-대상 디렉터리에 직접 복사
-war 파일로 묶어서 배포

'JSP > JSP 수업' 카테고리의 다른 글

JSP 수업 DB부분  (0) 2012.10.05
네번째 수업.  (0) 2012.09.13
두번째 수업 (추가정리).  (0) 2012.09.07
두번째 수업.  (0) 2012.09.07
첫번째 수업.  (0) 2012.09.03
posted by changhozz 2012. 9. 7. 19:36

일반적인 JSP 코드는 JSP페이지에 대한 정보를 입력하는 설정 부분과 실제로 HTML 문서를
생성하는 생성 부분으로 나눌 수 있다.
JSP의 설정 부분에는 JSP 페이지에 대한 정보가 위치하며, 일반적으로 다음과 같은 정보를 입력한다.

●JSP페이지가 생성하는 문서의 타입.
●JSP페이지에서 사용할 커스텀 태그
●JSP페이지에서 사용할 자바 클래스 지정 (import)

<%@page...%>   ㅡ> page 디렉티브라고 함.

<%@ page import = "java.util.Calendar, java.util.Date"%> 이런식으로 한번에 속성값을 써도 됨.(콤마)

page 디렉티브 속성중  trimDirectiveWhitespaces는
디렉티브나 스크립트로 인해 발생한 공백 문자가 응답 결과에 포함되지 않게 해준다.
즉 jsp페이지를 작성한후 소스보기를 하면 자바내용이 안보이게 되는데
이부분은 원래 공백으로 나타나게된다.
이 공백을 없애 준다는것.
사용법 ㅡ>
<%@ page trimDirectiveWhitespaces = "true" %>

 

JSP가 제공하는 디렉티브

 

디렉티브 

설명 

page 

JSP 페이지에 대한 정보를 지정한다. JSP가 생성하는 문서의 타입, 출력 버퍼의 크기, 에러 페이지 등 JSP페이지에서 필요로 하는 정보를 입력한다.

taglib 

JSP페이지에서 사용할 태그 라이브러리를 지정한다. 

include 

JSP페이지의 특정 영역에 다른 문서를 포함시킨다. 

 

 

--------------------------------심화--------------------------------------

*액션태그 - JSP 페이지에서 자바 코드 등의 스크립트 언어를 사용하지 않고도 다른 페이지의
서블릿이나 자바빈의 객체에 접근 할 수 있도록 태그를 이용해 구현된 기능을 말함.

액션태그 중의 하나인 <jsp:include>는
특정한 페이지의 실행 결과를 현재 위치에 포함시킬 때 사용 된다.

ex) <jsp:include page="header.jsp" flush="true" />

커스텀태그  = JSP코드에서 중복되는 것들을 모듈화 하거나 또는 스크립트 코드를
사용할 때의 소스 코드의 복잡함을 없애기 위해서 사용된다.

JSTL(JavaServer Pages  Standard Tag Library) - 커스텀 태그 중에서 자주 사용되는 것들을
별도로 표준화한 태그 라이브러리.

 

--------------------------------------------------------------------

 

 

 

 

 

'JSP > JSP 수업' 카테고리의 다른 글

JSP 수업 DB부분  (0) 2012.10.05
네번째 수업.  (0) 2012.09.13
jsp 세번째수업  (0) 2012.09.11
두번째 수업.  (0) 2012.09.07
첫번째 수업.  (0) 2012.09.03
posted by changhozz 2012. 9. 7. 14:34

-JSP의 구성요소.-

1).디렉티브
▶사용법  <%@ 디렉티브이름 속성1="값1"; 속성2="값2" %>
ex )  <%@ page contentType="text/html"%>
text/html 말고도 여러 가지가 있는데 이것을 MIME타입이라고 한다.
▶제공 디렉티브 
-page : JSP페이지에  대한 정보를 지정.
(문서의 타입, 출력 버퍼의 크기, 에러 페이지 등 정보 지정).
--page의 주요 속성
---contentType : JSP가 생성할 문서의 타입을 지정
---import  : JSP 페이지에서  사용할 자바 클래스를 지정
---session  : JSP페이지가 세션을 사용할 지의 여부를 지정.
---info : JSP 페이지에 대한 설명을 입력한다.
---errorPage  :  에러가 발생할 때 보여줄 페이지를 지정.
---isErrorPage : 에러 페이지인지의 여부를 지정.
-taglib : 사용할 태그 라이브러리를 지정.
-include : 다른 문서를 포함.
모두 한번에 정의 할 수 있음.
<%@ page…%>
<%@ taglib…%>
<%@ include…%>

2).스크립트 요소
▶표현식 (값을 출력) - 리턴타입이 있는 경우엔 표현식을 써야함.
사용법  <%= 출력할 값 %>
<%= author %> 와 ${author} 는 같다.
▶스크립트릿 (자바 코드를 실행)
사용법  <% 자바코드 %>
▶선언부 (자바 메서드 정의) 
사용법  <%!  메서드   %>

3).기본객체(=내장객체)
별도 선언없이(iterator처럼 new 연산자 없이) 사용할 수 있음.
▶주요 기본 객체
★ request   -  요청 정보를 구할 때 사용 (요청시 보이진 않지만 , 헤더 부분도 딸려감.)
주요 기능
-클라이언트(웹 브라우저)와 관련된 정보 읽기 기능
-서버와 관련된 정보 읽기 기능
-클라이언트가 전송한 요청 파라미터 읽기 기능
-클라이언트가 전송한 요청 헤더 읽기 기능
-클라이언트가 전송한 쿠키 읽기 기능.
-속성처리 기능
response  -  응답과  관련된 설정 (헤더, 쿠키 등) 시 사용.
out  -  직접 응답을 출력할 때 사용.
session -  세션관리에 사용. (기록 같은걸로 보면 됨.)
★ response  -   웹 브라우저에 전송하는 응답 정보 설정
주요 기능
-헤더 정보 입력
- 리다이렉트 처리
방법 ㅡ>  response.sendRedirect (String location)

4)파라미터를 전송하는 방식
▶GET 방식 - 쿼리문자열로 전송
ex) ?이름1=값1&이름2=값2       ㅡ> 보안상의 문제가있음.

▶POST방식 - 요청 몸체 데이터로 전송  (헤더 바디안에 기술.)

▶파라미터 값의 인코딩/디코딩
웹 브라우저에서 '김창호'란 파라미터 값을 넘기게되면 웹브라우저는 '김창호'를 인코딩하여
웹 서버로 넘기게되면 웹 서버는 다시 인코딩된 '김창호'(%E3%F12% 이런식으로 인코딩됨.)를
다시 디코딩해야한다.
-방법.
<%
request.setCharacterEncoding("euc-kr");
String name = request.getParameter("name");
%>

 

 

'JSP > JSP 수업' 카테고리의 다른 글

JSP 수업 DB부분  (0) 2012.10.05
네번째 수업.  (0) 2012.09.13
jsp 세번째수업  (0) 2012.09.11
두번째 수업 (추가정리).  (0) 2012.09.07
첫번째 수업.  (0) 2012.09.03
posted by changhozz 2012. 9. 3. 03:27

주요내용 , JSP란 무엇인가.

             리눅스 설정.

실행코드방식 -  컴파일, (요청이 많을시 실행코드방식이 더 빠르다.)

스크립트 방식- 바로 번역 후 실행  (요청이 적을시 스크립트 방식이 더 빠르다.)

JSP란 동적인 웹 애플리케이션을 만들 수 있는 방법을 제공하며, 서블릿을 기반으로 웹 애플리케이션을 만드는 작업을 간단하게 처리할 수 있도록 해 주는 스크립트 언어이다. JSP를 스크립트 언어라고 하는 이유는 JSP로 작성된 코드가 실행 시에 서블릿 파일로 자동 변환되어 컴파일 된 후 실행되기 때문이다. 그래서 JSP를 서버 측 스크립트 언어라고 한다.

JSP를 한 문장으로 정의하자면, HTML 내에 자바 코드를 삽입하여,

웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 언어이다.

JSP의 동작 구조를보자면, 웹  브라우저에서 JSP  페이지를 웹 서버로  요청하게되면,
웹 서버는 JSP에 대한요청을 웹 컨테이너로 넘기게 된다. 이러한 요청을 받은 웹 컨테이너는
해당 JSP페이를 찾아서 서블릿(.java파일 생성)으로 변환하는 과정을 거친 후 컴파일(.class파일 생성)을 하게 된다.  컴파일된 서블릿(.class)은 최종적으로웹 브라우저에 응답되어져 사용자는 응답 결과를 보게된다.
  이러한 과정은 JSP페이지가 최초로 요청되었을때 단 한번만 실행된다.
 이후 같은 페이지에 대한 요청이 있으면 변환된 서블릿 파일로 서비스를 처리한다.

 

Web 1.0  =  Text ㅡ> HTML ㅡ> Homepage 형식으로 운영자에 의한 일방적인 소통이다.

Web 2.0 = 대화형 소통으로 사용자 또한 운영자와 주고받을 수 있다.

Web 3.0  = 컴퓨터가 인공지능이 가능하여,  연관된 관계를 설정할 수 있다.
               시멘틱 ㅡ> 삼단논법처럼 관계와 관계를 통하여 추론하는것. ex) 온톨로지

--------------------------------------------------------------------------------------------

리눅스 -

cygwin을 설치하여, 리눅스 명령어에 대하여 배움.

ls -la   ㅡ> 현재 경로에 있는 파일 및 폴더 목록을 보여줌.

cd 원하는경로  ㅡ> 원하는 경로로 이동

cd . . ㅡ> 상위 경로로 이동.

cp ./파일명 ./경로      ㅡ> 원하는 경로에 파일을 복사함.

mv ./파일명 ./경로   ㅡ> 원하는 경로로 파일을 이동함.

mkdir   ㅡ> 디렉토리 설정

vim에서  i ㅡ>  편집모드

esc ㅡ> 명령모드

:wq  ㅡ> 저장후 종료

:q!  ㅡ>  저장후 강제종료

:q  ㅡ> 강제종료

 

과제 : 금일 수업 한 내용을 vim으로 homework란 폴더를 만 든후, 금일날짜.txt에 저장하는 것. 

 

▣ JSP(Java Server Page)

JSP 는 동적인 웹 애플리케이션을 만들 수 있는 방법을 제공하며, 서블릿을 기반으로 웹 애플리케이션을 만드는 작업을 간단하게 처리할 수 있도록 해 주는 스크립트 언어이다. JSP를 스크립트 언어라고 하는 이유는 JSP로 작성된 코드가 실행 시에 서블릿 파일로 자동 변환되어 컴파일 된 후 실행되기 때문이다. 그래서 JSP를 서버 측 스크립트 언어(Server Side Script Language)라고 한다.

□ JSP(Java Server Page)
◇ 서블릿 기반의 동적 웹 애플리케이션을 구현하기 위한 언어
◇ 웹 + 자바 프로그래밍 + 스크립트

JSP를 한 마디로 정의하면, JSP는 자바 기반의 동적 웹 애플리케이션을 구현하기 위한 스크립트 언어이다.

▣ JSP의 등장

서 블릿은 앞서 이야기했다시피 완전한 하나의 자바 애플리케이션이다. 따라서 정적인 HTML 코드도 프로그램적으로 서블릿 코드에 삽입되어야 하기 때문에 디자인과 프로그램 코드의 분리가 어려우며, 다른 웹 프로그래밍 언어에 비해 복잡하고 번거롭다. 이러한 단점을 해결하고 프로그래머에게 편의성을 제공하고자 JSP가 나오게 되었다.

□ JSP의 등장
◇ 서블릿은 디자인과 프로그램 코드의 분리가 어렵고, 다른 웹 프로그래밍 언어에 비해 복잡하고 번거롭다.
◇ 프로그래머에게 편의성을 제공하기 위해 JSP가 등장했다.

JSP는 실행 시에 서블릿 코드로 자동 변환되어 컴파일된 후 실행된다. 결국 JSP도 서블릿이라는 이야기이다.

▣ 왜 서블릿 대신에 JSP를 사용하는가?

JSP와 서블릿이 동일하다면, JSP도 결국 서블릿인데 왜 JSP를 더 많이 사용할까?

JSP 를 사용함으로써 얻을 수 있는 장점 중 하나는 디자인과 자바 프로그램 코드의 분리가 가능하다는 것이다. 이는 디자인과 프로그래밍이라는 관점에서 작업을 서로 분리하여 수행할 수 있다는 엄청난 장점을 지닌다. 또한 서블릿은 실행 전에 .class 파일로 컴파일을 직접 해야 하지만 JSP는 코드만 작성해 놓으면 실행 시에 자동으로 변환과 컴파일이 이루어지기 때문에 서블릿에 비해 편리하다는 장점을 갖는다.

□ 서블릿에 비해 JSP를 사용하는 이유
◇ 컴파일이 자동 수행되기 때문에 편리하다.
◇ 디자인과 자바 프로그램 코드의 분리가 가능하다.

JSP가 편리하다고 하여 서블릿을 쓰지 않는 것은 아니다. 개발자의 취향에 따라 차이가 있겠지만 필자는 HTML과 간단한 자바 코드는 JSP로 작성하고, 비즈니스 로직은 서블릿을 이용해서 적절히 보완적으로 사용하는 것을 선호한다.

 

'JSP > JSP 수업' 카테고리의 다른 글

JSP 수업 DB부분  (0) 2012.10.05
네번째 수업.  (0) 2012.09.13
jsp 세번째수업  (0) 2012.09.11
두번째 수업 (추가정리).  (0) 2012.09.07
두번째 수업.  (0) 2012.09.07