fullstack

[JSP] JSP Scripting

Web

JSP의 스크립팅 요소(Scripting Element)에 대해 알아보자.




- 지시문 (Directive)


JSP 엔진 및 컨테이너에게 현재의 페이지 처리와 관련된 정보를 전달하는 목적으로 활용한다.

<%@ 와 %> 사이에 코드를 위치하여 사용한다.


1
<%@page contentType="text/html;charset=utf-8"%>





- 스크립트릿 (Scriptlet)


JSP가 강력한 이유이다. JSP 페이지 내에 Java 코드를 넣을 수 있다.

<% 와 %> 사이에 코드를 위치하여 사용한다.


1
2
3
4
5
<%
    for (int i=0; i<=10; i++) {
        out.println(i+"<bt/>");
    }
%>





- 표현식 (Expression)


간단한 데이터를 출력하기 위해 사용한다.

<%= 와 %> 사이에 코드를 위치하여 사용한다.


1
<%= result%>





- 선언 (Declaration)


JSP 페이지 전체에서 사용할 변수나 메소드 등을 선언한다.

<%! 와 %> 사이에 코드를 위치하여 사용한다.


1
2
3
4
5
6
<%!
    String text = "Hello World";
    public boolean isExist() {
        return true;
    }
%>





- 주석


코드 상에 설명을 덧붙이기 위해 사용한다.

<%-- 와 --%> 사이에 설명을 쓴다.


1
<%-- Comment --%>



[JSP] Google App Engine에서 Session 사용시 Error

Web

Google App Engine에서 JSP를 할때 Session 사용시 다음과 같은 500 Server Error가 발생한다.



해당 프로젝트 폴더의 war - WEB-INF 경로에 있는 appengine-web.xml 을 보면 다음과 같은 주석을 볼 수 있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
  <!--
    HTTP Sessions are disabled by default. To enable HTTP sessions specify:
      <sessions-enabled>true</sessions-enabled>
    It's possible to reduce request latency by configuring your application to
    asynchronously write HTTP session data to the datastore:
      <async-session-persistence enabled="true" />
    With this feature enabled, there is a very small chance your app will see
    stale session data. For details, see
    http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions
  -->



이는 App Engine에서는 기본적으로 Session을 비활성화 한다고 되어있는데, 이유는 쓸모없이 낭비하는 자원을 막기 위해서인것 같다.

위의 주석을 해제하거나 아래 구문을 추가해주면 이제 Session을 사용할 수 있다.


1
<sessions-enabled>true</sessions-enabled>



[JSP] Google App Engine으로 JSP 시작하기

Web

- Google App Engine을 쓰는 이유


Google App Engine은 PaaS(platform as a service) 종류의 클라우드 서비스이다.

PaaS는 개발자가 서비스를 개발 할 수 있는 안정적인 플랫폼과 그 플랫폼을 이용하는 응용 프로그램을 개발 할 수 있는 API까지 제공하는 형태를 말한다.

즉, Google App Engine을 이용하면 서버 설비와 관련된 모든 백엔드 작업에 신경을 쓰지 않고 서비스 개발에 집중할 수 있다.




- 준비사항


Google 계정

Java (현재까지는 7버전 이하로 지원)

Eclipse




- Google App Engine 시작하기


https://appengine.google.com/

다음 주소로 들어가 구글 계정으로 로그인한다.


새 프로젝트를 만든다.



여기서 프로젝트 ID가 만들 사이트 주소가 된다. ( http://'프로젝트 ID'.appspot.com )


프로젝트를 만들었다면 이클립스를 실행한다.


Help -> Install New SoftWare



Add를 누르고 다음과 같이 http://dl.google.com/eclipse/plugin/4.4 를 추가한다.

나열되는 항목들 중 Eclipse Plugin / AppEngine for Java SDK 설치



설치가 다 되었다면 App Engine 프로젝트를 생성한다.



프로젝트 이름을 설정하고 Browse 버튼을 클릭하여 아까만든 Google App Engine 프로젝트와 연동한다.



프로젝트가 만들어졌다면 Deploy 해보자



다음과 같이 잘 실행되는걸 볼 수 있다.