초 간단 MVC
form.html 에서 form을 사용해서 request를 날리는데 서블릿이 받는다.
request를 받은 서블릿은 내부 처리를 한 후에 서블릿에서 바로 html을 그려주는게 아니라
view를 지정해 html을 그려준다
BeerSelect.java
더보기
서블릿에서 RequestDispatcher를 사용하는 점은 몰랐었다.
|
더보기
| 속성 | 설명 | 기본값 |
| language | JSP 스크립트 코드에서 사용되는 프로그래밍 언어 지정 | "java" |
| contentType | JSP가 생성할 문서의 타입을 지정 | "text/html" |
| import | JSP페이지가 사용할 자바 클래스 지정 | |
| session | JSP 페이지가 세션을 사용할지 지정. "true"/"false" | "true" |
| buffer | JSP 페이지의 출력 버퍼 크기 지정. "none" 사용하지 않음. "8kb" 8킬로바이트 사용 | 최소 8kb |
| autoFlush | 출력버퍼가 다 찼을때 자동으로 버퍼에 있는 데이터를 출력 스트림에 보내고 비울지 여부 "true"/"false" | "true" |
| info | JSP 페이지에 대한 설명 입력 | |
| errorPage | JSP 페이지를 실행하는 도중에 에러가 발생할 때 보여줄 페이지 지정 | |
| isErrorPage | 현재 페이지가 에러가 발생할 때 보여지는 페이지여부 지정. "true"/"false" | "false" |
| pageEncoding | JSP 페이지 캐릭터 인코딩 지정 | |
| isELIgnored | "true" 표현언어 지원. "false" 표현언어 미지원 | web.xml에서 사용하는 JSP 버전 및 설정에 따라 다름 |
| 디렉티브 | 설명 |
| page | JSP 페이지에 대한 정보를 지정. 문서타입, 출력버퍼크기, 에러페이지 등 |
| taglib | JSP 페이지에서 사용할 태그 라이브러리 |
| include | JSP 페이지의 특정 영역에 다른 문서를 포함 |
| 메소드 | 설명 |
| getMessage() | 오류 메시지 내용 리턴 |
| printStackTrace() | 표준 출력 스트림으로 스택 추적 정보 출력 |
| toString() | 예외 클래스 이름과 오류 메시지 리턴 |
| 메소드 | 설명 |
| getInitParameter(String name) | 초기화 파라미터 값 리턴 |
| getInitParameterNames() | 서블릿 초기화 파라미터 이름 리턴 |
| getServletName() | 서블릿 이름 리턴 |
| 메소드 | 설명 |
| getId() | 세션 ID리턴 |
| getCreationTime() | 세션이 생성된 시간 리턴 |
| getLastAccessedTime() | 현재 세션으로 마지막 작업 시간 리턴 |
| getMaxInactiveInterval() | 세션 유지 시간 리턴 |
| setMaxInactiveInterval(time) | 세션 유효시간을 time으로 설정된 값으로 설정 |
| invalidate() | 현재 세션 종료 |
| 메소드 | 설명 |
| getAttributeNames() | application 객체에 저장된 속성 이름 리턴 |
| getMajorVersion() | 컨테이너가 지원하는 Major버전 정보 리턴 |
| getMinorVersion() | 컨테이너가 지원하는 Minor버전 정보 리턴 |
| getMimeType(String file) | file에 지정된 파일의 MIME type 리턴 |
| getRealPath(String path) | path에 지정된 자원 파일시스템의 실제 경로 리턴 |
| getResource(String path) | path에 지정된 자원을 URL객체로 리턴 |
| getResourceAsStream(String path) | path에 지정된 자원을 InputStream객체로 리턴 |
| getContext(String path) | path에 지정된 자원의 컨텍스트 정보 리턴 |
| getServerInfo() | JSP/서블릿 컨테이너 이름 및 버전 리턴 |
| 메소드 | 설명 |
| log(String message) | message 내용을 로그 파일에 기록 |
| log(String message, Throwable exception) | 예외상황과 관련된 정보를 포함해 로그 파일에 기록 |
| 메소드 | 설명 |
| getAttribute(String name) |
name 에 해당하는 속성값 리턴 |
| removeAttribute(String name) |
name 에 해당하는 속성값 삭제 |
| setAttribute(String name, Object) |
name 이란 이름으로 Object형 데이터 저장 |
| 메소드 | 설명 |
| getPage() | page 내장 객체 리턴 |
| getRequest() | request 내장 객체 리턴 |
| getPesponse() | request 내장 객체 리턴 |
| getOut() | out 내장 객체 리턴 |
| getSession() | session 내장 객체 리턴 |
| getServletConfig() | config 내장 객체 리턴 |
| getServletContext() | application 내장 객체 리턴 |
| getException() | exception 내장 객체 리턴 |
| 메소드 | 설명 |
| forward(String path) | path 에 지정된 페이지로 포워딩 |
| include(String path) | path 에 지정된 페이지 포함 |
| 메소드 | 설명 |
| getAttribute(String name) | name 에 해당하는 속성값 리턴 |
| removeAttribute(String name) | name 에 해당하는 속성값 삭제 |
| setAttribute(String name, Object) | name 이란 이름으로 Object형 데이터 저장 |
| 메소드 | 설명 |
| addCookie(Cookie cookie) |
쿠키 데이터 기록 |
| addHeader(String name, String value) |
response 헤더 내용 기록 |
| containsHeader(String name) |
지정된 헤더에 name설정 여부 리턴 |
| sendError(int status-code) |
에러 response를 클라이언트로 전송 |
| sendRedirect(String location) |
현재 페이지를 다른 페이지로 이동 |
| setStatus(int status-code) |
HTTP response 상태 코드 설정 |
| setBufferSize(int size) | 출력 버퍼 크기 설정 |
| setContentType(String type) | 전달할 내용의 MIME 타입 설정 |
| setHeader(String name, String value) | 지정된 이름과 같은 값을 response 헤더 설정 |
| flushBuffer() | 버퍼의 내용을 클라이언트로 전송 |
| getBufferSize() | 출력 버퍼크기 리턴 |
| encodeURL(String url) |
세션ID와 URL을 합해 전송 코드로 변환 |
| encodeRedirectURL(String url) |
encodeURL의 역할과 동일. sendRedirect에 세션ID를 넘길때 사용 |
| 필드 | 코드 |
메시지 |
| SC_OK | 200 | OK |
| SC_MOVED_PERMANENTLY | 301 | Moved Permanently |
| SC_MOVED_TEMPORARILY | 302 | Move Temporarily |
| SC_UNAUTHORIZED | 401 | Unauthorized |
| SC_FOBIDDEN | 403 | Forbidden |
| SC_NOT_FOUND | 404 | Not Found |
| SC_INTERNAL_SERVER_ERROR | 500 | Internal Server Error |
| SC_SERVICE_UNAVAILABLE | 503 | Service Unavailable |
| 메소드 | 설명 |
| getCharacterEncoding() | 클라이언트가 요청한 정보를 전송할 때 사용한 인코딩 리턴 |
| getContentLength() | 클라이언트가 전송한 요청 정보의 길이 리턴 |
| getContentType() | 클라이언트가 요청한 정보를 전송할 때 사용한 컨텐트 타입 리턴 |
| getContextPath() | 페이지가 속한 웹 어플리케이션의 콘텍스트 경로 리턴 |
| getMethod() | 웹브라우져가 정보를 전송할 때 사용한 방식 리턴 |
| getProtocol() | 클라이언트가 요청한 프로토콜 리턴 |
| getRemoteAddr() | 웹 서버에 연결한 IP 주소 리턴 |
| getRequestURL() | 웹 브라우저가 요청한 URL 경로 리턴 |
| getServerName() | 연결할 때 사용한 서버이름 리턴 |
| getServerPort() | 실행 중인 포트 번호 리턴 |
| 메소드 | 설명 |
| getParameter(String name) |
name이란 이름의 파라미터 값 리턴 |
| getParameterValues(String name) |
name이란 이름의 파라미터 값 배열로 리턴 |
| getParameterNames() | 웹 브라우저가 전송한 파라미터 값 리턴 |
| getParameterMap() | 웹 브라우저가 전송한 파라미터 맵 리턴 |
| 메소드 | 설명 |
| getHeader(String name) | name이란 이름의 헤더 값 리턴 |
| getHeaders(String name) | name이란 이름의 헤더 목록 리턴 |
| getHeaderNames() | 모든 헤더 이름 리턴 |
| getIntHeader(String name) | name이란 이름의 헤더 값 정수로 리턴 |
| getDateHeader(String name) | name이란 이름의 헤더 값 시간 값으로 리턴 |
| request | javax.servlet.http.HttpServletRequest 클라이언트 요청 정보 저장 |
| response | javax.servlet.http.HttpServletResponse 응답 정보 저장 |
| out | javax.servlet.jsp.JspWriter 결과 출력 |
| pageContext | javax.servlet.jsp.PageContext 페이지 정보 저장 |
| application | javax.servlet.ServletContext 웹 어플리케이션 정보 저장 |
| session | javax.servlet.http.HttpSession HTTP 세션 정보 저장 |
| config | javax.servlet.ServletConfig 페이지 설정 정보 저장 |
| page | java.lang.Object 페이지를 구현한 자바 클래스 인스턴스 |
| exception | java.lang.Throwable 예외 객체 |
해당 JSP Page에 적용되는 속성 정의
Snytax
<%@ page
java
[
language="" ]
[ extends="package.class"
]
[ import= "{ package.class | package.* }, ..." ]
[ session="true|false" ]
[ buffer="none|8kb|sizekb" ]
[ autoFlush="true|false" ]
[ isThreadSafe="true|false" ]
[ info="text" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=euc-kr"
]
[ isErrorPage="true|false" ]
%>
Examples
<%@ page import=”java.util.*,java.lang.*” %>
<%@ page
contentType="text/html;charset=euc-kr" %>
<%@ page errorPage=”error.jsp” %>
Description
JSP 파일 or Include 파일의 위치에 대한 제약은 없지만
항상 맨위에 선언하는 것이 좋습니다.
Attributes
11가지의 속성 중 중요한 부분에 대한 정리만 하도록 하겠습니다.
- info 속성
해당
페이지의 역할을 설명해 주는 document 문자열을 추가할 수 있습니다.
<%@page info=” iHelpers
WebSite, by SSM”>
- ContentType
속성
JSP
Page가 생성하는 응답의 MIME ( Multipurpose Internet Mail Extension ) 타입과 Character Set을
지정합니다. MIME은 HTTP 응답에 담기는 정보의 타입을 지정할 때에 사용되며 기본적으로 설정된 MIME은 text/html ,
Character Set 은 ISO-8859-1
<%@page
contentType=”image/gif”>
<%@ page contentType=”text/xml”>
- import
속성
해당 Package를 JSP 파일에서 참조하여 사용할 수 있도록 선언합니다.
<%@ page import=”java.util.List,
java.awt.List” %> 의 경우는 같은 이름을
두 번 import를 사용하였기에 JSP Container의 입장에서는 “모호성이
있는 잘못된 문장” 으로 간주하기에 아래와 같이
선언해 주어야 합니다.
<%@ page import=”java.util.*,
java.awt.List” %>
이와 같이 선언하면 java.awt의 List Class는 기본 이름으로 참조할 수 있지만, java.util 의 경우의 List는 full
name으로 접근해야 합니다. java.util.List 로
java.lang, javax.servlet, javax.servlet.http, javax.servlet.jsp 는 기본적으로
import 되어 있습니다.
이외에 session, buffer,autoFlush .. 속성은 reference를 참조해 주십시오