- NEW초롱이의 하루
- kisa
- 길은 가면, 뒤에 있다
- C언어 예술가
- Zer0 day - Zer0 day
- Information Security
- Secure-EDU
- 앙큼한유채's 일상 Story
- Library of Ezbeat (잠정 폐쇄)
- The Factory
- 안드
- 모후모후의 커뮤니티
- 공학도의 잡다한 시선
- 안드2
- IT속에 코코아
- IP주소검색(whois)
- IP주소검색(좌표포함)
- 소프트웨어 경력 관리
- 해저 케이블 지도
- MAC주소검색
- IANA
- 포트번호검색
- 자신의IP확인
- 웹페이퍼캡처
- 나의패스워드보안등급
- 웹 취약점 분석
- IT용어정리
- GitHub
- 라이브러리 모음
- 웹마당넷
- 시스템콜참고
- BCD 변환
- 보안뉴스
- 코딩도장(C, Python)
- 백준알고리즘
- 코딩테스트 연습
- 웹 사이트 테스트
- 스크립트꾸미기
- ctf대회목록
- 전자신문
- hash 크랙
- CVE
- 도메인등록
- N클라우드
- BugBountyList
- 칼리공식사이트
- CR4FTING BOX
- 아스키코드 변환
- 웹 사이트 통계 및 평가
- PDF변환
- AWS 및 클라우드 정보
- 가상화 및 서버관련
- 티오리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- GPIO
- 네트워크
- GUI
- LEVIATHAN
- 라즈베리파이
- RaspberryPi
- centos docker
- 쉘 스크립트 기초
- docker
- Java
- Linux
- 쉘 스크립트
- nginx
- JSP
- ACL
- 리눅스
- 안드로이드
- System
- Android
- Python
- Shell script
- 그라파나
- 메소드
- 자바
- 클라우드
- synology
- Tkinter
- 프로젝트
- 쉘 스크립트 if문
- API
- Today
- Total
IT창고
JSP 익스프레션언어 본문
EL(Expression Language)는 식(expression)을 중심으로 코드를 기술하는 언어를 뜻합니다.
익스프레션 언어로 JAVA언어 대신 좀 더 쉽게 JSP를 할수있게 됩니다.
EL표현은 연산자와 피연산자의 조합을 ${와 }로 둘러싸서 표현합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
int var =0;
pageContext.setAttribute("var",1);
request.setAttribute("var", 2);
session.setAttribute("var", 3);
application.setAttribute("var", 4);
pageContext.forward("result1.jsp");
%>
위의 jsp 파일을 실행하면 result1.jsp파일로 포워드가 됩니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
var = ${var }<br>
pageScope var = ${pageScope.var }<br>
requestScope var = ${requestScope.var }<br>
sessionScope var = ${sessionScope.var }<br>
applicationScope var = ${applicationScope.var }<br>
</body>
</html>
위의 jsp파일이 result1.jsp파일입니다. EL언어로 만들어졌습니다.
결과를 확인해보면 pageContext는 페이지가 바뀌면서 확인이 안되고 var는 가장 가까이에 있는 데이터가 들어갑니다.
순서는 page -> request -> sesion -> application 입니다.
EL로 파라메터 처리를 해보겠습니다.
<%
String t = request.getParameter("age");
int age = 0;
try{
age = Integer.parseInt(t);
}catch(Exception e){
out.println("나이가 넘어오지 않았습니다!!!");
return;
}
%>
당신의 내년 나이는 <%=age+1 %>세 입니다.<br>
파라메터를 EL로 처리가 가능하다.<br>
당신의 내년 나이는 ${param.age+1 }세 입니다.<br>
파라메터값을 받는다면 내년의 나이가 출력됩니다. 내년의 나이를 $로 받아서 표현할수있습니다.
age에 3의 값을 입력하면 정상적으로 파라메터 값이 전송되는걸 확인할수있습니다.
헤더값을 EL식으로 출력하는 걸 알아보겠습니다.
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
자바코드를 이용한 헤더값 출력하기<br>
<%
Enumeration<String> em = request.getHeaderNames();
while(em.hasMoreElements()){
String key = em.nextElement();
String value = request.getHeader(key);
out.println(key + " : " + value + "<br>");
}
%>
EL을 이용한 헤더값 출력하기<br>
host : ${header.host }<br>
host : ${header["host"] }<br>
user-agent : ${header.user-agent }<br>
user-agent : ${header["user-agent"] }<br>
</body>
</html>
위의 코드와 같이 자바를 사용해서 출력할수도 있으며 EL을 사용하여 표현할수있습니다. 둘 중 편한 언어로 작성하면 됩니다.
확인해보면 자바와 EL의 표현되는데 차이점은 없습니다. 단 user-agent : ${header.user-agent }<br> 과 user-agent : ${header["user-agent "] }<br>중 첫번째는 0으로 표기가 되는데 user-agent에서 -를 연산자(-)로 인식했기 때문입니다. 이 부분을 주의합니다.
쿠키 또한 EL식으로 표현이 가능합니다.
<body>
<%
response.addCookie(new Cookie("name","일번gsk"));
response.addCookie(new Cookie("age","26"));
%>
자바를 이용한 쿠키의 사용<br>
<%
Cookie[] cookies = request.getCookies();
for(Cookie cookie : cookies){
out.println(cookie.getName() + " : " + cookie.getValue() + "<br>");
}
%>
<br><hr>
EL을 이용한 쿠키의 사용<br>
이름 : ${cookie.name.value }<br>
나이 : ${cookie.age.value }<br>
이름 : ${cookie.name.name }<br>
나이 : ${cookie.age.name }<br>
</body>
쿠키값도 EL로 표현을 해보면 자바와 크게 차이점이 없음을 알수있습니다. 익스프레션 언어는 자바언어 보다 간단하기에 쉽게 배우고 사용할수있습니다.
마지막으로 Array와 List의 EL식 표현을 알아보겠습니다.
<body>
<%
String[] ar = "강아지,고양이,개구리,너구리,토끼".split(",");
request.setAttribute("ar", ar);
%>
${ar[0] }<br>
${ar[1] }<br>
${ar[2] }<br>
${ar[3] }<br>
${ar[4] }<br>
</body>
배열을 El로 표현할때는 []를 사용합니다. []번호로 순서대로 출력할수있습니다.
<body>
<%
String[] ar = "강아지,고양이,개구리,너구리,토끼".split(",");
List<String> list = new ArrayList<>(Arrays.asList(ar));
request.setAttribute("list", list);
%>
${list[0] }<br>
${list[1] }<br>
${list[2] }<br>
${list[3] }<br>
${list[4] }<br>
</body>
리스트는 배열에서 리스트로 만들어주면 됩니다. 자바언어로 확인하면 한줄이 더 추가되었지만 결과를 확인해본다면
배열과 같은 결과가 나옵니다. 겉으로 표현되는데 자바언어와 별로 다를것이 없으며 익스프레션 언어로도 간단히 JSP를 해볼수있었습니다.
'프로그래밍 > JSP' 카테고리의 다른 글
오라클 DB 이클립스에 연동시키기(오라클DB 설치) (0) | 2018.03.06 |
---|---|
JSP JSTL (0) | 2018.03.04 |
JSP Maven프로젝트 만들기 (0) | 2018.02.06 |
JSP 웹 어플리케이션의 구성 (0) | 2018.01.29 |
JSP DB활용, 자바빈, 커넥션풀 (0) | 2018.01.28 |