JSP&Servlet) request, response, cookie, session
- request 객체의 이해
- 웹브라우저를 통해 서버에 어떤 정보를 요청하는 것을 request라고 합니다. 그리고 이러한 요청 정보는 request객체가 관리 합니다.
- Request객체 관련 메소드
getMehod() : get방식과 post방식을 구분할 수 있습니다.
getSession() : 세션 객체를 얻습니다.
getProtocol() : 해당 프로토콜을 얻습니다.
getRequestURL() : 요청 URL을 얻습니다.
getRequestURI() : 요청 URI를 얻습니다.
getQueryString() : 쿼리스트림을 얻습니다.
- Parameter 메소드 : 실제 많이 쓰이는 메소드는 parameter와 관련된 메소드들 입니다.
- jsp페이지를 제작하는 목적이 데이터 값을 전송하기 위해서 이므로 ,parameter 관련 메소드는 중요합니다.
getParameterNames() : 모든 파라미터 이름을 구합니다.
getParameterValues(String name) : name에 해당하는 파라미터값들을 구합니다.
- response 객체의 이해
- 웹브라우저의 요청에 응답하는 것을 response라고 하며, 이러한 응답의 정보를 가지고 있는 객체를 response객체라고 합니다.
- response객체 관련 메소드
addCookie(Cookie) : 쿠키를 지정 합니다.
sendRedict(URL) : 지정한 URL로 이동합니다.
requestex.html -> request_send.jsp -(sendRedirect())->pass.jsp or ng.jsp
<requestex.html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="EUC-KR"> <title>Title</title> </head> <body> <form action = "request_send.jsp"> "당신의 나이는 : " <input type="text" name="age" size="5"> <input type="submit" value="전송"> </form> </body> </html>
<request_send.jsp>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%! int age; %> <% String str = request.getParameter("age"); age = Integer.parseInt(str); if(age >= 20){ response.sendRedirect("pass.jsp?age="+age); } else { response.sendRedirect("ng.jsp?age="+age); } %> <%= age %> </body> </html>
<pass.jsp>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%! int age; %> <% String str = request.getParameter("age"); age = Integer.parseInt(str); %> 성인입니다. <a href="requestex.html">처음으로 이동</a> </body> </html>
<ng.jsp>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%! int age; %> <% String str = request.getParameter("age"); age = Integer.parseInt(str); %> 미성년자입니다. <a href="requestex.html">처음으로 이동</a> </body>
- 액션태그 : JSP페이지 내에서 어떤 동작을 하도록 지시하는 태그입니다. 예를 들어 페이지 이동, 페이지 include 등등 입니다.
<jsp:forward page="sub.jsp"/>
- url은 바뀌지 않고 sub.jsp 내용을 보여준다.
2. include : 현재 페이지에 다른 페이지를 삽입할 때 사용합니다.
2. include : 현재 페이지에 다른 페이지를 삽입할 때 사용합니다.
<h1> include01.jsp 페이지 입니다. </h1> <jsp:include page = "include02.jsp" flush="true"/> <h1> 다시 include01.jsp 페이지 입니다. </h1>
3. param : forward 및 include 태그에 데이터 전달을 목적으로 사용되는 태그입니다. 이름과 값으로 이루어져 있습니다.
- 연결이 끊겼을 때 어떤 정보를 지속적으로 유지하기 위한 수단으로 쿠키라는 방식을 사용합니다.
- 쿠키는 서버에서 생성하여, 서버가 아닌 클라이언트 속에 특정 정보를 저장합니다. 그리고 서버에 요청 할 때마다 쿠키의 속성값을 참조 또는 변경 할 수 있습니다.
- 쿠키는 4kb로 용량이 제한적이며, 300개까지 데이터 정보를 가질 수 있습니다.
- setMaxAge() : 쿠키 유효기간을 설정 합니다.
- setpath() : 쿠키사용의 유효 디렉토리를 설정 합니다.
- setValue() : 쿠키의 값을 설정 합니다.
- setVersion() : 쿠키 버전을 설정 합니다.
- getMaxAge() : 쿠키 유효기간 정보를 얻습니다.
- getName() : 쿠키 이름을 얻습니다.
- getPath() : 쿠키사용의 유효 디렉토리 정보를 얻습니다.
- getValue() : 쿠키의 값을 얻습니다.
- getVersion() : 쿠키 버전을 얻습니다.
- 세션도 쿠키와 마찬가지로 서버와의 관계를 유지하기 위한 수단입니다.
- 쿠키와 달리 클라이언트의 특정 위치에 저장되는 것이 아니라, 서버상에 객체로 존재 합니다.
- 세션은 서버에서만 접근이 가능하여 보안이 좋고, 저장할 수 있는 데이터에 한계가 없습니다.
- setAttribute() : 세션에 데이터를 저장 합니다.
- getAttribute() : 세션에서 데이터를 얻습니다.
- getAttributeNames() : 세션에 저장되어 있는 모든 데이터의 이름(유니크한 키값)을 얻습니다.
- getId() : 자동 생성된 세션의 유니크한 아이디를 얻습니다.
- isNew() : 세션이 최초 생성되었는지, 이전에 생성된 세션인지를 구분 합니다.
- getMaxInactiveInterval() : 세션의 유효시간을 얻습니다. 가장 최근 요청시점을 기준으로 카운트 됩니다. (C:\javalec\apache-tomcat-7.0.57\apache-tomcat-7.0.57\conf\web.xml 참조)
- removeAttribute() : 세션에서 특정 데이터 제거 합니다.
- Invalidate() : 세션의 모든 데이터를 삭제 합니다.
- JSP, Servlet에서 예외적인 상황이 발생했을 경우 웹컨테이너(톰캣)에서 제공되는 기본적인 예외 페이지가 아닌 지정된 페이지를 유도할 수 있습니다.
source : https://www.inflearn.com(신입SW인력을 위한 실전 JSP&Servlet)
<jsp:forward page="forward_param.jsp"> <jsp:param name="id" value="abcdef" /> <jsp:param name="pw" value="1234 /> </jsp:forward>
- 쿠키
- 연결이 끊겼을 때 어떤 정보를 지속적으로 유지하기 위한 수단으로 쿠키라는 방식을 사용합니다.
- 쿠키는 서버에서 생성하여, 서버가 아닌 클라이언트 속에 특정 정보를 저장합니다. 그리고 서버에 요청 할 때마다 쿠키의 속성값을 참조 또는 변경 할 수 있습니다.
- 쿠키는 4kb로 용량이 제한적이며, 300개까지 데이터 정보를 가질 수 있습니다.
- 쿠키 문법
- 쿠키 생성( 쿠키 클래스를 이용합니다.) -> 속성 설정(setter를 이용합니다) -> response객체에 쿠키 탑재( response.addCooke()를 이용합니다.)
- setMaxAge() : 쿠키 유효기간을 설정 합니다.
- setpath() : 쿠키사용의 유효 디렉토리를 설정 합니다.
- setValue() : 쿠키의 값을 설정 합니다.
- setVersion() : 쿠키 버전을 설정 합니다.
- getMaxAge() : 쿠키 유효기간 정보를 얻습니다.
- getName() : 쿠키 이름을 얻습니다.
- getPath() : 쿠키사용의 유효 디렉토리 정보를 얻습니다.
- getValue() : 쿠키의 값을 얻습니다.
- getVersion() : 쿠키 버전을 얻습니다.
- 세션
- 세션도 쿠키와 마찬가지로 서버와의 관계를 유지하기 위한 수단입니다.
- 쿠키와 달리 클라이언트의 특정 위치에 저장되는 것이 아니라, 서버상에 객체로 존재 합니다.
- 세션은 서버에서만 접근이 가능하여 보안이 좋고, 저장할 수 있는 데이터에 한계가 없습니다.
- 세션 문법
- 세션은 클라이언트의 요청이 발생하면 자동 생성 됩니다. 그리고 session이라는 내부 객체를 지원하여 세션의 속성을 설정 할 수 있습니다.
- 클라이언트 요청(웹브라우저) -> session 자동 생성 -> session 속성 설정(session 내 객체의 메소드 이용)
- setAttribute() : 세션에 데이터를 저장 합니다.
- getAttribute() : 세션에서 데이터를 얻습니다.
- getAttributeNames() : 세션에 저장되어 있는 모든 데이터의 이름(유니크한 키값)을 얻습니다.
- getId() : 자동 생성된 세션의 유니크한 아이디를 얻습니다.
- isNew() : 세션이 최초 생성되었는지, 이전에 생성된 세션인지를 구분 합니다.
- getMaxInactiveInterval() : 세션의 유효시간을 얻습니다. 가장 최근 요청시점을 기준으로 카운트 됩니다. (C:\javalec\apache-tomcat-7.0.57\apache-tomcat-7.0.57\conf\web.xml 참조)
- removeAttribute() : 세션에서 특정 데이터 제거 합니다.
- Invalidate() : 세션의 모든 데이터를 삭제 합니다.
- 예외 페이지
- JSP, Servlet에서 예외적인 상황이 발생했을 경우 웹컨테이너(톰캣)에서 제공되는 기본적인 예외 페이지가 아닌 지정된 페이지를 유도할 수 있습니다.
- 페이지 지시자를 이용한 예외처리
- web.xml파일을 이용한 예외 처리
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%@ page isErrorPage="true"%> <% response.setStatus(200); %> <!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>Insert title here</title> </head> <body> 에러 발생<br /> <%= exception.getMessage() %> </body> </html>
<error-page> <error-code>404</error-code> <location>/error404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/error500.jsp</location> </error-page>
source : https://www.inflearn.com(신입SW인력을 위한 실전 JSP&Servlet)
댓글 없음: