오늘보다 더 나은 내일의 나에게_

비전공자의 IoT 국비 교육 수강일지 Day_44 본문

비전공자의 코딩일지

비전공자의 IoT 국비 교육 수강일지 Day_44

chan_96 2022. 2. 21. 17:30
728x90

JavaScript

댓글 작성 후 "post reply" 버튼을 누르면 댓글이 등록되지만 실시간으로 보이지 않고 새로고침을 해야 보이는 상황! 버튼을 누르고 정상적으로 등록이 되면 console창에 success 출력!



댓글 등록 후 바로 댓글 보는 기능
board_main.jsp에서 javascript부분 수정 
function addReply( ) 수정

JSP

로그인 후 개인정보수정버튼을 눌렀을 때

현재 로그인 중인 아이디 전화번호, 주소가 출력되도록 작성

코드
더보기

세션 객체를 생성하고 활용

<body style="text-align: center;">
		<%
			memberVO vo = (memberVO)session.getAttribute("loginvo");
		%>
		<!-- Wrapper -->
			<div id="wrapper">
				<!-- Menu -->
					<nav id="Update">	
						<ul class="actions vertical">
						<form>
							<li><h5>회원정보수정</h5></li>
								<%--비어있는 li태그에 이메일출력, 전화번호/집주소 현재 데이터 출력 --%>
								<%--1. 현재 로그인 한 사람의 EMAIL를 아래에  li태그 안에 출력하시오.--%>
								
								<%--2. 입력한 정보를 UpdateCon으로 전송하시오.--%>
								<li><%=vo.getEmail()%></li>
								<li><input type="password" placeholder="PW를 입력하세요" style="width: 500px; margin: 0 auto;"></li>
								<li><input type="text" placeholder="전화번호를 입력하세요" style="width: 500px; margin: 0 auto;" value="<%= vo.getTel()%>"></li>
								<li><input type="text" placeholder="집주소를 입력하세요" style="width: 500px; margin: 0 auto;" value="<%= vo.getAddress()%>"></li>
								<li><input type="submit" value="Update" class="button fit" style="width: 500px; margin: 0 auto;" ></li>
						</form>
						</ul>
					</nav>			
			</div>
	</body>

 

로그아웃 기능

로그인 후 로그아웃 버튼 누르면 로그아웃!
=> 세션을 삭제해주면 로그아웃이 된다!

코드

더보기
package com.member;

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("/LogoutCon")
public class LogoutCon extends HttpServlet {
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//1. 세션 객체 생성
		HttpSession session = request.getSession();
		
		//2. session (loginvo) 값 삭제
		session.removeAttribute("loginvo");
		
		//3. main.jsp 이동
		response.sendRedirect("main.jsp");
	}
}

 

개인정보 수정 기능

회원정보 수정 UPDATE 눌렀을 때 콘솔 창에 수정 성공 출력, 실패 시 수정 실패출력하고 메인 페이지 하단의 전화번호, 주소가 수정한 값으로 바뀌도록 출력

수정 완료 시 메인 페이지에서 아래 이미지와 같이 출력


코드
더보기
package com.member;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

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;

import com.VO.memberVO;

@WebServlet("/UpdateCon")
public class UpdateCon extends HttpServlet {
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//한글 데이터 인코딩
		request.setCharacterEncoding("euc-kr");
		
		//pw, tel, address / email -> session
		HttpSession session = request.getSession();
		memberVO vo = (memberVO)session.getAttribute("loginvo");
		
		String email = vo.getEmail();
		String pw = request.getParameter("pw");
		String tel = request.getParameter("tel");
		String address = request.getParameter("address");
		
		//JDBC_WEB 프로젝트 => UpdateCon 참고
		//MessageSystem -> JoinCon 참고
		
		//수정 성공 -> 콘솔창에 "수정성공" 출력 (페이지 이동x)
		//수정 실패 -> 콘솔창에 "수정실패" 출력 (페이지 이동x)
		
		Connection conn = null;
		PreparedStatement psmt = null;
		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
			String dbid = "hr";
			String dbpw = "hr";
			
			conn = DriverManager.getConnection(url,dbid,dbpw);
			
			String sql = "update message_member set pw = ?, tel = ?, address = ? where email = ?";
			
			psmt = conn.prepareStatement(sql);
			psmt.setString(1, pw);
			psmt.setString(2, tel);
			psmt.setString(3, address);
			psmt.setString(4, email);
			
			
			int cnt = psmt.executeUpdate();
			
			if(cnt>0) {
				System.out.println("수정성공");
				
				//사용자의 수정된 값을 가지고 있는 vo
				memberVO vo2 = new memberVO(email, tel, address);
				session.setAttribute("loginvo", vo2);
				
				response.sendRedirect("main.jsp");
			}else {
				System.out.println("수정실패");				
				response.sendRedirect("main.jsp");
			}
			
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			try {
				psmt.close();
				conn.close();			
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
	}
}

 

728x90
Comments