동작 순서

  1. join.html
  2. JoinOk
  3. joinResult.jsp

  4. login.html
  5. LoginOk
  6. loginResult.jsp

  7. modify.jsp
  8. ModifyOk
  9. modifyResult.jsp

  10. logout.jsp

DB

create table member(
name varchar2(20),
id varchar2(20),
pw varchar2(20),
phone1 varchar2(20),
phone2 varchar2(20),
phone3 varchar2(20),
gender varchar2(20)
);
commit;

회원가입

join.html

<!-- join.html -->
<form action="JoinOk" method="post">
    이름 : <input type="text" name="name" size="10"><br />
    아이디 : <input type="text" name="id" size="10"><br />
    비밀번호 : <input type="text" name="pw" size="10"><br />
    전화번호 : <select name="phone1">
        <option value="010">010</option>
        <option value="016">016</option>
        <option value="017">017</option>
        <option value="018">018</option>
        <option value="019">019</option>
        <option value="011">011</option>
    </select> - 
    <input type="text" name="phone2" size="5"> - <input type="text" name="phone3" size="5"> <br />
    성별구분 : <input type="radio" name="gender" value="man">&nbsp;<input type="radio" name="gender" value="woman"><br />
    <input type="submit" value="회원가입"> <input type="reset" value="다시입력">
</form>

JoinOk.java

// JoinOk.java

@WebServlet("/JoinOk")
public class JoinOk extends HttpServlet {
	private static final long serialVersionUID = 1L;

    ...

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		actionDo(request, response);
	}

    private void actionDo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("EUC-KR");

        name = request.getParameter("name");

        ...

        String query = "insert into member values('" + name + "', '" + id + "', '" + pw + "', '" + phone1 + "', '" + phone2 + "', '"+ phone3 + "', '" + gender + "')";
		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl" , "amy" , "tiger");
			stmt = connection.createStatement();
			int i = stmt.executeUpdate(query); //query 실행 개수 반환
			if(i == 1){ //성공
				response.sendRedirect("joinResult.jsp");
			} else { //실패
				response.sendRedirect("join.html");
			}
		}
        ...
    }
}

로그인

login.html

<!-- login.html -->
<form action="LogInOk" method="post">
	아이디 : <input type="text" name="id"><br />
	비밀번호 : <input type="text" name="pw"><br />
	<input type="submit" value="로그인">
</form>

LoginOk.java

// LoginOk.java

@WebServlet("/LogInOk")
public class LogInOk extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
    ...

    private void actionDo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		id = request.getParameter("id");
		pw = request.getParameter("pw");
		
		String query = "select * from member where id = '" + id + "' and pw = '" + pw + "'";
		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl" , "amy" , "tiger");
			stmt = connection.createStatement();
			resultSet =  stmt.executeQuery(query);
			
            //값 가져오기
			while (resultSet.next()) {
				name = resultSet.getString("name");
                ...
			}
			
            //세션에 저장
			HttpSession httpSession = request.getSession();
			httpSession.setAttribute("name", name);
			httpSession.setAttribute("id", id);
			httpSession.setAttribute("pw", pw);
			
			response.sendRedirect("loginResult.jsp");
			
		}
    }
}

loginResult.jsp

// loginResult.jsp
<%!
    String name, id, pw;
%>

<%
    name = (String)session.getAttribute("name");
%>
    
<%= name %>님 안녕하세요 <br />

정보수정

modify.jsp

// modify.jsp
<%
		id = (String)session.getAttribute("id");
		String query = "select * from member where id = '" + id + "'";

        ...
%>

<form action="ModifyOk" method="post">
    이름 : <input type="text" name="name" size="10" value=<%=name %>><br />
    아이디 : <%=id %><br />
    기존 비밀번호 : <input type="text" name="pw" size="10"><br />
    전화번호 : <select name="phone1">
        <option value="010">010</option>
        <option value="016">016</option>
        <option value="017">017</option>
        <option value="018">018</option>
        <option value="019">019</option>
        <option value="011">011</option>
    </select> - 
    <input type="text" name="phone2" size="5" value=<%=phone2 %>> - <input type="text" name="phone3" size="5" value=<%=phone3 %>> <br />
    <%
        if(gender.equals("man")) {
    %>
    성별구분 : <input type="radio" name="gender" value="man" checked="checked">&nbsp;<input type="radio" name="gender" value="woman"><br />
    <%
        } else {
    %>
    성별구분 : <input type="radio" name="gender" value="man" >&nbsp;<input type="radio" name="gender" value="woman" checked="checked"><br />
    <%
        }
    %>
    <input type="submit" value="정보수정"> <input type="reset" value="취소">
</form>

ModifyOk.java

// ModifyOk.java
@WebServlet("/ModifyOk")
public class ModifyOk extends HttpServlet {
	private static final long serialVersionUID = 1L;
    ...
    private void actionDo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("EUC-KR");
		httpSession = request.getSession(); //세션값으로 확인
		
		name = request.getParameter("name"); //form 에 입력된 값
        ...

        if(pwConfirm()){
			String query = "update member set name ='" + name + "', phone1= '" + phone1 + "', phone2 = '" + phone2 + "', phone3 = '" + phone3 + "', gender = '" + gender + "'";
			try {
				Class.forName("oracle.jdbc.driver.OracleDriver");
				connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl" , "amy" , "tiger");
				stmt = connection.createStatement();
				int i = stmt.executeUpdate(query);
				if(i ==1 ){
					httpSession.setAttribute("name", name); //이름이 수정될 경우
					response.sendRedirect("modifyResult.jsp");
				}
            }
        }
    }

    private boolean pwConfirm() {
		boolean rs = false;
		String sessionPw =  (String)httpSession.getAttribute("pw");
		if(sessionPw.equals(pw)) {
			rs = true;
		} else {
			rs = false;
		}
		return rs;
	}
}

로그아웃

<%
    session.invalidate();
    response.sendRedirect("login.html");
%>

https://www.youtube.com/playlist?list=PLieE0qnqO2kTyzAlsvxzoulHVISvO8zA9