728x90
SMALL
- 로그인버튼을 누르면 로그인창으로 이동한다
- 로그인이 성공했을 때는 로그인버튼이 로그아웃으로 바뀌며 회원가입부분은 마이룸으로 바뀐다
- 로그아웃할 때는 이렇게 확인창이 뜨고 확인을 누르면 로그아웃이 된다
- loginfo.jsp
- form_log라는 form을 만들고 method는 post
- mid와 pwd라는 input박스를 만들어서 name값을 각각 주었다
- 로그인 버튼타입은 submit으로 써서 form을 넘기게끔 해줬다
<form name='form_log' method='post'>
<div class="align">
<input type="text" id="mid" name = "member_mid" placeholder="FineApple ID">
<div class="text-id">
</div>
<label></label>
<input type="password" id="pwd" name = "member_pwd" placeholder="암호">
<div class="text-id">
</div>
<input type="submit" id="btnLogin" value="로그인">
</div>
</form>
- login.js
- loginOut이라는 객체를 만들어주고 id가 btnLogin인 것을 btnLogin으로 선언
- btnLogin을 눌렀을 때 form_log값을 가져오고 login.jsp로 넘어가도록 action설정
- 마지막으로 submit
var logInOut = function(){
var btnLogin = document.getElementById('btnLogin');
if(btnLogin != null){
btnLogin.onclick = function(){
var frm = document.form_log; //name가져옴
frm.action = '/Fineapple-final/login/login.jsp';
frm.submit();
}
}
}
- login.jsp
- MemberDao와 MemberVo를 useBean을 사용하여 불러옴
- setProperty를 사용하여 vo의 모든값을 set해줌
- form에 있던 id값과 pwd값을 가져와 저장을 해준다
- dao의 login메소드를 사용함 반환값은 boolean타입
- 로그인 성공시 id값을 session에 저장하고 index를 다시 로드해준다
- 로그인 실패시 '로그인에 실패하였습니다'라는 창을 띄우고 다시 로그인창으로 이동하게한다
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id = "dao" class="bean.MemberDao"/>
<jsp:useBean id = "vo" class="bean.MemberVo"/>
<jsp:setProperty property="*" name = "vo"/>
<%
String mid = request.getParameter("member_mid"); //form에 있는값 (id아닌 name값),
String pwd = request.getParameter("member_pwd"); //id값은 server로 넘어가지않음 name에 해당하는 value값이 넘어갑
boolean b = dao.login(vo.getMember_mid(), vo.getMember_pwd());
if(b){
//로그인 성공
session.setAttribute("member_mid", vo.getMember_mid());
response.sendRedirect("../main/index.jsp");
} else {%>
<script>
alert('로그인에 실패하였습니다');
location.href='./loginfo.jsp';
</script>
<% } %>
- memberdao의 login메소드
- 매개변수는 id과 pwd이며 반환타입은 boolean
- 기본은 false로 둔다
- 쿼리해석: id가 ?이고 pwd가 ?인 id의 수를 members테이블에서 select
- cnt>=1 인 경우는 true가 되도록
public boolean login(String member_mid, String member_pwd) {
boolean b = false; //기본 : 로그인되지 않았어
try {
String sql = "select count(member_mid) cnt from members where member_mid=? and member_pwd=? ";
ps = conn.prepareStatement(sql);
ps.setString(1, member_mid); //index는 1부터 시작
ps.setString(2, member_pwd);
rs = ps.executeQuery();
if(rs.next()) {
int cnt = rs.getInt("cnt");
if (cnt >= 1) { //정확히는 1
b = true;
}
}
} catch (Exception e) {
e.printStackTrace();
}finally {
return b;
}
}
728x90
LIST
'Project > Semi' 카테고리의 다른 글
2-3. 아이디찾기 (jsp로 아이디찾기기능 구현하기) (6) | 2021.01.30 |
---|---|
2-2. 로그아웃 (jsp를 사용한 간단로그아웃) (0) | 2021.01.30 |
1-5. 공지 팝업창(레이어팝업 홈페이지에 띄우기, 오늘하루그만보기 쿠키 설정) (3) | 2021.01.15 |
1-4. 상품 정렬 (ajax를 활용하여 최신순, 낮은가격순, 높은가격순으로 정렬) (0) | 2021.01.15 |
1-3 상품 검색 (1) | 2021.01.15 |
댓글