페이지 모듈화
<jsp:include> 액션 태그
-다른 JSP 페이지의 '실행' 결과를 현재 위치에 삽입
-동작 방식
<jsp:include page="/module/top.jsp" flush="false"> <jsp:param name="param1" value="value1" /> <jsp:param name="param2" value="value2" /> </jsp:include>
main.jsp(위와 동일한 결과값 출력)
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!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=EUC-KR"> <title>메인 페이지</title> </head> <body> <jsp:include page="top.jsp"/> </body> </html>
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <div style="border:1px solid red; background-color:#999999; height:100px;"> 여기는 Top.jsp </div>
main.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!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=EUC-KR"> <title>메인 페이지</title> </head> <body> <%-- <jsp:include page="top.jsp"/> --%> <%@include file="top.jsp" %> </body> </html>
※설정파일은 점차 사라지고 있다~~
<jsp:include> 액션 태그와 include 디렉티브
<%@ page contentType = "text/html; charset=euc-kr" %> <% String forwardPage = null; // 조건에 따라 이동할 페이지를 지정 if (조건판단1) { forwardPage = "페이지URI1"; } else if (조건판단2) { forwardPage = "페이지URI2"; } else if (조건판단3) { forwardPage = "페이지URI3"; } %> <jsp:forward page="<%= forwardPage %>" />
include와 forword의 차이
gugu.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <% String sDan = request.getParameter("dan"); int dan = 0; if(sDan==null || sDan.equals("")){ dan =2; }else{ dan = Integer.valueOf(sDan); } String str = ""; for(int i=1;i<=9;i++){ str += dan + "*" + i+ "="+dan*i +"<br/>"; } request.setAttribute("data", str); %> <jsp:forward page="guguView.jsp"/>guguView.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <% String str = (String)request.getAttribute("data"); %> <!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=EUC-KR"> <title>구구단 보기(guguView.jsp)</title> </head> <body style="text-align:center;"> <%=str %> </body> </html>
에러 페이지 지정
- <%@ page errorPage = "예외발생시보여질JSP지정" %>
에러 페이지 작성
- <%@ page isErrorPage = "true" %>
isErrorPage 속성이 true인 경우 에러 페이지로 지정
- exception 기본 객체 : 발생한 예외 객체
exception.getMessage() : 예외 메시지
exception.printStackTrace() : 예외 추적 메시지 출력
- IE에서 예외가 올바르게 보여지려면 에러 페이지가 출력한 응답 데이터 크기가 513 바이트보다 커야 함
- <% response.setStatus(HttpServletResponse.SC_OK);%>
※요즘은 web.xml이용하지 않는게 추세
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%@ page errorPage="error.jsp" %> <% String sDan = request.getParameter("dan"); int dan = Integer.valueOf(sDan); String str = ""; for(int i=1;i<=9;i++){ str += dan + "*" + i+ "="+dan*i +"<br/>"; } request.setAttribute("data", str); %> <jsp:forward page="guguView.jsp"/>
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%@ page isErrorPage="true" %> <!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=EUC-KR"> <title>오류발생!!</title> </head> <body style="text-align:center;"> <h1>요청을 처리하는 중에 요류가 발생했습니다.</h1> 발생한 예외의 내용<p/><%=exception %> </body> </html>
Cookie
이용자의 상태정보를 클라이언트에 저장 할려고 하는 수단, 화면 출력용이 아님
JSP에서 쿠키 생성 / 읽기
쿠키 값의 인코딩/디코딩 처리
쿠키는 값으로 한글과 같은 문자를 가질 수 없음
-쿠키의 값을 인코딩해서 지정할 필요 있음
쿠키 값의 처리
-값 설정시 : URLEncoder.encode("값", "euc-kr")
예, new Cookie("name", URLEncoder.encode("값", "euc-kr"));
-값 조회시 : URLDecoder.decode("값", "euc-kr")
Cookie cookie = …;String value = URLDecoder.decode(cookie.getValue(), "euc-kr");
Cookie[] cookies = request.getCookies(); if (cookies != null && cookies.length > 0) { for (int i = 0 ; i < cookies.length ; i++) { if (cookies[i].getName().equals(name)) { Cookie cookie = new Cookie(name, value); response.addCookie(cookie); } } }
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <% Cookie[] cookies = request.getCookies(); boolean found = false; if(cookies==null){ found=false; }else{ for(int i=0;i<cookies.length;i++){ if(cookies[i].getName().equals("sampleCookie")){ found = true; } } } String msg = null; if( ! found){ Cookie cookie = new Cookie("sampleCookie","This is Sample Cookie"); response.addCookie(cookie); msg = "발견된 쿠키가 없었기 때문에 새로 설정했습니다."; } %> <!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=EUC-KR"> <title>쿠키 테스트</title> </head> <body> <script type="text/javascript"> var found = <%=found%>; if(!found){ alert("<%=msg%>"); } </script> </body> </html>
'JSP > 2012.04강의(MySQL)' 카테고리의 다른 글
복습7 회원 정보 저장 폼 (0) | 2012.07.12 |
---|---|
복습6 Cookie,Session을 이용한 login 처리,자바빈(JavaBeans) (0) | 2012.07.11 |
복습4 JSP주요 기본 객체,영역객체(Scope Object),속성(Attribute) (0) | 2012.07.09 |
복습3 선언부(Declaration),request 기본 객체,리다이렉트(Redirect) (0) | 2012.07.06 |
복습2 스크립트 요소 (0) | 2012.07.05 |