일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 오버라이딩
- 프로그래머스 MYSQL
- 스프링 crud
- 날짜지정팝업
- 오라클설치
- 프로그래머스 쿼리문
- 스프링게시판만들기
- 자바기초
- 프로그래머스 SQL
- 자바 정규표현식 예제
- 2020정보처리기사실기정리
- 2020정보처리기사실기
- 자바연산자
- 게시판만들기
- html기초
- 2020정보처리기사실기요약
- crud게시판
- CRUD게시판만들기
- 스프링 CRUD게시판
- jsp 날짜팝업
- jsp 팝업띄우기
- js datepicker
- spring crud게시판
- 정보처리기사실기정리
- Oracle기초
- PLSQL
- 정처기실기정리
- 자바배열예제
- jsp게시판만들기
- spring crud
Archives
- Today
- Total
영보의 SystemOut.log
[JSP] 표현 언어(EL) / EL 내장객체 / EL 예제 본문
반응형
자바/스프링 기반 디지털 융합 웹 개발자 양성과정
표현 언어(EL)
- 표현 언어(Expression Language)는 처음 JSTL(JSP Standard Tag Library)이 소 개되었을 때 나온 것으로, SPEL(Simplest Possible Expression Language)에 기 본을 두고 있다
- 따라서 처음에는 JSTL의 부분처럼 사용되었으나 지금은 JSP 스펙에 포함됨으 로써 JSTL과 상관없이 JSP 페이지 내에서 표현식 등을 대체하는 용도로 사용될 수 있다
- 표현 언어는 자바 빈즈 속성 값을 보다 쉽고 제약을 덜 받는 방법으로 사용하 기 위해 나온 것으로 JSP 파일이 useBean 액션 태그나 표현식 등으로 복잡해 지는 것을 막고 일종의 템플릿 코드처럼 사용할 수 있도록 해준다
표현 언어 기본 문법
- 표현 언어는 ‘$’로 시작한다
- 모든 내용은 ‘{표현식}’ 과 같이 구성된다
- 표현식에는 기본적으로 변수명, 혹은 ‘속성명.메소드명’ 구조로 이루어진다
- 표현식에는 부가적으로 숫자, 문자열, boolean, null과 같은 상수 값도 올 수 있다
- 표현식에는 기본적인 연산이 가능하다
내장 객체
- 표현 언어에서는 효율적으로 JSP와 상호작용하도록 다음과 같은 내장 객체를 지원한다
내장 객체 | 기능 |
pageScope | page 범위에 포함된 속성 값에 접근할 수 있는 객체 |
requestScope | request 범위에 포함된 속성 값에 접근할 수 있는 객체 |
sessionScope | session 범위에 포함된 속성 값에 접근할 수 있는 객체 |
applicationScope | application 범위에 포함된 속성 값에 접근할 수 있는 객체 |
★ param | request.getParameter(“xxx”)로 얻을 수 있는 값들 ${param.xxx} 처럼 사용 |
★ paramValues | request.getParameterValues(“xxx”) 와 동일 기능 수행 ${paramValues.xxx} 처럼 사용 |
예제
ELJstl_form.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ELJstl_form 페이지</title>
</head>
<body>
<h3>표현언어의 파라미터값 처리 예제</h3>
<form name="myForm" method="POST" action="ELJstl_view.jsp">
이름 : <input type="text" name="name" /> <br> <br>
과목 선택 : <input type="checkbox" name="lang" value="HTML"/>HTML<br>
과목 선택 : <input type="checkbox" name="lang" value="CSS"/>CSS<br>
과목 선택 : <input type="checkbox" name="lang" value="JavaScript"/>JavaScript<br>
과목 선택 : <input type="checkbox" name="lang" value="JSP"/>JSP<br>
<br>
<input type="submit" value="OK" />
<input type="reset" value="Cancel" />
</form>
</body>
</html>
ELJstl_view.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ELJstl_view 페이지</title>
</head>
<body>
<%-- [문제] 먼저 스크립트릿(<% %>)과 표현식(<%= %>), request 객체, out 객체를 적용하여 코딩한다.
폼에서 넘어온 이름과 선택한 과목들을 크롬 브라우저에 출력하세요.
여러분이 코딩 ㄱㄱ --%>
<%-- <% String name = request.getParameter("name"); %>
이름은 <%= name %>입니다. <br><br>
선택한 과목은 <br>
<%
String[] langs=request.getParameterValues("lang");
for(int i=0; i<langs.length; i++){
out.println(langs[i] + "<br>");
}
%>
--%>
<%-- [문제] 표현언어와 JSTL을 적용하여 코딩
폼에서 넘어온 이름과 선택한 과목들을 크롬브라우저에 출력하세요.
여러분이 코딩 요망--%>
이름은 ${param.name}입니다. <br><br>
선택한 과목은 <br>
<c:forEach var="item" items="${paramValues.lang}">
${item}<br>
</c:forEach>
</body>
</html>
예제2
- JSP 동적 파일 업로드
cos-20.08zip 내려받고 cos.jar파일 lib폴더에 넣어주기.
fileSelect.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>fileSelect 페이지</title>
<script>
function fileCheckSize(input){
if(input.files && input.files[0].size > (20*1024*1024)){
alert("파일의 사이즈가 20MB를 초과했습니다.");
input.value = null;
}
}
</script>
</head>
<body>
<form name="fileUploadForm" method="POST" enctype="multipart/form-data" action="viewPage.jsp">
작성자 <br>
<input type="test" name="name" /><br>
제목 <br>
<input type="test" name="subject" /><br>
<h4><font color="red">*업로드할 파일은 최대 20MB까지 해라 진짜로*</font></h4>
업로드할 파일 <br>
<input type="file" name="uploadFile" onchange="fileCheckSize(this)" />
<input type="submit" value="파일 올리기" />
</form>
</body>
</html>
viePage.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 추가 -->
<%@ page import="com.oreilly.servlet.MultipartRequest,
com.oreilly.servlet.multipart.DefaultFileRenamePolicy,
java.util.*,
java.io.*"
%>
<%
String savePath = "C:/FileUpload/filestorage";
String encType = "UTF-8";
int maxSize = 20*1024*1024; // 파일의 사이즈를 최대 20MB 까지 제한
// 반드시 예외처리 해야함
try {
// MultipartRequest 클래스는 파일 업로드를 직접적으로 담당하는 클래스이다.
MultipartRequest multi = null;
multi = new MultipartRequest(request,savePath,maxSize,encType, new DefaultFileRenamePolicy());
String name = multi.getParameter("name");
String subject = multi.getParameter("subject");
out.println("작성자 : "+name+"<br>");
out.println("제목 : "+subject+"<br>");
out.println("<br>");
Enumeration files = multi.getFileNames();
while(files.hasMoreElements()){
String fname = (String)files.nextElement();
String original = multi.getOriginalFileName(fname);
String filename = multi.getFilesystemName(fname);
String type = multi.getContentType(fname);
File f = multi.getFile(fname);
out.println("파일 업로드 객체 이름 : " + fname + "<br>");
out.println("실제 파일 이름 : " + original + "<br>");
out.println("저장된 파일 이름 : " + filename + "<br>");
out.println("파일 타입 : " + type + "<br>");
if(f != null){
out.println("파일 크기 : "+ f.length());
out.println("<br>");
}
}
}catch(Exception e){
System.out.println(e);
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>viewPage</title>
</head>
<body>
</body>
</html>
반응형
'국비교육(아이티센 입사교육) > JSP' 카테고리의 다른 글
[Javascript] 테이블에 행 추가/삭제 구현하기 - insertRow, addRow(), insertCell(), deleteRow() (0) | 2021.10.21 |
---|---|
[JSP] JSP 내장객체 메소드 활용 - request 메소드 /예제 (0) | 2021.10.20 |
[JSP] Session / Session의 주요 메소드 / 세션 생성 방법 (0) | 2021.10.19 |
[JSP] JSTL / JSTL 라이브러리 / JSTL 예제 (0) | 2021.10.19 |