step03_sessionTracking의 login.html을 jsp로 변경할 예정!
logout2.jsp 파일 생성하기
logout2.jsp 코드
login.html , Welcome2.java는 이전 코드와 동일하다
login.html 코드
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>login page</title>
</head>
<body>
<h2>로그인</h2>
<!-- http://localhost/step01_basic/encore/playdata 호출 -->
<form action="encore/playdata" method="post">
<label>id :</label><br> <input type="text" name="id"
value="tester"><br> <label>pw :</label><br> <input
type="password" name="pw" value="11"><br> <br> <input
type="submit" value="로그인">
</form>
<hr color="red">
<h2>세션 학습 : 로그인</h2>
<form action="encore/playdata2" method="post">
<label>id :</label><br> <input type="text" name="id"
value="tester"><br> <label>pw :</label><br> <input
type="password" name="pw" value="11"><br> <br> <input
type="submit" value="로그인">
</form>
</body>
</html>
LoginValidate2.java 코드
package controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/encore/playdata2")
public class LoginValidate2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
if(id != null && id.equals("tester")) {
// 세션 생성 or 이미 해당 user에 매핑된 세션객체가 존재할 경우에는 반환한다.
HttpSession session = request.getSession();
System.out.println(session.getId()); // 고유한 session을 구분하기 위한 값 (server내부에서 id를 부여한뒤 만들어짐)
// 데이터 저장하기, Welcome2에서 getAttribute()를 통해서 활용함
session.setAttribute("name","lee");
session.setAttribute("age","30");
// Welcome2 redirect방식으로 호출하기
response.sendRedirect("../succ2");
}else {
}
}
}
Welcome2.java 코드
button - 'logout2'를 'logout2.jsp'로 변경
location.href=\"<<<<<logout2>>>>>\"'
location.href=\"logout2.jsp\"'
로 변경
@WebServlet("/succ2")
public class Welcome2 extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
out.println("안녕하세요"+ session.getAttribute("name"));
out.println("<button onclick='location.href=\"logout2.jsp\"'>로그아웃</button>");
}
}
login.html에서 Run as - Run on Server
결과창
세션학습 : 로그인 부분의 '로그인' 버튼 클릭
Welcome2.java로 넘어감, '로그아웃'버튼 클릭
Welcome2.java에서 button의 경로를 'logout2.jsp'
로 변경했기 때문