Cookie 를 이용한 login 처리
cookie01.jsp<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <% Cookie[] cookies = request.getCookies(); boolean found = false; if(cookies==null){ found=false; }else{ for(int i=0;i<cookies.length;i++){ if(cookies[i].getName().equals("sampleCookie")){ found = true; } } } String msg = null; if( ! found){ Cookie cookie = new Cookie("sampleCookie","This is Sample Cookie"); response.addCookie(cookie); msg = "발견된 쿠키가 없었기 때문에 새로 설정했습니다."; } %> <!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>쿠키 테스트</title> </head> <body> <script type="text/javascript"> var found = <%=found%>; if(!found){ alert("<%=msg%>"); } </script> </body> </html>loginForm.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!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>로그인 폼</title> </head> <body> <form action="loginProc.jsp" method="post"> <table> <tr><th>아이디</th><td><input type="text" name="id"></td></tr> <tr><th>비 번</th><td><input type="password" name="pwd"></td></tr> <tr><td colspan="2"><input type="submit" value="로그인"></td></tr> </table> </form> </body> </html>loginProc.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <% String id= request.getParameter("id"); String pwd= request.getParameter("pwd"); if(id.length()> 0&& pwd.length()>0){ request.setAttribute("login", "pass"); %> <jsp:forward page="loginSuccess.jsp"/> <%}else{%> <jsp:forward page="loginFail.jsp"/> <%} %>loginSuccess.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <% if(request.getAttribute("login")!=null){ Cookie cookie = new Cookie("login","pass"); response.addCookie(cookie); }else{ response.sendRedirect("loginForm.jsp"); return; } %> <!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>로그인 성공</title> </head> <body> <h1>로그인에 성공했습니다.</h1> <%=request.getParameter("id") %><br/> <%=request.getParameter("pwd") %><br/><p/> <a href="service.jsp">서비스 이용하기</a> </body> </html>service.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%@ include file="loginCheck.jsp" %> <!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>회원 이용가능 페이지</title> </head> <body><p/><p/><p/> <h1>회원이므로 이 기능을 이용할 수 있습니다.</h1> </body> </html>loginCheck.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <% Cookie[] cookies = request.getCookies(); boolean pass = false; if(cookies!=null){ for(int i=0;i<cookies.length;i++){ if(cookies[i].getName().equals("login")){ pass = true; break; } } } if(!pass){ response.sendRedirect("loginForm.jsp"); return; } %>
세션(session)이란
웹 컨테이너에서 클라이언트의 정보를 보관할 때 사용
오직 서버에서만 생성
클라이언트마다 세션이 생성
세션과 session 기본 객체
page 디렉티브의 session 속성 값을 true로 지정
-세션이 존재하지 않을 경우 세션이 생성되고, 세션이 존재할 경우 이미 생성된 세션을 사용
session 기본 객체를 이용해서 세션에 접근
-session의 기본 값은 true이므로 false로 하지 않는 이상 항상 세션 사용
<%@ page contentType = ... %>
<%@ page session = "true" %>
<%
...
session.setAttribute("userInfo", userInfo);
...
%>
속성 이용해서 클라이언트 관련 정보 저장
※위 cookie를 이용한 login 처리 예제와 소스 같고 아래만 소스바꿈
loginSuccess.jsp<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <% if(request.getAttribute("login")!=null){ /*상태 정보가 session으로 감 */ session.setAttribute("login","pass"); }else{ response.sendRedirect("loginForm.jsp"); return; } %> <!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>로그인 성공</title> </head> <body> <h1>로그인에 성공했습니다.</h1> <%=request.getParameter("id") %><br/> <%=request.getParameter("pwd") %><br/><p/> <a href="service.jsp">서비스 이용하기</a> </body> </html>loginCheck.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <% String login = (String)session.getAttribute("login"); if(login==null){ response.sendRedirect("loginForm.jsp"); return; } %>
모든 페이지에서 로그인체크 해서 세션정보(아이디 비번)값이 없으면 경고 창 띄우고 loginForm으로 이동
loginCheck.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <% String login = (String)session.getAttribute("login"); boolean pass = false; if(login!=null){ pass = true; } %> <script type="text/javascript"> var pass = <%=pass%>; if(!pass){ alert("회원으로 로그인한 경우에만 사용할 수 있습니다."); location.href="loginForm.jsp"; } </script>
자바빈
Bean
-1.기본 생성자
-2.변수
-3.set,get
-4.public
자바빈(JavaBeans)
-자바빈 - 웹 프로그래밍에서 데이터의 표현을 목적으로 사용
-일반적인 구성
값을 저장하기 위한 필드
값을 수정하기 위한 setter
값을 읽기 위한 getter
public class BeanClassName { /* 값을 저장하는 필드 */ private String value; /* BeanClassName의 기본 생성자 */ public BeanClassName() { } /* 필드의 값을 읽어오는 값 */ public String getValue() { return value; } /* 필드의 값을 변경하는 값 */ public void setValue(String value) { this.value = value; } }
<jsp:useBean> 태그
JSP에서 자바빈 객체를 생성할 때 사용
구문
-<jsp:useBean id="[빈이름]" class="[자바빈클래스이름]" scope="[범위]" />
id - JSP 페이지에서 자바빈 객체에 접근할 때 사용할 이름
class - 패키지 이름을 포함한 자바빈 클래스의 완전한 이름
scope - 자바빈 객체가 저장될 영역을 지정한다. page, request, session, application 중
하나를 값으로 갖는다. 기본값은 page.
-예
<jsp:useBean id="info" class="chap11.member.MemberInfo" scope="request" /> <%= info.getName() %>
'JSP > 2012.04강의(MySQL)' 카테고리의 다른 글
복습8 (0) | 2012.07.13 |
---|---|
복습7 회원 정보 저장 폼 (0) | 2012.07.12 |
복습5 페이지 모듈화,error page,Cookie (0) | 2012.07.10 |
복습4 JSP주요 기본 객체,영역객체(Scope Object),속성(Attribute) (0) | 2012.07.09 |
복습3 선언부(Declaration),request 기본 객체,리다이렉트(Redirect) (0) | 2012.07.06 |