Fullstack-Study-241204-250625

커리큘럼(12-30/변경)

01. Java
02. git
03. Database 
04. Jsp [Server] (v)

05. 미니프로젝트 (3W)
06. HTML,CSS  
07. JS

08. SpringFramework , SrpingBoot
09. React JS [Front-end]
10. 중간프로젝트 (1M)
11. Linux 명령어
12. AWS 클라우드
13. DevOps - Docker
14. App - Android
15. 최종프로젝트 (1M)

JSP

response 객체

메서드 기능
getCharacterEncoding() 응답할 떄의 문자의 인코딩 형태를 구함
addCookie(Cookie c) 쿠키를 지정
sendRedirect(URL) 지정한 URL로 이동
if(a >= 20) {
	    //주류구매 페이지로 이동
	    response.sendRedirect("res_ex01_success.jsp");
} else {
	    //실패페이지로 이동
	    response.sendRedirect("res_ex01_fail.jsp");
}

  1. 쿠키클래스에서 쿠키 생성
  2. setter메서드로 쿠키 속성 설정
  3. response객체에 쿠키 탑재
  4. 로컬 환경에 저장
<%
 	//쿠키는 서버에서 생성해서, 클라이언트로 전달합니다.
 	//1. 쿠키생성 - (쿠키이름, 쿠키값)
 	Cookie cookie = new Cookie("user_id", "aaa123");
 	Cookie cookie2 = new Cookie("user_name", "유진초이");	
 
 	//2. 쿠키의 속성을 - 시간
 	cookie.setMaxAge(1800); //1800초
 	cookie2.setMaxAge(20); //20초
 	
 	
 	//3. 쿠키를 response에 담는다.
 	response.addCookie(cookie);
 	response.addCookie(cookie2);

%>  
메서드 기능
setMaxAge() 쿠키의 유효시간 설정
setPath() 쿠키사용의 유효디렉토리 설정
setValue() 쿠키의 값 설정
setVersion() 쿠키 버전 설정
getMaxAge() 쿠키 유효기간 정보를 얻음
getName() 쿠키의 이름을 얻음
getPath() 쿠키사용의 유효디렉토리 정보를 얻음
getValue() 쿠키의 값을 얻음
getVersion() 쿠키 버전을 얻음
<%
	    Cookie[] arr = request.getCookies();
	    String rememberMe = "";
 
	    if(arr != null) {
	    	for(Cookie c : arr) {
	    		if(c.getName().equals("rememberMe")) {
	    			rememberMe = c.getValue();
	    		}
	    		
	    	}
	    }
%>  

세션(Session)

Session객체 관련 메서드

메서드 기능
setAttribute() 세션에 데이터 저장
getAttribute() 세션에 저장되어 있는 데이터를 얻음
getAttributeNames() 세션에 저장되어 있는 모든 데이터 세션 이름(key)를 얻음
getId() 자동 생성된 세션의 유니크한 아이디를 얻음
getCreationTime() 세션이 생성된 시간을 구함
getLastAccessedTime() 웹브라우저가 가장 마지막에 세션에 접근한 시간을 구함
setMaxInactiveInterval() 세션의 유효시간 설정( 초 단위로 기록)
getMaxInactiveInterval() 세션의 유효시간을 얻음
removeAttribute() 특정 세션을 삭제
invalidate() 모든 세션 삭제
# session set
<%
	//세션은 내장객체로 서버에서 생성해서 서버가 관리합니다.
	//기본 30분 or 브라우저 종료 하기 까지 세션은 유지 됩니다.
	
	//값 저장
	session.setAttribute("my_id", "abc123");
	session.setAttribute("my_name", "홍길자");	
	
	//세션의 시간을 설정
	//session.setMaxInactiveInterval(3600); //이 세션은 1시간 동안 유지
%>

# session get
<%
	//세션에 저장된 값 확인
	String myId = (String)session.getAttribute("my_id"); //찾을 이름
	String myName = (String)session.getAttribute("my_name"); 

	//시간
	int time = session.getMaxInactiveInterval();	
	
%> 

# session remove
<%
 //세션삭제
 //session.removeAttribute("my_id");
 session.invalidate(); //완전히 세션객체를 삭제
 //다시로그인페이지로
 response.sendRedirect("login.jsp");
%>
  • 요청영역마다 생성
  • 브라우저별로 생성
  • 프로그램 전체에서 딱 한번 최초 가동시 생성

예외 페이지

HTTP 주요 응답 상태코드

  1. 404 : 요청한 URL을 찾을 수 없는 경우
  2. 500 : 서버측 내부 오류로 인해 페이지가 나타나지 않는 경우(java, jsp페이지 내의 코드오류)
  3. 200 : 요청을 성공적으로 처리
  4. 307 : 임시로 페이지 리다이렉트
  5. 400 : 클라이언트의 요청이 잘못된 구문으로 작성
  6. 405 : 요청 방식을 허용하지 않음(GET,POST)
  7. 503 : 서버가 일시적으로 서비스를 제공할 수 없음(일시적 서버 과부하, 서버 임시 보수 등)
  1. 직접 예외 처리
  • 자바의 키워드인 try ~ catach를 사용해 직접 개발자가 예외 처리
  1. 에러 처리할 페이지를 따로 지정
  • 에러가 발생하면 보여줄 JSP페이지는 페이지 지시자의 errorPage속성을 사용하여 지정
  • 예외가 발생할 것으로 예상되는 페이지에 예외가 발생했을 때 보여줄 페이지 지정 <%@ page errorPage = "에러가 발생했을 때 보여줄 페이지.jsp"%>
  • 에러 발생시 유도된 페이지에는 페이지 지시자태그로 isErrorPage 속성을 사용해 true로 값 설정 <%@ page isErrorPage="ture"%>
  1. 응답 상태 코드별로 에러 페이지 지정
  • JSP는 에러 코드별로 사용할 에러 페이지를 web.xml파일 수정을 통해 지정 가능
<error-page>
    <error-code>404</error-code>
    <location>/errorpage/error_404.jsp</location>
</error-page>
  1. 페이지 지시자 태그의 errorPage속성에 지정한 페이지
  2. web.xml에 지정한 에러 타입에 따른 페이지
  3. web.xml에 지정한 응답 상태 코드에 따른 페이지
  4. 위 3항목에 해당하지 않을 경우 톰캣이 제공하는 에러 페이지