본문 바로가기

Servlet & JSP7

EL(Expression Language)과 JSTL(JSP Standard Tag Library) EL(Expression Language)이란? Expression Language(표현 언어)는 값을 표현하는 데 사용되는 스크립트 언어로, JSP의 기본 문법을 보완하는 역할을 한다. JSP에는 Java 코드와 markup 요소들이 섞여있다. 그러다보니 프론트엔드 개발자, 디자이너들도 쉽게 볼 수 있는 코드에 대한 needs가 있었고, 프론트엔드와 백엔드 사이에 어떻게 하면 효율적으로 일들을 나눌 수 있을 것인가라는 고민이 있었다.이를 위해 Java 코드보다 더 간단하고 직관적으로 사용할 수 있는 형태로 나온 것이 EL이다. EL이 제공하는 기능들은 다음과 같다.JSP의 스코프(scope)에 맞는 속성 사용 각 scope의 변수들을 손쉽게 사용할 수 있다.(Framework에서 제공하는)집합 객체에 .. 2018. 7. 1.
Servlet & JSP의 4가지 Scope Servlet과 JSP를 개발하다보면 변수를 많이 다루게 된다. 변수를 어떤 범위 내에서 사용하기 위해서는 스코프(scope)라는 것에 대해서 알아야 한다. 위의 그림처럼, Servlet과 JSP에서는 Page, Request, Session, Application의 4가지 Scope이 있다. 1) (JSP) Page scope실제 선언된 JSP 페이지 내에서만 사용할 수 있는 것. 페이지 내에서 지역변수처럼 사용. PageContext 추상 클래스를 사용한다. JSP 페이지에서 pageContext라는 내장 객체(Implicit Object)로 사용 가능하다. 다른 것 필요 없이, pageContext이름.setAttribute(), pageContext이름.getAttribute() 등의 방법으로 바.. 2018. 7. 1.
Forward, 그리고 Servlet & JSP의 연동 Forward란? 1. 웹 브라우저에서 Servlet1에게 요청을 보냄2. Servlet1은 요청을 처리한 후, 그 결과값을 HttpServletRequest에 저장. (Servlet1이 모든 일을 혼자 처리하지 않는다)3. Servlet1은 결과가 저장된 HttpServletRequest와, 응답을 위한 HttpServletResponse를 같은 웹 어플리케이션 안에 있는 Servlet2에게 넘겨준다 (⇒ forward)4. Servlet2는 Servlet1으로 부터 받은 HttpServletRequest와 HttpServletResponse를 이용하여 요청을 처리한 후, 웹 브라우저에게 결과를 전송물론 여기서 forward를 꼭 Servlet과 Servlet 사이에서만 할 수 있는 것은 아니다! 뒤에.. 2018. 6. 30.
Redirect Redirect는 HTTP 프로토콜로 정해진 규칙이다.서버는 클라이언트의 요청에 대해 특정 URL로 이동을 요청할 수 있다. 이를 Redirect라고 한다.서버는 클라이언트에게 HTTP 상태코드(Status Code) 302로 응답하는데 이때 헤더 내 Location 값에 이동할 URL 을 추가한다. 클라이언트는 redirection 응답을 받게 되면 헤더(Location)에 포함된 URL로 재요청을 보내게 된다. 이때 브라우저의 주소창은 새 URL로 바뀌게 된다.Servlet이나 JSP는 Redirect하기 위해 HttpServletResponse 클래스의 sendRedirect() 메소드를 사용한다. 예제 코드를 통해 살펴 보자.먼저 redirect01.jsp라는 파일을 아래와 같이 만들었다. res.. 2018. 6. 29.
JSP 기초 선언문(Declaration) - - 선언문은 JSP 페이지 내에서 필요한 멤버변수나 메소드가 필요할 때 선언해 사용하는 요소 스크립트릿(Scriptlet) - - 가장 일반적으로 많이 쓰이는 스크립트 요소 - 주로 프로그래밍의 로직을 기술할 때 사용 - Scriptlet에서 선언된 변수는 지역변수 - Scriptlet 안에 있는 것들은 출력 결과에는 포함되지 않는다. 표현식(Expression) - - JSP 페이지에서 웹 브라우저에 출력할 부분을 표현 (즉, 화면에 출력하기 위한 것) - Scriptlet 내에서 출력할 부분은 내장 객체인 out 객체의 print() 또는 println() 메소드를 사용해서 출력 (☚ JSP; 표현식)out.print(total) (☚ Servlet) 서로 같다. J.. 2018. 6. 29.
Servlet 기초 Servlet이란, Java 웹 어플리케이션의 구성요소 중, 동적인 처리를 하는 프로그램의 역할을 한다. 즉 Servlet은 - WAS에서 동작하는 Java 클래스이다. - HttpServlet 클래스를 상속받아야 한다. - 웹 페이지를 개발할 때 Servlet과 JSP를 조화롭게 사용하여 최상의 결과를 얻을 수 있다. Servlet 작성 방법 @WebServlet("/LifecycleServlet")public class LifecycleServlet extends HttpServlet { private static final long serialVersionUID = 1L; // Constructor: 해당 서블릿 클래스를 메모리에 올림 public LifecycleServlet() { // Syst.. 2018. 6. 29.
미들웨어 / 웹서버 / WAS 미들웨어(Middleware)클라이언트 쪽에 비즈니스 로직이 많을 경우, 클라이언트 관리(배포 등)로 인해 비용이 많이 발생하는 문제가 있다.비즈니스 로직을 클라이언트와 DBMS사이의 미들웨어 서버에서 동작하도록 함으로써, 클라이언트는 입력과 출력만 담당하도록 한다. 웹 서버 vs WAS(Web Application Server)WAS는 일종의 미들웨어로, 웹 클라이언트(보통 웹 브라우저)의 요청 중 웹 애플리케이션이 동작하도록 지원한다. 웹 서버는 정적인 컨텐츠를 웹 브라우저에게 전송하는 역할. WAS는 프로그램의 동적인 결과를 웹 브라우저에게 전송하는 역할. 웹 서버가 없어도 WAS만으로도 정적인 컨텐츠를 전송할 수 있다(성능상 거의 차이가 없다). 하지만 웹서버가 WAS 앞에 위치하게 될 때의 장점.. 2018. 5. 30.