반응형

  표현식은 JSP 페이지의 정한 위치에서 값을 출력하는 기능입니다. 즉, JSP 페이지에서 변수나 메서드의 결과값 등을 브라우저에 출력하는 용도로 사용합니다.

표현식의 형식은 

<% 값 OR 자바 변수 OR 자바 식 %>

 

JSP 페이지에서 표현식을 코딩해 보도록 하겠습니다.

  표현식을 이용해 JSP 페이지에서 선언한 변수와 여러 가지 값을 HTML의 원하는 위치에 출력합니다. 이때 <%= %>안의 자바 변수나 자바 식에는 세미콜론이 있으면 안됩니다.

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

스크립트 요소 로그인  (0) 2019.12.11
JSP 주석문  (0) 2019.12.11
스크립트 릿 사용하기  (0) 2019.12.11
JSP 스크립트 요소  (0) 2019.12.11
JSP 페이지 구성요소 인클루드 디렉티브 태그  (0) 2019.12.11
블로그 이미지

꽃꽂이하는개발자

,
반응형

  보통 웹페이지는 웹 디자이너분들이 주도적으로 구현하는 부분인 만큼, 웹 페이지 구현 시 디자이너분들에게 어려운 자바 코드는 거의 사용되지 않습니다.  스크립트릿은 초기의 jsp에서 자바코드를 이용해 화면의 동적인 기능을 구현했지만 지금은 jsp페이지에서는 거의 사용되지 않지만 자바 코드로 화면의 동적인 기능을 구현할 수 있다면 자바코드를 대체해서 나온 여러가지 태그들을 이해하는 데에도 분명 도움이 될 것입니다.

 

스크립트릿의 형식은

<% 자바코드 %>

그러면 스크립트릿을 사용해 보도록 하겠습니다

 

 

http://localhost:8080/jsp_script/hello2.jsp?age=30 로 요청하겠씁니다.

<% %>안에는 자바코드만 쓸 수 있습니다.

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

JSP 주석문  (0) 2019.12.11
JSP 표현식(expression tag)  (0) 2019.12.11
JSP 스크립트 요소  (0) 2019.12.11
JSP 페이지 구성요소 인클루드 디렉티브 태그  (0) 2019.12.11
JSP 페이지 구성요소 페이지 디렉터리  (0) 2019.12.11
블로그 이미지

꽃꽂이하는개발자

,
반응형

  이전까지의 글에서는 컨테이너에서 JSP의 동작과정을 알아보았습니다. HTML태그는 컨테이너 작업 없이 바로 브라우저로 전송되어 화면을 구현하기 때문에 HTML 태그로 화면을 구현하면 조건에 따라 화면을 동적으로 구성할 수 없습니다. 반면에 JSP는 컨테이너에서 자바로 변환되는 과정을 거치므로 JSP에서 제공하는 스크립트 요소를 이용하면 조건이나 상황에 맞게 HTML 태그를 선택적으로 전송할 수 있습니다. 즉 화면을 동적으로 구성할 수 있습니다.

 

JSP 스크립트 요소란 JSP페이지에서 여러 가지 동적인 처리를 제공하는 기능으로, <% %>기호 안에 자바 코드로 구현합니다. <% %>기호를 스크립트릿이라고 부릅니다.

 

스크립트 요소의 종류

  • 선언문 : JSP에서 변수나 메서드를 선언할 때 사용합니다.
  • 스크립트릿: JSP에서 자바 코드를 작성할 때 사용합니다.
  • 표현식 : JSP에서 변수의 값을 출력할 때 사용합니다.

선언문은 JSP페이지에서 사용하는 멤버 변수나 멤버 메서드를 선언할 때 사용하며 선언문 안의 멤버는 서블릿 변환 시 서블릿 클래스의 멤버로 변환됩니다. JSP에서 선언문을 코딩해보겠습니다.

 

hello.jsp

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

디렉티브 태그는 주로 JSP페이지에 대한 전반적인 설정 정보를 지정할 때 사용하는 태그입니다. 디렉티브 태그의 종류는

  • 페이지 디렉티브 태그 : JSP 페이지의 전반적인 정보를 설정할 때 사용합니다.
  • 인클루드 디렉티브 태그( 공통으로 사용하는 JSP페이지를 다른 JSP 페이지에 추가할 때 사용합니다.
  • 태그 라이브러리 디렉티브 태그 : 개발자나 프레임워크에서 제공하는 태그를 사용할 때 사용합니다.

 JSP 페이지로 웹 페이지를 만들다 보면 제목이나 로고를 표시하는 상단, 메뉴를 표시하는 왼쪽 단은 화면이 바뀌더라도 일정하게 유지되는 경우가 많습니다.

  이런 공통 화면을 일일이 JSP 페이지마다 만들어 사용해야 한다면 불편하겠죠. 그래서 JSP에서는 공통으로 사용되는 JSP 페이지를 미리 만들어 놓고 다른 JSP 페이지 요청 시 인클루드 디렉티브 태그를 사용합니다.

  즉 인클루드 디렉티브 태그란 여러 JSP 페이지에서 사용되는 공통 JSP 페이지를 만든 후 다른 JSP페이지에서 공통 JSP페이지를 포함시켜 사용하는 기능을 말합니다.

<%@ include file="공통기능.jsp" %>

 

  인클루드 디렉티브 태그를 이용해 다른 jsp파일의 이미지를 삽입해 보도록 하겠습니다.

WebContent에 image 폴더를 생성하고 원하시는 사진을 복사해서 붙여 넣습니다.

그리고 include.jsp파일과 삽입할 .jsp파일을 만들어 줍니다.

park_image.jsp

 

include.jsp

저는 박보영님의 팬이라 이렇게 사진을 빌려왔습니다. (박보영님 좋은 영화 많이 찍어주세요!!)

 

브라우저에서 요청하면 include.jsp안에 park_image.jsp가 포함되네요!

 

인클루드 디렉티브 태그를 이용해 JSP페이지가 호출되는 과정을 다시 말하자면

include.jsp -> park_image.jsp의 코드를 include.jsp에 포함시킨 후 자바 코드로 변환

-> include_jsp.java -> 자바코드를 서블릿 클래스로 변환 -> include_jsp.class

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

스크립트 릿 사용하기  (0) 2019.12.11
JSP 스크립트 요소  (0) 2019.12.11
JSP 페이지 구성요소 페이지 디렉터리  (0) 2019.12.11
JSP 변환 과정  (0) 2019.12.11
JSP의 등장  (0) 2019.12.10
블로그 이미지

꽃꽂이하는개발자

,
반응형

JSP 페이지에서 사용되는 구성요소들을 알아보겠습니다.

  • 디렉티브 태그
  • 스크립트 요소 : 주석문, 스트립트릿, 표현식, 선언식
  • 표현 언어
  • 내장 객체
  • 액션 태그
  • 커스텀 태그

 

디렉티브 태그는 주로 JSP페이지에 대한 전반적인 설정 정보를 지정할 때 사용하는 태그입니다. 디렉티브 태그의 종류는

  • 페이지 디렉티브 태그 : JSP 페이지의 전반적인 정보를 설정할 때 사용합니다.
  • 인클루드 디렉티브 태그( 공통으로 사용하는 JSP페이지를 다른 JSP 페이지에 추가할 때 사용합니다.
  • 태그 라이브러리 디렉티브 태그 : 개발자나 프레임워크에서 제공하는 태그를 사용할 때 사용합니다.

디렉티브 태그에 설정하는 여러 가지 JSP속성

속성 기본값 설명
info 없음 페이지를 설명해 주는 문자열 지정
language "java" JSP 페이지에서 사용할 언어를 지정합니다.
contentType "text/html" JSP 페이지 출력 형식을 지정합니다.
import 없음 JSP 페이지에서 다른 패키지의 클래스를 임포트할 때 지정합니다.
session "true" JSP 페이지에서 HttpSession 객체의 사용 여부를 지정합니다.
buffer "8kb" JSP 페이지 출력 시 사용할 버퍼 크기를 지정합니다.
autoFlush "true" JSP 페이지의 내용이 출력되기 전 버퍼가 다 채워질 경우 동작을 지정합니다.
errorPage "false" JSP 페이지 처리 도중 예외가 발생할 경우 예외 처리 담당 jsp페이지를 지정합니다.
isErrorPage "false" 현재 JSP 페이지가 예외 처리 담당 JSP페이지인지  지정합니다.
pageEncoding "ISO-8859-1" JSP 페이지에서 사용하는 문자열 인코딩을 지정합니다.
isELIgnored "true" JSP 2.0 버전에서 추가된 기능으로 EL사용 유무를 지정합니다.

  페이지 디렉티브 형식은 다음과 같이 <%@ page 속성1="값" 속성2="값" 속성3="값" ...%>안에 속성과 값을 나열하면 됩니다.

 

  그런데 이클립스에서 JSP페이지를 만들면 자동으로 페이지 디렉티브 태그가 생성됩니다.

 

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

JSP 스크립트 요소  (0) 2019.12.11
JSP 페이지 구성요소 인클루드 디렉티브 태그  (0) 2019.12.11
JSP 변환 과정  (0) 2019.12.11
JSP의 등장  (0) 2019.12.10
HttpSessionListener 로그인 접속자수 표시  (0) 2019.12.10
블로그 이미지

꽃꽂이하는개발자

,

JSP 변환 과정

2020/JSP SERVLET 2019. 12. 11. 16:22
반응형

JSP파일은 다음과 같이 3단계를 거쳐 실행됩니다.

1. 변환단계 : 컨테이너는 JSP파일을 자바 파일로 변환합니다.

2. 컴파일 단계 : 컨테이너는 변환된 자바 파일을 클래스 파일로 컴파일 합니다.

3. 실행 단계 : 컨테이너는 class파일을 실행하여 그 결과(HTML, CSS와 자바스크립트 코드)를 브라우저로 전송해 출력합니다.

 

우선 webcontent 폴더에 hello.jsp파일을 하나 만들어 주었습니다. 그 후에 아래와 같이 코딩을 하고 톰캣을 실행시켜주었습니다.

  jsp 실행과정을 정리하면 이클립스에서 hello.jsp를 생성한 후 톰캣을 실행합니다. 그런 다음 브라우저에서 hello.jsp로 요청합니다. 마지막으로 브라우저의 요청을 받은 톰캣 컨테이너는 해당 JSP파일을 읽어 들여와 hello_jsp.java 파일로 변환합니다. 그리고 브라우저로 HTML 형식의 결과를 전송하여 화면에 표시합니다.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

파일 저장

  하나의 ndarray 형을 파일에 저장하려면 np.save('파일명.npy', 변수명) 을 사용합니다. 확장자는 .npy를 사용하여야 합니다. 로드하려면 np.load('파일명.npy')를 입력해 주시면 됩니다.

 

  여러 ndarray 형을 저장

  여러 ndarray 형을 저장하려면 np.savez('파일명.npz', 변수명1 = 변수명1, 변수명2 = 변수명2)
 

  데이터를 np.load로 불러오면 저장된 모든 변수가 outfile에 저장되어 outfile['변수명']으로 각각의 변수를 참조할 수 있습니다. outfile.files로 저장된 목록을 볼 수 있습니다.

반응형

'2020 > Python' 카테고리의 다른 글

conda 환경(env) 삭제  (0) 2019.12.19
conda 환경 세팅(opencv, tensorflow)  (0) 2019.12.19
Python 함수만들기  (0) 2019.12.11
Python HELP  (0) 2019.12.11
Python bool 배열  (0) 2019.12.11
블로그 이미지

꽃꽂이하는개발자

,

Python 함수만들기

2020/Python 2019. 12. 11. 14:56
반응형

자주 사용하는 반복된 코드는 함수로 만드는 것이 좋습니다.

  이 책에서도 함수를 많이 사용합니다. 함수는 def 함수명():으로 시작하여, 함수의 내용은 들여쓰기로 정의합니다. 실행하려면 함수명()을 입력합니다.

 

  함수에 값 a,b를 넘겨주고 싶은 경우에는 def함수명(a,b): 와 같이 입력합니다. 함수의 결과를 출력하면 return 뒤에 해당 변수 이름을 사용합니다.

  함수에 전달할 변수를 인수라고 합니다. 함수의 출력은 반환값이라고 합니다.

  어떤 형태로든 인수나 반환값을 만들 수 있습니다. 또 여러 개의 반환값을 정의할 수 있습니다.

  반환값이 여러개라도 하나의 변수로 받을 수 있습니다. 이 경우 반환값은 tuple형이 되고, 각 요소에 함수의 반환값이 저장됩니다. 난수이므로 실행할 때마다 결과가 달라집니다.

 

반응형

'2020 > Python' 카테고리의 다른 글

conda 환경 세팅(opencv, tensorflow)  (0) 2019.12.19
JupyterNotebook 파일 저장, 파일 로드  (0) 2019.12.11
Python HELP  (0) 2019.12.11
Python bool 배열  (0) 2019.12.11
Jupyter Notebook slicing  (0) 2019.12.11
블로그 이미지

꽃꽂이하는개발자

,