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 |
<%@ page language="JAVA" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>엄마!!미안해!!</title> </head> <body> <c:import url="/13/layout/header.jsp"></c:import> <div id="wrapper"> <c:import url="/13/layout/left.jsp"></c:import> <div id="page-wrapper"> <c:import url="/13/content_header.jsp"></c:import> <div class="page-content"> <c:import url="${!empty param.contentPage ? param.contentPage : '/13/freeboard/freeboardList.jsp'}"></c:import> </div> <jsp:include page="./layout/footer.jsp"></jsp:include> </div> </div> </body> <script type="text/javascript"> if(eval('${!empty param.message}')){ BootstrapDialog.show({ title: '알림', message: '${param.message}' }); } </script> </html> |
cs |
<%@ page language="JAVA" contentType="text/html; charset=UTF-8" JSP파일 상단에 기록된 Directive <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> (해석) contentType의 charset : Http Client(웹브라우저)가 받아볼 페이지의 인코딩 방식 (Http 헤더에 기록되어 있음) pageEncoding : JSP파일(페이지)에 기록된 소스코드 자체의 인코딩 방식
<%@ page contentType="text/html; charset=EUC-KR" pageEncoding="UTF-8" %> jsp파일은 UTF-8로 인코딩되어 있고, 웹브라우저가 받을때는 EUC-KR로 받아봄 <%@ page contentType="text/html; charset=EUC-KR" pageEncoding="UTF-8" %>
이 문구의 의미는? JSP파일 : UTF-8로 인코딩 됨. 웹브라우저가 받을 때 : 서버가 EUC-KR로 인코딩하여 웹브라우저로 전송
page디렉티브 <%@page%> : JSP페이지에 대한 정보를 page 디렉티브(Directive)의 속성들을 사용해서 정의한다. 즉, 생성되는 문서의 타입, 스크립팅 언어, import할 클래스, 세션 및 버퍼의 사용여부, 버퍼의 크기 등 JSP 페이지에서 필요한 설정 정보를 지정한다.
표현식 : <%@page 속성%> (1) Info 속성
<%@page info="설명 문자"%>
- info 속성은 해당 JSP 페이지를 설명해 주는 문자열을 기술하는 속성이다.
- 설정하지 않아도 되며, 내용이나 문자열의 길이 제한은 없다.
(2) language 속성
<%@page language="java" %>
- JSP 페이지의 스크립트에서 사용할 프로그램 언어를 지정하는 속성.
- JSP 2.0 버전까지 스크립트 언어로 Java만을 지원한다.
(3) contentType 속성
<%@page contentType = "text/html"%>
- JSP 페이지의 내용이 어떠한 MIME 타입의 문서로 생성되는지를(응답 결과 형태) 지정하는 속성
- text/html, text/plain, text/xml
<%@page contentType = "text/html;charset=utf-8"%>
- 응답 결과를 보여줄 때 사용할 문자의 인코딩을 지정한다.
(4) extends 속성
<%@page extends="com.abccompany.classcom"%>
- com.abccompany.classcom 클래스를 상속하겠다는 의미이다.
- JSP 페이지가 서블릿으로 변환(파싱)되는 과정에서 상속 받을 클래스를 지정할 때 사용한다.
- JSP 컨테이너가 알아서 적절한 클래스들을 상속시켜 변환하기 때문에 별로 필요 없는 작업이다.
(5) import 속성
<%@page import="java.util.*, java.sql.*" %>
- 다른 패키지에 있는 클래스를 가져다 쓸 때 사용되는 속성으로 자바의 import문과 같다.
- page 디렉티브 중에 유일하게 한 페이지내에 여러번 기술이 가능한 속성이다.
(6) session 속성
<%@page session="false"%>
- 해당 JSP 페이지가 HttpSession을 사용할지 여부를 지정하는 속성
- true : 현재의 JSP 페이지가 세션을 사용하는 것으로 세션을 유지하고, 만일 세션이 존재하지 않을 경우 새로운 세션을 생성하여 연결
- false : 세션을 사용하지 않는다.
(7) buffer 속성
<%@page buffer="10kb"%>
<%@page buffer="none"%>
- JSP 페이지의 출력 버퍼의 크기를 지정하는 속성으로 기본값은 "8KB" 이다.
- "none"으로 지정하면 출력 버퍼를 사용하지 않는다는 의미로, JSP 페이지가 웹 브라우저에 출력 내용이 출력 버퍼를 거치지 않고 바로 웹 브라우저에 출력된다.
(8) autoFlush 속성
<%@page autoFlush="false" %>
- JSP 페이지의 내용들이 웹 브라우저에 출력이 되기 전에 출력 버퍼가 다 찰 경우, 저장되어 있는 내용들을 어떻게 처리할지를 지정하는 속성
- true : 버퍼가 다 찼을 경우 자동적으로 버퍼의 내용이 웹 브라우저에 출력되고, 출력 버퍼는 비워진다.
- buffer 속성의 값을 none 으로 지정한 경우 autoflush 속성값을 false 로 지정할 수 없다.
(9) isThreadSafe 속성
<%@page isThreadSafe="false"%>
- JSP 페이지에서 다중 쓰레드(Thread)를 사용할 수 있는가를 지정하는 속성
- true : 여러 사용자의 요청을 동시에 받아들일 수 있다.
- false : 다수 사용자의 요청을 동시에 처리하지 않고 요청한 순서대로 처리한다.
(10) errorPage 속성
<%@page errorPage="errorPage.jsp"%>
- JSP 페이지를 처리하는 도중에 해당 페이지에서 예외(Exception)이 발생할 경우 예외를 처리할 페이지를 지정한다.
- JSP 2.0에서는 위와 같은 방법으로 처리하지 않는다. web.xml 파일에서 <error-page> 태그를 사용해서 처리한다.
(11) isErrorPage 속성
<%@page isErrorPage="true"%>
- 현재 JSP 페이지가 일반적인 페이지인지, 예외를 처리하는 페이지인지를 지정할 때 사용되는 속성
- 해당 페이지가 예외를 처리하는 페이지라면 true 로 지정한다.
(12) pageEncoding 속성
<%@page pageEncoding="utf-8"%>
- JSP 페이지에서 사용하는 문자의 인코딩을 지정한다.
<%@page contentType ="text/html;charset=utf-8"%>
- contentType의 인코딩과 동시에 기술할 수 있다.
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 1. JSTL(JSP Standard Tag Library)
- 커스텀태그 : 개발자가 직접 태그를 작성할 수 있는 기능을 제공한다. - 커스텀태그 중에서 많이 사용되는 것들을 모아서 JSTL이라는 규약을 만들었다. - 논리적인 판단, 반복문의 처리, 데이터베이스 등의 처리를 할 수 있다. - JSP 2.1 ~ JSP 2.2 와 호횐되는 JSTL 버전은 1.2 이다.
2. JSTL 제공 태그 ![]()
3. JSTL 라이브러리 다운 및 추가 ![]()
- http://tomcat.apache.org/taglibs/standard/ 로 들어가서 아래에 파일을 다운 받는다.
![]() - binaries 를 클릭하고 아래의 .zip 파일을 다운 받는다.
![]()
- 다운을 받고 압축을 풀어 lib 폴더에 들어간다.
![]()
- 두 파일을 복사하여 STS 프로젝트의 WebContent 폴더안의 Web-INF 안의 lib 폴더에 복사한다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> jtsl을 쓰는 궁극적인 목적은 스크립트릿을 대체하기 위함이다. 다시 말하면, 자바 로직을 완벽하게 대체해준다.
- jstl을 쓰기 위해서는 새로운 디렉티브를 만들어야한다.
출처: https://youssol.tistory.com/8 [초인, 초월이네 이야기] |
<c:import url="/13/layout/header.jsp"></c:import> <div id="wrapper"> <c:import url="/13/layout/left.jsp"></c:import> <div id="page-wrapper"> <c:import url="/13/content_header.jsp"></c:import> <div class="page-content"> <c:import url="${!empty param.contentPage ? param.contentPage : '/13/freeboard/freeboardList.jsp'}"></c:import> </div> <jsp:include page="./layout/footer.jsp"></jsp:include> </div> </div>
*<jsp:include>와의 차이점 <jsp:include>액션 태그는 현재 위치에 무조건 결과를 출력하는 반면, <c:import>태 그는 EL변수에 보관한 뒤 필요에 따라 알맞은 처리를 할 수 있다.
<c:url value = "URL" [var = "varName"] [scope = "영역"]> <c:param name = "이름" value = "값"/> </c:url>
= > var속성과 scope속성은 생략 가능하며, <c:import>태그와 마찬가지로 <c:param> 태그를 이용해서 파라미터를 URL에 추가할 수 있다. var 속성을 지정하지 않은 경우 현재 위치에서 생성한 URL을 출력하며, var속성을 지정한 경우 해당 변수에 생성한 URL을 할당한다.
[출처] JSTL - <c:import, url, redirect>|작성자 원종천
|
<c:import url="${!empty param.contentPage ? param.contentPage : '/13/freeboard/freeboardList.jsp'}"></c:import> param.contentPage가 비어있지 않으면 param.contentPage를 , 비어있다면, /13/freeboard/freebaordList.jsp를 url에 import한다. |
'JSP회원가입 및 게시판' 카테고리의 다른 글
<게시판만들기>-게시판 내용보기 (0) | 2020.06.28 |
---|---|
<게시판만들기>-게시판 입력폼 (0) | 2020.06.28 |
<게시판만들기>-게시판 출력하기 (0) | 2020.06.28 |
<게시판만들기>-RSA 암호화를 이용하여 로그인하기 (2) | 2020.06.28 |
<게시판만들기>-main.jsp(JSTL) (0) | 2020.06.25 |