JSP에서 로그인(longin) 해서
수정, 삭제, 조회. 리스트, 메인을
해 볼까요?
String id pass 파라미터 가져오기
1단계 드라이버 로더
2단계 디비 연결 => Connection con
sql select id에 해당하는 회원정보 가져오기
3단계 연결 정보를 이용해서 sql 구문 만들고 실행할 객체 생성 => PreparedStatement
4단계 실행 결과 => ResultSet rs
5단계 rs에 저장된 데이터 있는 확인. next() 다음행으로 이동
데이터 있으면 True 아이디 있음 없으면 False 아이디 없음
폼 아이디, 비밀번호 디비에 저장된 아이디 비밀번호 일치하면 =>
로그인 인증 => 모든 페이지 상관없이 값이 유지되는 세션 값 생성
세션값 생성 "id", id
main.jsp 이동
<%
세션 값 가져오기
String id=(String) session.getAttribute("id");
if(세션 값이 없으면) loginForm.jsp 이동
if(id==null){
response.sendRedirect("loginForm.jsp");
}
%>
<%=session.getAttribute("id")%>님 로그인하셨습니다 <br>
<input type="button"value="로그아웃"onclick="location.href='logout.jsp'"><br>
<a href="info.jsp"> 회원정보 조회 </a>
<a href="list.jsp"> 회원 목록 </a>
<a href="deleteForm.jsp"> 회원 정보 삭제 </a>
<a href="updateForm.jsp"> 회원 정보 수정 </a>
<% request.setCharacterEncoding("utf-8");
String id=(String) session.getAttribute("id");
Class.forName("com.mysql.jdbc.Driver");
String dbUrl="jdbc:mysql://localhost:3306/jspdb5";
String dbUser="root";
String dbPass="1234";
Connection con=DriverManager.getConnection(dbUrl, dbUser, dbPass);
String sql="select * from member where id=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
ResultSet rs=pstmt.executeQuery();
%>
<% while(rs.next()){
%> 아이디:<%=rs.getString("id")%>
비밀번호:<%=rs.getString("pass")%>
이름:<%=rs.getString("name")%>
가입 날짜:<%=rs.getTimestamp("reg_date")%>
<%} %>
id 세션 값 가져오기
String id=(String) session.getAttribute("id");
==> 다운 캐스팅해야 함!!!
pass 파라미터 값 가져오기
String pass=request.getParameter("pass");
1단계 드라이버 로더
Class.forName("com.mysql.jdbc.Driver");
2단계 디비 연결 => Connection con
String dbUrl="jdbc:mysql://localhost:3306/jspdb5";
String dbUser="root";
String dbPass="1234";
Connection con=DriverManager.getConnection(dbUrl, dbUser, dbPass);
sql select id에 해당하는 회원정보 가져오기
String sql="select * from student where id=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
ResultSet rs=pstmt.executeQuery();
3단계 연결 정보를 이용해서 sql 구문 만들고 실행할 객체 생성 => PreparedStatement
4단계 실행 결과 => ResultSet rs
5단계 rs에 저장된 데이터 있는 확인. next() 다음행으로 이동 데이터 있으면 True
아이디 있음 출력
없으면 False
아이디 없음 출력
if 폼에서 가져온 비밀번호 디비에서 가져온 비밀번호 비교. equals()
맞으면 "비밀번호 맞음" 틀리면 "비밀번호 틀림"
비밀번호 맞으면 3단계 삭제 sql 4단계 실행
if(rs.next()){
out.println("아이디 있음");
if(pass.equals(rs.getString("pass"))){
out.println("비밀번호 성공");
sql="delete from member where id=?" ;
pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.executeUpdate();
session.invalidate();
response.sendRedirect("main.jsp");
} else {
out.println("비밀번호 실패");
%>
<script type="text/javascript">
history.back();
alert("비밀번호 틀렸습니다");
</script>
<% }
} else {
out.println("아이디 없음");
}
%>
<script type="text/javascript">
alert("아이디가 틀렸습니다")
history.back();
</script>
</body>
</html>
회원정보 수정
if(rs.next()){
out.println("아이디 있음");
if(pass.equals(rs.getString("pass"))){
out.println("비밀번호 맞음");
sql="update member set name=? where id=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, id);
pstmt.executeUpdate();
%>
<script type="text/javascript">
alert("<%=id%>님의 이름이 수정되셨습니다");
location="main.jsp";
</script>
<% } else {
out.println("비밀번호 틀림");
}
} else {
out.println("아이디 없음");
}
%>
<table border="1">
<tr><td> 아이디 </td><td> 비밀번호 </td> <td> 이름 </td> <td>가 이 날짜 </td></tr>
<% while(rs.next()){
%><tr><td><%=rs.getString("id") %></td><td><%=rs.getString("pass") %></td>
<td><%=rs.getString("name") %></td><td><%=rs.getTimestamp("reg_date")%></td></tr><%
}%>
</table>
if(rs.next()){
out.println("아이디 있음");
if(pass.equals(rs.getString("pass"))){
out.println("비밀번호 성공");
sql="delete from member where id=?" ;
pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.executeUpdate();
session.invalidate();
response.sendRedirect("main.jsp");
} else {
out.println("비밀번호 실패");
%>
<script type="text/javascript">
history.back();
alert("비밀번호 틀렸습니다");
</script>
<% }
} else {
out.println("아이디 없음");
}
%>
<script type="text/javascript">
alert("아이디가 틀렸습니다")
history.back();
</script>
ㅣ읽느라 수고 많으셨어요~ㅣ
부족한 글을 읽어주셔서 감사드립니다
아직 부족한 게 많으니
틀린 곳이 있다면
조언의 말씀 꼭 부탁드립니다!!!!
jsp_애플리케이션 application 내장객체, 세션 (0) | 2020.07.16 |
---|---|
JSP에서 DB과 연동해서delete /update/ select/ insert 작업을 어떻게 하는 걸까? (0) | 2020.07.14 |
jsp_내장객체 response에 대해 (0) | 2020.07.03 |
JSP에서 DB 연동하기_ delete(삭제) /update(수정)/ select(조회)/ insert(삽입) (1) | 2020.07.02 |
[JSP] jsp에서 세션 (session)이란? 쿠키는 또 뭐야? (0) | 2020.06.30 |