서블릿 JSP

JSP 코드 블럭, 내장 객체

짱코딩러 2022. 9. 12. 23:55

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