분류 전체보기 1097

Servlet & jsp 연동 { el & jstl 의 등장 배경, forwarding 활용 }

수업목표 서블릿과 JSP는 서로 상호 보완적인 관계를 가지고 있습니다. 서블릿은 로직을 구현하기에 알맞지만, HTML을 출력하기엔 불편합니다. JSP는 로직을 구현하는 것은 불편하지만 HTML을 출력하기엔 편리합니다. 이러한 서블릿과 JSP를 좀 더 잘 사용하기 위해서 forward가 사용되는 경우가 많습니다. 이번 시간엔 서블릿과 JSP의 연동에 대해 알아보도록 하겠습니다. Servlet과 JSP 연동 ? 기본적으로 Servlet은 자바이기 때문에 프로그램 로직이 수행되기에 유리하며 IDE의 편의성 지원 등의 이유로 로직을 작성하기에 더 편리합니다. 반면 JSP는 HTML을 바로 작성하면 되기 때문에 out.print 를 해야하는 Servlet 보다 결과를 출력하기에 유리한 면이 있습니다. 이런 Ser..

forward { setAttribute(String , Object), getRequestDispatcher(String), getAttribute(String) }

수업목표 WAS의 서블릿이나 JSP가 요청을 받은 후 그 요청을 처리하다가, 추가적인 처리를 같은 웹 어플리케이션 안에 포함된 다른 서블릿이나 JSP에게 위임하는 경우가 있습니다. 이렇게 위임하는 것을 포워드 forward 라고 합니다. 이번 시간에는 포워드에 대해서 좀 더 자세히 알아보도록 하겠습니다. forward 란? Servlet 1 이 클라이언트로부터 요청을 받았는데, 이 작업을 혼자서 모두 수행하지 않고 Servlet 2로 넘겨주는 것을 forward 라고 합니다. 그리고 위임받은 Servlet 2 는 응답을 만들어서 응답을 보내주는데요. 이러한 과정을 forward 라고 합니다. 포워드랑 리다이렉트를 헷갈려하시는 분들이 많습니다. 정확하게 이해하고 넘어가야 뒤에 헷갈리는 일을 방지할 수 있습..

redirect 리다이렉트 { response.sendRedirect( ) }

수업목표 게시판 같은 곳에서 글을 작성할 때 글을 작성하고 나면 사용자는 작성 완료 버튼을 누릅니다. 이때 클라이언트가 서버에게 '나의 글을 등록해줘'라는 요청을 보내게 됩니다. 웹 브라우저는 글 목록으로 이동하라는 서버의 요청을 받은 후, 자동으로 서버에게 글 목록을 요청하여 응답받아 출력하게 됩니다. 이처럼 서버가 클라이언트에게 어떤 URL로 이동하라는 요청을 보내는 것을 redirect 라고 합니다. 리다이렉트 redirect 란? 리다이렉트는 http프로토콜로 정해진 규칙이다. 서버는 클라이언트로부터 요청을 받은 후, 클라이언트에게 특정 URL로 이동하라고 요청할 수 있고 이를 리다이렉트라고 합니다. 서버는 클라이언트에게 상태코드 302와 함께 이동할 URL정보를 Location 헤더에 담아전공합..

JSP 내장객체 { request, response, out, application, page, session }

수업목표 JSP에서는 개발자가 선언하지 않아도 사용할 수 있는 미리 선언된 변수가 존재합니다. 이를 내장객체라고 합니다. 개발자가 선언하지 않았음에도 어떻게 JSP에서 내장객체를 사용할 수 있는지, 또한 어떻게 사용해야하는지 알아보겠습니다. JSP 내장 객체란? JSP는 Servlet 으로 변환된 다음에 Servlet이 실행되는 것이라고 배웠습니다. JSP에 입력한 대부분의 코드는 생성되는 서블릿 소스의 _jspService( ) 메서드 안에 삽입되는 코드로 생성된다. 이때 _jspService( ) 메서드 선언부에 함께 객체들이 있는데, 해당 객체들은 jsp 에서도 사용 가능합니다. response, request, application, session, out 과 같은 인스턴스를 내장객체라고 합니다...

JSP 문법 { Scriptlet, Expression, Declaration, 주석 }

수업목표 JSP 는 HTML 태그와 자바코드를 섞어서 개발할 수 있습니다. JSP 에서 자바코드는 어떻게 입력을 하는지, 어떤 결과를 출력하려면 어떤 것을 사용해야하는지에 대해서 알아보도록 하겠습니다. 스크립트 요소의 이해 JSP 페이지에서는 선언문(Declaration), 스크립트릿(Scriptlet), 표현식(Expression) 이라는 3가지의 스크립트 요소를 제공합니다. 스크립트릿 Scriptlet 1. 스크립트릿 : 가장 일반적으로 많이 쓰이는 스크립트 요소입니다. 주로 프로그래밍의 로직을 기술할 때 사용합니다. 여기서 말하는 로직이란 Java 프로그램 뿐만 아니라 HTML 이 포함된 로직도 의미합니다. 무슨 말인지는 뒤에 이어지는 실습을 통해서 더 알아보도록 하겠습니다. 스크립트릿에서 선언된 ..

JSP 라이프싸이클 { WAS 의 jsp 변환 및 실행 과정 }

수업목표 WAS는 웹 브라우저로부터 JSP 에 대한 요청을 받게 되면, JSP 코드를 서블릿 소스코드로 변환한 후 컴파일 하여 실행하게 됩니다. 서블릿으로 컴파일되어 실행될 때 상황에 따라서 어떤 메소드들이 실행되는지 잘 알아야, JSP 를 알맞게 작성할 수 있습니다. sum10.jsp 가 실행될 때 벌어지는 일 (jsp 을 WAS 가 서블릿으로 변환한다) 이전 시간에 작성한 sum.jsp 라는 파일이 최초로 동작할 때는 특별한 형태의 서블릿으로 변환이 됩니다. jsp 는 jsp 가 실행이 되는 것이 아니라 서블릿으로 바뀐 다음에 실행이 됩니다. 톰캣을 사용했다면 WAS 인 톰캣이 jsp 를 서블릿으로 바꾸게 됩니다. 어떻게 바꾸는지 알아보겠습니다. 우리가 작업하고 있는 폴더에서 위의 경로로 들어가면 w..

JSP { 개요, 간단 실습, 등장 배경 }

개요(수업 목표) 마이크로소프트의 ASP (Active Server Pages) 와 같은 스크립트 형태의 개발 방법이 인기를 얻게 되면서, 자바 진영에서도 대항하기 위해서 JSP 를 발표하게 됩니다. 스크립트 언어인 JSP 에 대해서 알아보겠습니다. JSP (JavaServer Pages) 란? JSP 에 대해서 알아보기 위해 1~10 까지의 합을 웹 페이지 위에 출력해주는 jsp 파일을 하나 만들어보겠습니다. JSP 의 위치는 WebContent(webapp) 입니다. HTML 과 CSS, javascript 모두 이 위치에서 만들어주면 됩니다. 이 위치에 원하는 디렉터리를 만들어서 파일을 넣어줄 수도 있고 그냥 바로 파일을 생성할 수도 있습니다. JSP 파일을 하나 만들었더니 위와 같은 화면이 보이게..

Request 의 다양한 메서드 { getRequestURI, getRequestURL, getContextPath, getRemoteAddr }

수업목표 이번에는 Request 가 가지고 있는 다양한 메서드들에 대해서 알아보겠습니다. Request 의 다양한 메서드 이클립스 같은 IDE 는 아주 편리한 도구이죠. request. 하고 찍어보면 request 가 가지고 있는 다양한 메서드들을 확인해볼 수 있습니다. 우선 getRequestURI, getRequestURL, getContextPath, getRemoteAddr 을 실행시켜보고 결과를 확인해 보겠습니다. 코드를 실행시켜보겠습니다. 코드를 실행시켜 보았더니 위와 같은 결과가 나온 것을 확인할 수 있습니다. URL 이 리턴해준 값을 볼까요. 도메인과 포트 그리고 이하의 있는 값을 잘 출력해주고 있는 것을 확인할 수 있습니다. 클라이언트가 요청한 URL 이 그대로 출력된 것을 확인할 수 있..

Request의 파라미터 읽어오기 { getParameter( ), 동적웹과 form 태그 }

수업목표 이번에는 URL 주소의 파라미터 정보를 읽어 들여 브라우저 화면에 출력해보겠습니다. URL 주소에서 ? 물음표 이후의 부분을 파라미터라고 합니다. 중간에 & 엔퍼센트가 들어있는데요. & 엔퍼센트가 기준점인데요. & 를 기준으로 더 많은 파라미터들을 나열할 수 있습니다. 첫 번째 파러미터를 보면 = 이퀄을 기준으로 앞에 있는 name 은 파라미터 이름이고 뒤에 있는 것은 파라미터 값입니다. 즉 name 파라미터의 값은 kim 이고 age 파라미터의 값은 5라는 의미입니다. 이 정보들은 클라이언트가 넘겨준 값입니다. 이 값을 서버가 읽어들여서 사용하면 되겠습니다. 해당 작업을 수행할 수 있는 서블릿 파일을 하나 작성해보고자 합니다. 파라미터 값 출력하기 클라이언트가 전송한 모든 내용을 갖고 있는 객..

헤더 정보 읽어 들이기 { getHeaderNames( ), getHeader( ) }

수업 목표 웹 브라우저가 서버에 요청을 보낼 때는 엄청 많은 정보를 함께 보내게 됩니다. 이때 요청 정보에는 어떤 것들이 있는지 실습을 통해서 알아보고자 합니다. Header 값 알아보기 요청이 들어올 때 어떤 정보가 들어오는지 알아봅시다. HeaderServlet 이라는 예제 파일을 하나 만들어서 실습을 진행해 보겠습니다. 클라이언트의 요청은 WAS 가 Request 라는 객체에 담아둔다고 했습니다. 담아둔 객체를 우리는 doGet 메서드의 파라미터로 가지고 들어온 것을 확인할 수 있습니다. 따라서 doGet 메서드 안에서 request 객체에 담긴 정보를 우리는 마음껏 사용할 수 있습니다. Request 객체가 갖고 있는 정보들 중에 getHeaderNames( ) 라는 메서드가 있습니다. 이 메서드..