JAVA Bean & Session - Cookie [ 우주최강미남 ]
발표내용소개 자바빈 (Java Bean) 자바빈의개요 자바빈의설계규약 JSP 에서자바빈사용하기 자바빈의영역 세션과쿠키 (Session & Cookie) 쿠키의개요 쿠키설정 (HTTP 서블릿 API) 세션의개요 JSP 에서의세션관리
Java Bean Q. 웹사이트를개발한다는것과자바빈?? 웹사이트라는것은크게디자이너와프로그래머가함께개발합니다. 하지만, 함께개발하면서발생하는문제가많이존재하기때문에 JSP 와기타등등이등장하였고, 그중하나가 JAVA 코드를기반으로만들어진것 JAVA Bean 입니다. 프로그래머가개발하는 Content 부분 디자이너가구성하는페이지디자인부분
Java Bean Q. 웹사이트를개발한다는것과자바빈?? < 예제코드 > <%@ page contenttype= text/html;charset=euc-kr %> <% id1 = isnull(request.getparameter( id1 )); id2 = isnull(request.getparameter( id2 )); id3 = isnull(request.getparameter( id3 )); id4 = isnull(request.getparameter( id4 )); String sql = select * from prof ; Rs = stmt.executequery(sql); If(Rs.next()){ count = rs.getint( count ); name = rs.getstring( name ); head = rs.getstring( head ); foot = rs.getstring( foot ); } Rs.close(); %> <html> <body> <%if(count!=0){%> count : <%=count%><br> <%}%> name : <%=name%><br> head : <%=head%><br> foot : <%=foot%><br> </body> </html>
Java Bean Q. 그래서자바빈이무엇인가요? 모듈화된 MVC에서 View가 JSP라면, M(Model) 에해당하는것이 Bean 입니다. 모델이프로그램로직을가지고있고 DB와연동을해서작업을하듯이자바빈도동일한역할을합니다. 즉, 자바빈이란, 자바로작성되어진컴포넌트들을일컫는말입니다. JSP JAVA Bean 디자이너 프로그래머
Java Bean Q. 그럼어디서사용을하는것인가요? JSP 와의연동을위해만들어진자바컴포넌트인 Bean 을통해 JSP 와클래스들간에데이터를쉽게연동하고, 또한데이터베이스연동이나뷰데이터교환에사용됩니다.
Java Bean Q. 그럼자바빈은어떻게사용하나요? 자바빈을사용하기위해서는먼저설계규약을알아야합니다. 자바빈은다른클래스와는달리규정되어있는규약을따라서작성해야하며, 이에맞지않을경우는자바빈의특성을갖지않는클래스가되어버릴수있으므로작성할때에는이규약에따라작성해야합니다. JSP JAVA Bean Class <%@ page 속성 1 = 값 1 속성 2 = 값 2 속성 3 = 값 3. %>
Java Bean Q. 자바빈의설계규약 1. 멤버변수마다별도의 get/set 메소드가존재해야한다. ( 메소드명은멤버변수와일치해야한다 ) 2. Get 메소드는파라미터가존재하지않아야한다. 3. Set 메소드는반드시하나이상의파라미터가존재해야한다. 4. 빈즈컴포넌트의속성은반드시읽기또는쓰기가가능해야한다. 5. 생성자는파라미터가존재하지않아야한다.
Java Bean Q. 그럼자바빈은어떻게만드는것인가요? 자바빈은 JAVA 로만들어지는컴포넌트입니다. 즉, JAVA 로만들어져야하며, 이것은패키지단위로관리가됩니다. package test; public class beantest{ private String name = 우주최강미남 ; } public String getname(){ return name; } public void setname(string name){ this.name = name; } 파라미터가없음 파라미터가존재
Java Bean Q. 자바빈을사용하는방법 이렇게만들어진자바빈은 JSP 문서에다음의속성에맞게사용해야합니다. <jsp:usebean id = 객체 ( 빈 ) 이름 class = 자바빈클래스명 scope = 사용범위 /> [ 예제소스 ] <%@ page language="java" contenttype="text/html; charset=euc-kr" pageencoding="euc-kr"%> <jsp:usebean id = "beantest" class = "Bean.BeanTest" scope = "page"/> <html> <head> <meta http-equiv="content-type" content="text/html; charset=euc-kr"> <title>javabean Test</title> </head> <body> <b> 자바빈사용예제 </b> <h3><%=beantest.getname() %></h3> <h3><jsp:getproperty name="beantest" property = "name"/></h3> </body> </html>
Java Bean Q. <jsp:usebean/> 태그는무엇인가요? usebean 은이전에만들어진 Bean 객체를사용하기위한태그입니다. <jsp:usebean id = 객체 ( 빈 ) 이름 class = 자바빈클래스명 scope = 사용범위 /> [ 사용예제 ] <jsp:usebean id = test class = Test.Beans scope = page /> 패키지명 JAVA Bean Class Bean 객체생성 <jsp:usebean />
Java Bean Q. <jsp:setproperty/> 태그 setproperty 는자바빈클래스의속성값을설정하기위한태그입니다. <jsp:setproperty name = 객체 ( 빈 ) 이름 property = 속성명 value = 속성값 /> [ 사용예제 ] <jsp:setproperty name = test property = name value = 미남 /> 기존클래스속성값 바보 빈 : test 미남 속성 : name setproperty 태그로변경후
Java Bean Q. <jsp:setproperty/> 태그 setproperty 는자바빈클래스의속성값을설정하기위한태그입니다. [ 자바빈소스 ] package test; public class beantest{ private String name = 바보 ; X Jsp:setProperty } public String getname(){ return name; } public void setname(string name){ this.name = name; } O Jsp:setProperty
Java Bean Q. <jsp:getproperty/> 태그 getproperty 태그는자바빈클래스의속성값을가져오기위한태그입니다. <jsp:getproperty name = 객체 ( 빈 ) 이름 property = 속성명 /> [ 사용예제 ] <jsp:getproperty name = test property = name /> 기존클래스속성값 name = 바보 빈 : test 바보 속성 : name getproperty 태그사용
Java Bean Q. <jsp:getproperty/> 태그 getproperty 는자바빈클래스의속성값을가져오기위한태그입니다. [ 자바빈소스 ] package test; public class beantest{ private String name = 바보 ; } public String getname(){ return name; } public void setname(string name){ this.name = name; } X O Jsp:getProperty Jsp:getProperty
Java Bean Q. 자바빈의영역 자바빈의영역은총 4 개의영역이존재합니다. 영역 설명 *page 현재페이지의범위에만한정된다. 페이지처리가끝나면유효하지않는다. request request 요청을받고처리를완료할때까지생존되는 scope 이다. session 사이트전체의범위를갖지만, 지속시간동안만유지되는 scope 다 application 사이트전체의범위를갖고, 계속유지될수있는 scope 다. * 기본값은 page
Session Q. 세션과쿠키 세션 웹에저장된정보 쿠키
Cookie Q. 쿠키란무엇인가요? Cookie 는먹는게아냐 사용자로그인 클라이언트에서사용자정보저장 Cookie ( 파일 ) XP 에서의저장위치 C:\Documents and Settings\ 사용자계정이름 \Local Settings\Temporary Internet Files
Cookie Q. 왜내컴퓨터에저장을할까, 니가뭔데? 브라우저가종료되더라도정보가사라지지않는다 쿠키는사용자가컴퓨터를켜든끄든하드디스크에 ( 상당기간 ) 저장되어있다 Stateless : 비연결성 사용자 ID, 사용자 IP, 탐색한페이지정보, 페이지내용탐색한경로등이저장된다
Cookie Q. 그럼보안에위협적이지않을까요? 누군가내컴퓨터의쿠키를살펴본다면 그렇다고해서쿠키를안쓸수도없는노릇이긴한데? ㅋㅋ
Cookie Q. 해결방법 주기적으로내컴퓨터의쿠키를삭제한다. 브라우저의보안을높여, 쿠키사용여부에대한설정을한다. XP 에서의저장위치 C:\Documents and Settings\ 사용자계정이름 \Local Settings\Temporary Internet Files
Cookie Q. JSP 에서는 Cookie 를어떻게설정하나요? HTTP 헤더를이용한쿠키설정방법 Set-Cookie: name = value ; expires= date ; domain= domain ; path= path ; secure 속성 설명 name 쿠키값을설정한다. value 쿠키값을지정한다. Expires 쿠키의만료기간을지정한다 domain 저장된쿠키를서버에게젂송할때의도메인을지정한다. path 쿠키가젂송될서버의 URL 을지정하고, 유효한 URL 일경우젂송한다. secure 이속성을추가하면보안적인채널 (SSL 등 ) 로젂송되어야한다.
Cookie Q. JSP 에서는 Cookie 를어떻게설정하나요? Servlet API 를이용한쿠키설정방법 Cookie cookie = new Cookie(name, value); ----------[ 표 1] Response.setCookie(cookie); -----------------------[ 표 2] 속성 설명 setvalue(string value) 쿠키이름을지정한다. setmaxage(int sec) 쿠키만료기간을지정한다. getvalue() 쿠키값을얻어온다. getmaxage() 쿠키만료기간을얻어온다. getname() 쿠키이름을얻어온다.
Session Q. 세션이란무엇인가요? 서버측의컨테이너에서관리되는정보 세션의정보는컨테이너에접속해서종료시까지유지 접속시간에제한을둘수있다 정보가서버측에저장되어보안측면에서유리 사용자로그인 웹서버컨테이너사용자세션정보관리
Session Q. 세션이란무엇인가요? 쿠키의단점을보안 하드디스크에물리적파일로저장이안되고수명이짧음 최초정보전송
Session Q. JSP 에서는어떻게사용하나요? session.setattribute( name, minam ); -------------------------[ 표 1] String name = (String)session.getAttribute( name ); -------------[ 표 2] 메소드명설명 setattribute(string name, Object value) 세션객체에속성을저장한다. removeattribute(string name) 저장된속성을제거한다. getattribute() 저장된속성을반환한다. getid() 클라이언트의세션 ID 값을반환한다. setmaxinactiveinterval(int sec) 세션의유지시간을설정한다. getmaxinactiveinterval() 세션의유지시간을반환한다. Invalidate() 현재의세션정보들을모두제거한다.
Session Q. JSP 에서는어떻게사용하나요? 메소드명설명 setattribute(string name, Object value) 세션객체에속성을저장한다. removeattribute(string name) 저장된속성을제거한다. getattribute() 저장된속성을반환한다. getid() 클라이언트의세션 ID 값을반환한다. setmaxinactiveinterval(int sec) 세션의유지시간을설정한다. getmaxinactiveinterval() 세션의유지시간을반환한다. Invalidate() 현재의세션정보들을모두제거한다. session.removeattribute( name ); --------------------------------[ 표 1] session.setmaxinactiveinterval(1000); -----------------------------[ 표 2]
Session Q. JSP 에서는어떻게사용하나요? 메소드명설명 setattribute(string name, Object value) 세션객체에속성을저장한다. removeattribute(string name) 저장된속성을제거한다. getattribute() 저장된속성을반환한다. getid() 클라이언트의세션 ID 값을반환한다. setmaxinactiveinterval(int sec) 세션의유지시간을설정한다. getmaxinactiveinterval() 세션의유지시간을반환한다. invalidate() 현재의세션정보들을모두제거한다. session.getmaxinactiveinterval() --------------------------------[ 표 1] session.invalidate(1000); ---------------------------------------[ 표 2]