티스토리 뷰
로그인 session 실습
index.jsp
<%@ include file="/module/top.jsp" %>
<%@ include file="/module/left.jsp" %>
<a href="#">Download this CSS Layout</a>
<%@ include file="/module/hadan.jsp" %>
<%@ include file ="top.jsp" %> : top.jsp 코드가 index.jsp에 포함되어 실행된다.
top.jsp
<form action="<%= request.getContextPath() %>/login/login_action.jsp" method="post">
아이디 <input type="text" name="id">
비번 <input type="text" name="pw">
<input type="submit" value="로그인버튼">
</form>
<%= request.getContextPath() %> : 특정 jsp나 폴더 경로를 잡아주기위한 문법
login_action.jsp
<%
String id = request.getParameter("id");
String pw = request.getParameter("pw");
System.out.println(id + "<- id ");
System.out.println(pw + "<- pw ");
String dbid = "id001";
String dbpw = "pw001";
String dbname = "홍길동";
String dblevel = "관리자"; //구매자 또는 판매자 또는 관리자 또는 최고관리자 권한 변경 테스트
if(id.equals(dbid)){
System.out.println("1-1 아이디 일치");
if(pw.equals(dbpw)){
System.out.println("2-1 로그인 성공");
session.setAttribute("S_ID", dbid);
session.setAttribute("S_NAME", dbname);
session.setAttribute("S_LEVEL", dblevel);
response.sendRedirect(request.getContextPath() + "/index.jsp");
}else{
System.out.println("2-2 비번 불일치");
}
}else{
System.out.println("1-2 아이디 불일치");
}
%>
getParameter()메서드로 사용자가 입력한 데이터를 가져올 수 있다.
form 데이터에 <input type = "text" name ="id"> / <input type = "password" name="pw"> 를 입력하고 submit으로 서블릿을 호출할때 request.getParameter("name값") 으로 올 수 있다.
getParameter는 항상 String 형태로 반환하므로 int 타입으로 값을 저장하고 싶다면 변환을 해주어야 한다.
아이디, 비밀번호 일치 -> 로그인 성공
아이디 불일치 -> 아이디 불일치
아이디 일치, 비밀번호 불일치 -> 비번 불일치
session.setAttribute(String name, Object value);
세션에 데이터를 저장. name이 저장할 데이터의 이름이 되고, value에 저장할 값을 지정.
session 객체(영역) data 영역 s_id : "id001"; s_name : "일길동"; s_level : "관리자"; |
response.sendRedirect : 웹 서버가 웹 브라우저에게 다른 페이지로 이동하라고 응답하는 기능
아이디, 비밀번호가 일치하면 index 페이지로 경로를 찾아간다. 이동하지 않으면 login_action 빈화면에서 끝난다.
top.jsp
<%
String S_ID = (String)session.getAttribute("S_ID");
String S_NAME = (String)session.getAttribute("S_NAME");
String S_LEVEL = (String)session.getAttribute("S_LEVEL");
System.out.println(S_ID + "<--S_ID");
System.out.println(S_NAME + "<--S_NAME");
System.out.println(S_LEVEL + "<--S_LEVEL");
%>
session 영역 확인
실행 전 | null<--S_ID null<--S_NAME null<--S_LEVEL |
실행 후 | id001<--S_ID 일길동<--S_NAME 관리자<--S_LEVEL |
String str = (String) session.getAttribute("ID"); : 세션에 저장된 값을 조회한다.
logout.jsp
<%
session.invalidate(); //세선종료
%>
<script type ="text/javascript">
alert('로그아웃');
location.href='<%= request.getContextPath()%>/index.jsp';
</script>
session.invalidate() : 세션을 종료하고 값을 초기화한다.
null<--S_ID null<--S_NAME null<--S_LEVEL |
<script type ="text/javascript">
alert('로그인 성공');
location.href='<%= request.getContextPath()%>/index.jsp';
</script>
알림창 : 로그인 성공
<!-- 1.1 로그인 전 화면 시작 -->
<a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01회원가입</a>
<form action ="<%= request.getContextPath() %>/login/login_action.jsp" method="post">
id : <input type ="text" name ="id">
pw : <input type ="password" name="pw">
<input type="submit" value="로그인버튼">
</form>
<!-- 1.2 로그인 후 화면 끝 -->
<%
}else {
if(S_LEVEL.equals("구매자")){
%>
<a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01회원가입</a>
<a href="#">04상품검색</a>
<%
}else if(S_LEVEL.equals("판매자")){
%>
<a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01회원가입</a>
<a href="#">03상품등록</a>
<a href="#">04상품검색</a>
<%
}else if(S_LEVEL.equals("관리자")){
%>
<a href="<%= request.getContextPath() %>/user/user_insert_form.jsp">01회원가입</a>
<a href="<%= request.getContextPath() %>/user/user_list.jsp">02회원검색</a>
<a href="#">03상품등록</a>
<a href="#">04상품검색</a> <br/>
<%
}
%>
<!-- 1-2. 로그인 후 화면 시작 -->
<%= S_NAME %>님, <%= S_LEVEL %>권한으로 로그인 중
<a href="<%= request.getContextPath() %>/login/logout.jsp">로그아웃</a>
<!-- 1-2. 로그인 후 화면 끝 -->
<%
}
%>
1.1 로그인 전 시작 화면
: 01 회원가입 메뉴만 보여준다.
1.2 로그인 성공
: 권한이 구매자 --> 회원가입, 상품검색
권한이 판매자 --> 회원가입, 상품등록, 상품검색
권한이 관리자 --> 회원가입, 회원검색, 상품등록, 상품검색
<%= %> 표현식(expression) : out.print(" 이부분에 들어갈 문자열이나 값");
팀프로젝트 주제정하기.
1. 공공데이터 사이트 활용
공공데이터 포털
국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase
www.data.go.kr
실시간이나 정보를 받아올 수 있다.
open api 활용
'41기 개발자과정' 카테고리의 다른 글
20210924 mysql 접근 오류페이지 (0) | 2021.09.24 |
---|---|
20210923 - mysql DBMS 구축 (0) | 2021.09.23 |
20210915 (0) | 2021.09.15 |
20210914 js - push, 실습예제 (0) | 2021.09.14 |
20210913 js 실습예제 ~ 배열 (0) | 2021.09.13 |