8장 상태정보유지

brave_chicken·2024년 4월 23일

잇(IT)생 챌린지

목록 보기
34/90

8장 상태정보유지

  • index.jsp 안에, 같은 request scope에서 실행되는 어플리케이션

    "Request scope"는 웹 개발에서 사용되는 용어로, 각각의 HTTP 요청마다 새로 생성되며, 해당 요청 내에서만 유효한 객체나 데이터를 의미합니다. 이러한 "scope"는 요청의 수명 주기 동안 유지되며, 요청이 완료되면 소멸합니다.
    "같은 request scope를 가졌다"는 표현은 같은 HTTP 요청 내에서 작동하는 여러 개체나 컴포넌트가 동일한 요청 범위(scope)를 가지고 있다는 것을 의미합니다. 이는 같은 요청 내에서 생성된 데이터나 상태를 공유하고, 이를 통해 정보를 교환할 수 있다는 것을 의미합니다.

  • request는 메모리 들어갔다 나오면 stateless, 메모리에 저장되었다가 사라짐
  • http프로토콜의 특성 : 로그인처럼 페이지왔다갔다하면서 봐야하는 데이터는 request에 저장하면 상태정보가 유지가 안됨


  • 상태정보 유지기술 : 쿠키, 세션

    쿠키 : 클라이언트에 저장(텍스트, 기본형, String)
    세션 : 서버에 저장(Object)->광범위

stateless - cookieStart.jsp

cookies 경로

C:\Users\사용자\AppData\Local\Google\Chrome\User Data\Default\Network

인터넷 사용기록 삭제

쿠키

cookieStart.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>stateless - cookieStart.jsp</title>
	</head>
	<body>
		<h3><a href="/serverweb/setCookie">쿠키설정하기</a></h3>
		<h3><a href="/serverweb/getCookie">쿠키가져오기</a></h3>
	</body>
</html>

SetCookieServlet / 쿠키설정하기

@WebServlet(name="setCookie", urlPatterns = {"/setCookie"})
public class SetCookieServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//1.쿠키로 클라이언트에 보내고 싶은 데이터를 셋팅해서 Cookie객체를 생성
		//=>쿠키에 한글을 쓰는 경우 인코딩을 해야한다.
		//URL에 한글이 포함된 경우 한글이 깨질 수 있으므로 %기호를 포함해서 변환
		//인코딩은 데이터 형식을 변환하는 과정
		//Cookie cookie = new Cookie("bookTitle", URLEncoder.encode("이클립스", "UTF-8"));//지금은 자동변환돼서 안해도되지만 해야하는곳도있음
		Cookie cookie1 = new Cookie("bookTitle", "이클립스");
		Cookie cookie2 = new Cookie("bookPage", "128");
		
		//2. 쿠키에 옵션들을 설정
		//1) 유효시간 - 초단위
		cookie1.setMaxAge(60*60*24);
		cookie2.setMaxAge(60*60*24);//60초 60분 24시간
		
		//3.response에 쿠키를 저장하기
		response.addCookie(cookie1);
		response.addCookie(cookie2);
		
		//4.요청재지정(jsp로 response하기)
		response.sendRedirect("/serverweb/stateless/cookieStart.jsp");
	}
}

GetCookieServlet / 쿠키가져오기

  • 쿠키에서 필요한 정보를 꺼내서 클라이언트가 사용할 수 있도록 공유
@WebServlet(name="getCookie", urlPatterns = {"/getCookie"})
public class GetCookieServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//1. request메시지에 쿠키정보가 포함되어 요청되므로 request객체에서 쿠키정보를 추출
		Cookie[] cookies= request.getCookies();
		
		//2. Cookie[]에서 원하는 쿠키를 찾아 쿠키의 value를 저장
		String bookTitle = "";
		String bookPage = "";
		for(Cookie cookie:cookies) {
			if(cookie.getName().equals("bookTitle")) {
				bookTitle = cookie.getValue();
			}else if(cookie.getName().equals("bookPage")){
				bookPage = cookie.getValue();
			}
			System.out.println(cookie.getName()+" : "+cookie.getValue());
		}
		
		//3.꺼낸 쿠키를 공유
		request.setAttribute("bookTitle", bookTitle);
		request.setAttribute("bookPage", bookPage);
		
		//4.요청재지정
		RequestDispatcher rd = request.getRequestDispatcher("/stateless/cookieResult.jsp");
		rd.forward(request, response);
	}

}

cookieResult.jsp

<%@page import="java.net.URLDecoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>cookieResult</title>
	</head>
	<body>
		<%
			//서블릿에서 공유한 데이터를 추출
			String bookTitle = (String)request.getAttribute("bookTitle");
			String bookPage = (String)request.getAttribute("bookPage");
			//encoding된 데이터를 변경
			//URLDecoder.decode(bookTitle,"UTF-8");
		%>
		<h2>최근에 보신 책의 제목은 <%=bookTitle %>이고 <%=bookPage %>페이지 까지 읽었습니다.</h2>
	</body>
</html>

쿠키실습

쿠키연습하기
쿠키 저장하기 - 아이디저장이라는 체크박스를 선택한 상태로 로그인이 성공하면 쿠키에 로그인한 사용자의 아이디를 id이름으로 저장될 수 있도록 LoginServlet을 수정하세요
2. login.jsp에서 쿠키에서 id 라는 이름으로 저장된 쿠키를 꺼내서 아이디를 입력하는 양식태그에 출력할 수 있도록 login.jsp를 수정하세요

LoginServlet

@WebServlet(name = "login", urlPatterns = { "/member/mvc/login" })
public class LoginServlet extends HttpServlet {
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//1.요청정보추출
		String id = request.getParameter("id");
		String pass = request.getParameter("pass");
		
		String check = request.getParameter("member_id_save");
		//System.out.println(check);
		
		//2.비지니스 메소드 호출
		MemberDAO dao = new MemberDAOImpl();
		MemberDTO user = dao.login(id, pass);
		
		//로그인이 성공하고 체크박스에 체크가 된 상태면 로그인한 아이디를 저장
		if(check!=null) {
			if(user!=null & check.equals("T")) {
				//쿠키 만들어 response에 add시키기
				Cookie cookie = new Cookie("id", user.getId());
				cookie.setMaxAge(60*60*24);
				cookie.setPath("/serverweb");
				response.addCookie(cookie);
			}
		}
		
		System.out.println(user);
		
		//3. 데이터 공유
		request.setAttribute("loginUser", user);
		
		//4. 요청재지정(응답페이지로 이동)
		RequestDispatcher rd = request.getRequestDispatcher("/index.jsp");
		rd.forward(request, response);
	}
}

login.jsp

<%@page import="javax.sound.midi.SysexMessage"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
	<%
		//쿠키를 추출해서 저장된 id정보 가져오기
		String id = "";
		Cookie[] cookies = request.getCookies();
		if(cookies!=null){
			for(Cookie cookie:cookies) {
				if(cookie.getName().equals("id")) {
					id = cookie.getValue();
				}
				System.out.println(cookie.getName()+":"+cookie.getValue());
			}
		}%>
</head>
<body>
	<jsp:include page="../top.jsp"/>
	<div class="container-fluid">
		<div class="row">
			<div class="col-lg-2 sidenav">
				<jsp:include page="/layout/emp_menu.jsp"/>
			</div>
			<div class="col-lg-10">
				<form name="login_frm" action="/serverweb/member/mvc/login" method="post">
		<table cellpadding="0" cellspacing=5 width="815" bgcolor=#f3f3f3
			border=0>
			<tr>
				<td bgcolor=#ffffff height=100% align=center valign=top>
					<table cellpadding=0 cellspacing=0 border=0 width=710>

					
						<tr>
							<td>
								<table cellpadding="0" cellspacing=0 width="100%"
									bgcolor=#f7f7f7 border=0>
									<tr>
										<td bgcolor=#ffffff align=center>

											<table cellpadding="0" cellspacing="0" border=0 align=center
												width=678>
												<tr>
													<td align=center width=353>

														<table cellpadding="0" cellspacing="0" border=0 width=353>
															<tr>
																<td>
																	<table cellpadding="0" cellspacing="0" border=0>

																		<tr>
																			<td colspan=3><img
																				src="/serverweb/images/page_login.gif"></td>
																		</tr>
																		<tr>
																			<td height=25></td>
																		</tr>
																		<tr>
																			<td background="/serverweb/images/inputBg.gif"><img
																				src="/serverweb/images/login_id.gif"></td>
																			<td background="/serverweb/images/inputBg.gif"><input
																				type="text" name="id" size="15" class="grayinput"
																				tabindex=1 style="width: 156;"
																				 value="<%=id%>"></td>
																			<td rowspan=3 style="padding-left: 10" valign=bottom>
																			<input
																				type='image' src="/serverweb/images/btn_login.gif"
																				border="0" tabindex=3></td>
																		</tr>
																		<tr>
																			<td height=10></td>
																		</tr>
																		<tr>
																			<td background="/serverweb/images/inputBg.gif"><img
																				src="/serverweb/images/login_pass.gif"></td>
																			<td background="/serverweb/images/inputBg.gif"><input
																				type="password" name="pass" size="15"
																				class="grayinput" tabindex='2' style='width: 156;'>
																			</td>
																		</tr>
																		<tr>
																			<td colspan=3 align=right
																				style="padding-right: 9; padding-top: 12"><span
																				style="display: inline"><label
																					for="member_id_save">
																					<input type="checkbox"
																						name="member_id_save" id="member_id_save"
																						value="T"<%if(id.length()>1) %><%= "checked" %>/>아이디저장</label> </span></td>
																		</tr>
																	</table>
																</td>
															</tr>
															<tr>
																<td colspan=3></td>
															</tr>

														</table>

													</td>

													<td style="padding-left: 60; padding-top: 60"></td>
												</tr>
												<tr>
													<td colspan=3 style="padding-top: 20" style=padding-left:40></td>
												</tr>
											</table>

										</td>
									</tr>
								</table>
							</td>
						</tr>


						<tr>
							<td height=30></td>
						</tr>
						<tr>
							<td></td>
						</tr>

						<tr>
							<td height=49></td>
						</tr>
					</table>
				</td>
			</tr>
		</table>
	</form>
			</div>
		</div>
	</div>
	

</body>
</html>

세션

  • 세션은 브라우저 켜져있을때만 유지 ex.로그인,로그아웃
  • 여러 페이지 클릭클릭해도 데이터유지해야할때~

sessionStart

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>sessionStart</title>
	</head>
	<body>
		<h2><a href="/serverweb/sessionTest?id=myid">세션시작하기</a></h2>
	</body>
</html>

session_first

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>session_first</title>
	</head>
	<body>
		<%
			String mydata= (String)session.getAttribute("mydata");
		
		%>
		<h2>꺼낸 데이터:<%=mydata %></h2>
		<hr/>
		<h3><a href="/serverweb/stateless/session_second.jsp">데이터가 공유될까요?</a></h3>
	</body>
</html>

session_second

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>session_second.jsp</title>
	</head>
	<body>
		<%
			String mydata= (String)session.getAttribute("mydata");
		
		%>
		<h2>꺼낸 데이터(second문서 - 서블릿에서 공유한 데이터):<%=mydata %></h2>
		<hr/>
		<h3><a href="/serverweb/stateless/session_second.jsp">데이터가 공유될까요?</a></h3>
	</body>
</html>

SessionTestServlet

//세션테스트하기
@WebServlet(name="sessionTest", urlPatterns = {"/sessionTest"})
public class SessionTestServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//1. 요청정보 추출하기
		String id = request.getParameter("id");
		
		//2.데이터공유하기 - request는 한 번에 요청에 대해서만 데이터를 공유하므로 사이트를 서비스하는 기능을 사용하는 동안 데이터가 유지될 수 있도록 하기 어렵다.
		//세션을 활용 - HttpSession객체를 만들어서 데이터를 공유
		//request 객체가 제공하는 getSession메소드를 이용
		//getSession() - 무조건 세션객체를 생성
		//getSession(true) - getSession()과 동일
		//getSession(false) - 사용하던 세션이 서버에 만들어져 있으면 해당 세션객체를 리턴하고 없으면 null을 리턴
		HttpSession session = request.getSession();
		session.setAttribute("mydata", id);
		
		//3.요청재지정
		RequestDispatcher rd = request.getRequestDispatcher("/stateless/session_first.jsp");
		rd.forward(request, response);
	}

}

세션실습

세션을 이용해서 로그인 처리를 하세요
LoginServlet을 수정해서 로그인이 성공하면 세션을 생성하고 세션에 로그인 사용자의 정보를 저장
모든 jsp에서는 사용자의 정보를 세션에서 꺼내서 확인하기

LoginServlet

@WebServlet(name = "login", urlPatterns = { "/member/mvc/login" })
public class LoginServlet extends HttpServlet {
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//1.요청정보추출
		String id = request.getParameter("id");
		String pass = request.getParameter("pass");
		
		String check = request.getParameter("member_id_save");
		//System.out.println(check);
		
		//2.비지니스 메소드 호출
		MemberDAO dao = new MemberDAOImpl();
		MemberDTO user = dao.login(id, pass);
		
		//로그인이 성공하고 체크박스에 체크가 된 상태면 로그인한 아이디를 저장
		if(check!=null) {
			if(user!=null & check.equals("T")) {
				//쿠키 만들어 response에 add시키기
				Cookie cookie = new Cookie("id", user.getId());
				cookie.setMaxAge(60*60*24);
				cookie.setPath("/serverweb");
				response.addCookie(cookie);
			}
		}
		
		System.out.println(user);
		
		//3. 로그인 성공과 실패에 따라 다른 작업 처리
		//로그인성공하면 세션을 생성하고 세션에 데이터를 공유
		String path = "";
		if(user!=null) {//로그인성공
			HttpSession session = request.getSession();
			session.setAttribute("loginUser", user);
			
			//4. 요청재지정(응답페이지로 이동)
			RequestDispatcher rd = request.getRequestDispatcher("/index.jsp");
			rd.forward(request, response);
		}else {//로그인 실패
			response.sendRedirect("/serverweb/member_mvc/login.jsp");
		}
	}
}

top.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="member.MemberDTO"%>
<!DOCTYPE html>
<html>
<head>
  <title>serverweb main</title>
  <meta charset="UTF-8">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<%MemberDTO loginUser = (MemberDTO)session.getAttribute("loginUser");  %>
<nav class="navbar navbar-inverse">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>                        
      </button>
      <a class="navbar-brand" href="#">자바나라</a>
    </div>
    <div class="collapse navbar-collapse" id="myNavbar">
      <ul class="nav navbar-nav">
        <li class="active"><a href="/serverweb/index.jsp">Home</a></li>
      <!--   <li class="dropdown">
          <a class="dropdown-toggle" data-toggle="dropdown" href="#">서블릿basic <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Page 1-1</a></li>
            <li><a href="#">Page 1-2</a></li>
            <li><a href="#">Page 1-3</a></li>
          </ul>
        </li> -->
        <li><a href="#">서블릿 basic</a></li>
        <li><a href="#">JSP basic</a></li>
        <li><a href="#">부서관리</a></li>
        <li><a href="/serverweb/member/mvc/list">인사관리</a></li>
        <li><a href="#">고급기능</a></li>
      </ul>
      <ul class="nav navbar-nav navbar-right">
      <%if(loginUser==null){ %>
      	<%-- 로그인하지않아서 로그인유저가 널인상태 --%>
        <li><a href="/serverweb/member_mvc/register.jsp"><span class="glyphicon glyphicon-user"></span> Sign Up</a></li>
        <li><a href="/serverweb/member_mvc/login.jsp"><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
        <%}else{ %>
	        <%-- 로그인된 상태 --%>
	        <li><a href="/serverweb/member_mvc/login.jsp"><span class="glyphicon glyphicon-log-out"></span> Logout</a></li>
     	<%} %>
      </ul>
    </div>
  </div>
</nav>
</body>
</html>

content.jsp

<%@page import="member.MemberDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<%MemberDTO loginUser = (MemberDTO)session.getAttribute("loginUser");  %>
	<h4>
		<%if(loginUser==null){ %>
		<small>즐거운 web</small>
		<%}else{ %>
		<small>즐거운 web(<%=loginUser.getName() %>님 환영합니다!)</small>
		<%} %>
	</h4>
	<hr>
	<div class="col-sm-10">
		<div id="myCarousel" class="carousel slide" data-ride="carousel">
			<!-- Indicators -->
			<ol class="carousel-indicators">
				<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
				<li data-target="#myCarousel" data-slide-to="1"></li>
			</ol>

			<!-- Wrapper for slides -->
			<div class="carousel-inner" role="listbox">
				<div class="item active">
					<img src="/serverweb/images/m_garden01.jpg" alt="Image" width="800" height="320">
					<div class="carousel-caption">
						<h3>이번주는 기본 웹</h3>
						<p>servlet,jsp 기본기능...</p>
					</div>
				</div>

				<div class="item">
					<img src="/serverweb/images/m_garden02.jpg" alt="Image" width="800" height="320">
					<div class="carousel-caption">
						<h3>다음주는 고급진 웹...</h3>
						<p>Open API, Ajax..</p>
					</div>
				</div>
			</div>

			<!-- Left and right controls -->
			<a class="left carousel-control" href="#myCarousel" role="button"
				data-slide="prev"> <span
				class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
				<span class="sr-only">Previous</span>
			</a> <a class="right carousel-control" href="#myCarousel" role="button"
				data-slide="next"> <span
				class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
				<span class="sr-only">Next</span>
			</a>
		</div>
		<h5>
			<span class="label label-success">Lorem</span>
		</h5>
		<br>
		<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
			eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
			ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
			aliquip ex ea commodo consequat. Excepteur sint occaecat cupidatat
			non proident, sunt in culpa qui officia deserunt mollit anim id est
			laborum consectetur adipiscing elit, sed do eiusmod tempor incididunt
			ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
			nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
			consequat.</p>
		<hr>

		<h4>Leave a Comment:</h4>
		<form role="form">
			<div class="form-group">
				<textarea class="form-control" rows="3" required></textarea>
			</div>
			<button type="submit" class="btn btn-success">Submit</button>
		</form>
		<br> <br>
	</div>
</body>
</html>

top.jsp / 로그아웃시 연결 로그아웃서블릿으로

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="member.MemberDTO"%>
<!DOCTYPE html>
<html>
<head>
  <title>serverweb main</title>
  <meta charset="UTF-8">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<%MemberDTO loginUser = (MemberDTO)session.getAttribute("loginUser");  %>
<nav class="navbar navbar-inverse">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>                        
      </button>
      <a class="navbar-brand" href="#">자바나라</a>
    </div>
    <div class="collapse navbar-collapse" id="myNavbar">
      <ul class="nav navbar-nav">
        <li class="active"><a href="/serverweb/index.jsp">Home</a></li>
      <!--   <li class="dropdown">
          <a class="dropdown-toggle" data-toggle="dropdown" href="#">서블릿basic <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Page 1-1</a></li>
            <li><a href="#">Page 1-2</a></li>
            <li><a href="#">Page 1-3</a></li>
          </ul>
        </li> -->
        <li><a href="#">서블릿 basic</a></li>
        <li><a href="#">JSP basic</a></li>
        <li><a href="#">부서관리</a></li>
        <li><a href="/serverweb/member/mvc/list">인사관리</a></li>
        <li><a href="#">고급기능</a></li>
      </ul>
      <ul class="nav navbar-nav navbar-right">
      <%if(loginUser==null){ %>
      	<%-- 로그인하지않아서 로그인유저가 널인상태 --%>
        <li><a href="/serverweb/member_mvc/register.jsp"><span class="glyphicon glyphicon-user"></span> Sign Up</a></li>
        <li><a href="/serverweb/member_mvc/login.jsp"><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
        <%}else{ %>
	        <%-- 로그인된 상태 --%>
	        <li><a href="/serverweb/member/mvc/logout"><span class="glyphicon glyphicon-log-out"></span> Logout</a></li>
     	<%} %>
      </ul>
    </div>
  </div>
</nav>
</body>
</html>

LogoutServlet / 로그아웃하기

@WebServlet(name = "logout", urlPatterns = { "/member/mvc/logout" })
public class LogoutServlet extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//사용중인 세션을 받아오기
		HttpSession ses = request.getSession(false);
		if(ses!=null) {
			//세션을 제거하기
			ses.invalidate();
		}
		response.sendRedirect("/serverweb/index.jsp");
	}
}

본 포스팅은 멀티캠퍼스의 멀티잇 백엔드 개발(Java)의 교육을 수강하고 작성되었습니다.

0개의 댓글