JSP 코드 블럭, 내장 객체
Servlet : JAVA코드 안에 HTML태그가 삽입되는 형식. 확장자가 .java임
=>MVC 패턴에서 Controller로 이용
JSP(Java Server Page) : HTML안에 <%JAVA코드%>를 삽입하는 형식
(jsp로 작성하면 웹 컨테이너가 알아서 서블릿으로 변환해줌)
=>MVC 패턴에서 View로 이용
JSP 코드 블럭
Servlet 파일로 변환 될 때 JAVA 코드가 적용될 수 있도록 설정
<% 순수하게 java형태로 코드를 입력 %>
<%= out.print에 적는 것과 같은 결과를 줄 수 있다 %>
${ EL태그입니다. <%=이 코드를%>이걸로 바꿔서 사용할 수 있다.null이 공백으로 처리됨 }
<%! 멤버변수, 멤버함수로 들어감 %> (*얘 말고는 일반적으로 모두 _jspService라는 메서드 안에 들어감*)
<%@ 페이지 지시자 %>
${"Hello"} <br>
<%= "Hello" %> <br>
<% out.println("Hello"); %>
JSP 내장 객체
객체를 생성하는 과정 없이 바로 사용할 수 있는 객체.
JSP가 서블릿 파일로 변환될 때 JSP 컨테이너가 객체를 자동으로 생성해줌
내장객체 | 주요 역할 |
request | HTML 폼 요서의 선택 값 등 사용자 입력 정보를 읽음(사용자 요청 처리). |
response | 사용자 요청에 대한 응답을 처리 |
pageContext | 현재 JSP 실행에 대한 context 정보 참조 |
session | 클라이언트의 세션 정보 처리 |
application | 웹 서버의 애플리케이션 처리와 관련된 정보 참조 |
out | 사용자에게 전달하기 위한 output 스트림을 처리 |
config | 현재 JSP의 초기화 환경 처리 |
page | 현재 JSP의 클래스 정보를 보기 위해 사용 |
exception | 예외 처리 |
*저장소*
request : forward관계일 때 공유할 수 있는 저장소(command
response : redirect를 이용해 다른 페이지로 보내버리는 관계일 때 사용
pagecontext : 페이지 내에서 혼자 사용하는 페이지 내의 저장소
session, page, cookie
pageContext.setAttribute("name", "page Man");
request.setAttribute("name", "request Man");
session.setAttribute("name", "session Man");
application.setAttribute("name", "application Man");
System.out.println("firstPage.jsp");
System.out.println("하나의 페이지 속성 :" + pageContext.getAttribute("name"));
System.out.println("하나의 요청 속성 :" + request.getAttribute("name"));
System.out.println("하나의 세션 속성 :" + session.getAttribute("name"));
System.out.println("하나의 어플리케이션 속성 :" + application.getAttribute("name"));
request.getRequestDispatcher("07_secondPage.jsp").forward(request, response);
https://h-yeonee.tistory.com/7?category=884682
request 주요 메소드
메소드 | 기능 |
getParameterNames() | 현재 요청에 포함된 매개변수의 이름을 Enumeration형으로 반환 |
getParameter(name) | 문자열 name과 이름이 같은 매개변수의 값을 반환 |
getParameterValues(name) | 문자열 name과 이름이 같은 매개변수의 값을 배열 형태로 반환 |
getCookies() | 모든 쿠키 값을 배열 형태로 반환 |
getMethod() | 현재 요청을 GET이나 POST 형태로 반환 |
getSession() | 현재 세션 객체를 반환 |
getRemoteAddr() | 클라이언트의 IP 주소를 알려준다. |
getProtocol() | 현재 서버의 프로토콜을 문자열 형태로 알려준다. |
setCharacterEncoding() | 현재 JSP로 전달되는 내용을 지정한 캐릭터셋으로 변환시켜준다. HTML 폼에서 한글 입력을 정상적으로 처리해주기 위해서는 반드시 필요 |
response 주요 메소드
메소드 | 기능 |
setContentType(type) | 문자열 형태의 type에 지정된 MIME Type으로 contentType을 설정 |
setHeader(name, value) | 문자열 name의 이름으로 문자열 value의 값을 헤더로 설정 |
setDateHeader(name, date) | 문자열 name의 이름으로 date에 설정된 밀리세컨드 시간 값을 헤더에 설정 |
sendError(status, msg) | 오류 코드를 설정하고 메세지를 보낸다. |
sendRedirect(url) | 클라이언트 요청을 다른 페이지로 전송 |
out 주요 메소드(안쓰는게 좋음)
메소드 | 기능 |
getBufferSize() | 출력 버퍼의 크기를 바이트로 알려준다. |
getRemaining() | 남아있는 버퍼의 크기 중 사용 가능한 비율을 알려준다. |
clearBuffer() | 버퍼에 있는 모든 컨텐츠 삭제 |
flush() | 버퍼를 비우고 출력 스트림도 비운다. |
close() | output stream을 닫고 버퍼를 비운다. |
println(content) | content의 내용을 newline(개행)과 함께 출력 |
print(content) | content의 내용을 출력 |
session 주요 메소드
메소드 | 기능 |
getId() | 각 접속에 대한 세션 고유의 ID를 문자열 형태로 반환 |
getCreatingTme() | 세션 생성시간을 밀리세컨드 값으로 반환 |
getLastAccessedTime() | 현재 세션으로 마지막 작업한 시간을 밀리세컨드 값으로 반환 |
getMaxInactiveInterval() | 세션의 유지 시간을 초로 반환하여 세션의 유효 시간을 알 수 있다. |
setMaxInactiveInterval(t) | 세션의 유효 시간을 t에 설정된 초 값으로 설정한다. |
invalidate() | 현재 세션을 종료한다. 세션과 관련된 값들은 모두 지워진다. |
getAttribute(attr) | 문자열 attr로 설정된 세션 값을 Object형으로 반환 |
setAttribute(name, attr) | 문자열 name으로 Object형 attr 설정 |
application 주요 메소드
메소드 | 기능 |
void setAttribute(String name, Object o) | application 객체에 추가 객체를 저장 |
Object getAttribute(String name) | application 객체에 추가된 객체를 가져옴 |
void removeAttribute(String name) | application 객체에 특정 Attribute를 지움 |
String getServerInfo() | 컨테이너 이름과 버전을 리턴 |
void log(String msg) | 제공된 문자열을 서블릿 로그 파일에 기록 |
exception 주요 메소드
메소드 | 기능 |
getMessage() | 문자열로 된 오류 메세지 반환 |
printStackTrace() | 프택 추적 정보 출력 |
toString() | 예외 클래스 이름과 함께 오류 메세지 반환 |
config
page
pageContext