홈피를 만들어 놓고 정작 중요한 세션 설정을 않했었다;; (오픈 전이라 다행이다.ㅜㅡㅜ 큰일 날뻔 했다.)
만든 페이지의 경우 ID와 password가 같으면 Main 페이지로 이동하게 만들었다.
넘어온 세션(sessionId)을 체크한다. String에 만일 세션이 있다면 true를 없다면 false가 들어갈것이다.
Main 페이지에서 세션제거를 눌러주면 발동하는 페이지. 세션을 삭제한다.
이게 왜 중요 한지는 말 않해도 다 알듯. (로그인 없이 특정 페이지를 마음대로 들어갈수 있다. 끔찍하잔아!)
아주~ 간단한 예제를 보고 나도 만들었으니 나도 아주 간단하게 예제를 쓴다.
먼저 login 부분(sessionLogin.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>session test </title>
</head>
<%
String id = request.getParameter("id") == null ? "1":request.getParameter("id");
String password = request.getParameter("password") == null ? "2":request.getParameter("password");
if (id.equals(password)) {
session.setAttribute("sessionId", id);
response.sendRedirect("sessionMain.jsp");
}
else{
%>
<body>
<form action="sessionLogin.jsp"
method="post">
아이디 <input type="text" name="id" size="10">
암호 <input type="password" name="password" size="10">
<input type="submit" value="로그인">
</form>
</body>
<%} %>
</html>
만든 페이지의 경우 ID와 password가 같으면 Main 페이지로 이동하게 만들었다.
중요한 부분은 빨간색으로 칠해진 session 설정 부분 . ID로 sessionId 라는 이름으로 세션을 설정했다.
다음은 Main부분 (sessionMain.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>session Main</title>
<%
String sessionid = (String)session.getAttribute("sessionId");
boolean sessiondecide = sessionid == null ? false : true;
if(sessiondecide == false){
/******************************************
세션 객체가 없다면 최초 로그인 페이지로 되돌린다.
*******************************************/
response.sendRedirect("sessionLogin.jsp");
return;
}
%>
</head>
<body>
<a href="sessionDelete.jsp">세션 제거</a>
</body>
</html>
그다음 if 문에서 false면 처음 화면인 Login화면으로 넘어가게 만들었다.
그다음엔 세션 제거 부분 (sessionDelete.jsp)
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
session = request.getSession(false);
if(session != null){ session.invalidate(); }
response.sendRedirect("sessionLogin.jsp");
%>
getSession(false) 함수는 세션이 있다면 세션을 반환하고 없다면 false를 반환한다. 세션이 있다면 if문에 걸려서 세션을 삭제한다. ( invalidate()) 그다음 처음 화면(sessionLogin.jsp) 으로 이동한다.
'web > JSP' 카테고리의 다른 글
서버 시간 알아내기 (0) | 2011.02.15 |
---|---|
jsp java.lang.UnsupportedClassVersionError 자바빈 500 에러 (0) | 2011.01.25 |
JSP 소스 프리징 현상. 소스반영 안됨 현상. (0) | 2010.12.09 |
JSP Forward 와 Redirect 의 차이 (8) | 2010.12.03 |
jsp 동적 테이블생성 select 추가 (0) | 2010.11.26 |