(16) 세션을 통한 로그인 화면만들기
서블릿에서 세션사용 (HttpSession session = request.getSession();)
LoginVO.java
- 문자형의 id, pw getter/setter 생성자
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | public class LoginVO { private String id; private String pw; public LoginVO() { super(); } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPw() { return pw; } public void setPw(String pw) { this.pw = pw; } } |
SessionServlet.java (서블릿)
- id와 pw파라미터를 저장해서, LoginVO객체에 저장한다.
- SessionTest2.java로 객체공유를 한다. (HTTPSession사용)
- 객체공유를 통해 받은 값들로 출력화면에 아이디는 ""입니다.
비번은 ""입니다. 표시한다.
★추가적으로
로그인 이후, 다음 로그인에서 동일한 아이디값으로 로그인을 할 경우 => 이미 로그인하셨습니다. 로그아웃하시겠습니까?를 출력한다.
1. 클라이언트 이전 요청 있을떄, 세션id 존재하면 세션id-세션정보 객체생성한다.
2. 클라이언트 이전 요청 없을때, 세션id 존재않으면 empty세션 객체생성한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class SessionServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //출력 (실행시, 브라우저를 미리 닫아줄 것) response.setContentType("text/html; charset=utf-8"); PrintWriter out = response.getWriter(); //빼고 //http:////?id=test&pw=1234의 두 파라미터를 만들어서 String id=request.getParameter("id"); String pw=request.getParameter("pw"); //같은 패키지안의 LoginVO클래스 객체 생성를 만들어서 그 안에 저장 // vo 객체: 세션 저장 LoginVO vo = new LoginVO(); vo.setId(id); vo.setPw(pw); //1. 클라이언트 이전 요청 있을떄, 세션id 존재하면 세션id-세션정보 객체생성 //2. 클라이언트 이전 요청 없을때, 세션id 존재않으면 empty세션 객체생성 HttpSession session = request.getSession(); boolean condition= session.getAttribute("sessionvo")!=null; if(condition==true){ LoginVO v= (LoginVO)session.getAttribute("sessionvo"); if(v.getId()!=null && v.getId().equals(request.getParameter("id"))){ out.println("<h1>이미 로그인하셨습니다. 로그아웃하겟습니까?</h1>"); } else{ //로그인 id 이전과 다를때 session.setAttribute("sessionvo", vo);//세션에 넣고 LoginVO login = (LoginVO)session.getAttribute("sessionvo"); out.println("<h1>입력한 아이디는"+ login.getId() + " 비밀번호는"+ login.getPw()+ "입니다</h1>"); } } else{ session.setAttribute("sessionvo", vo);//세션에 넣고 LoginVO login = (LoginVO)session.getAttribute("sessionvo"); out.println("<h1>입력한 아이디는"+ login.getId() + " 비밀번호는"+ login.getPw()+ "입니다</h1>"); } } } |
SessionTest2.java(서블릿)
- 객체공유를 통해 값을 받아온다. (단, 입력된 값이 있는지? 라는 조건식안에서)
- 출력되는 id값이 java또는 spring라면
내정보보기
회원 정보 수정
1.암호변경
2.주문확인
3.배송확인이 나오도록 출력,
아이디가 틀리다면, "인증받은 아이디가 아닙니다"를 출력한다.
로그인을 안했다면, "로그인부터 하세요"를 출력한다.
sessionservlet => sessiontest2 실행방법
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class SessionTest2 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //이미로그인 //(로그인아이디가 java 또는 spring일 떄만 아래항목을 보이도록 설정) response.setContentType("text/html; charset=utf-8"); PrintWriter out = response.getWriter(); /* * http:,,,?id=test&pw=1234 * ==>두번쨰 id가 최초id(세션저장id) 동일하다면 * 이미 로그인하셨습니다. 출력하고 * 세션에 저장하지않는다. * */ HttpSession session = request.getSession(); if(session.getAttribute("sessionvo")!=null){ LoginVO vo= (LoginVO)session.getAttribute("sessionvo"); // if(first!=null){ // if(first.equals(vo.getId())){ // out.println("이미 로그인하셨습니다"); // } // } if(vo.getId().equals("java") || vo.getId().equals("spring")){ out.println("<h1>내 정보보기</h1>"); out.println("<ol>회원 정보 수정</ol>"); out.println("<li>암호변경</li>"); out.println("<li>주문내역</li>"); out.println("<li>베송확인</li>"); } else{ out.println("<h1>+"+vo.getId()+"님은 인증받은 아이디가 아닙니다.</h1>"); } } else{ //로그인 한 적 없음 out.println("<h1> 로그인부터 하세요"); } //내정보보기 //1.회원정보수정 //2.암호변경 //3.주문내역 //4.배송현황 } } |
'WEB 기초 > Jsp' 카테고리의 다른 글
[JSP] 게시판 (0) | 2018.04.24 |
---|---|
[JSP] 17. 방문자 문제 (Cookie 이용) (0) | 2018.04.23 |
[JSP] 16. 세션(Session) 총 정리 (0) | 2018.04.23 |
[JSP] 15. 쿠키(cookie) 총정리 (0) | 2018.04.23 |
[JSP] 14. 도서구매 정보입력창 문제 (0) | 2018.04.23 |