동작 순서
- join.html
- JoinOk
-
joinResult.jsp
- login.html
- LoginOk
-
loginResult.jsp
- modify.jsp
- ModifyOk
-
modifyResult.jsp
- 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">남 <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">남 <input type="radio" name="gender" value="woman">여 <br />
<%
} else {
%>
성별구분 : <input type="radio" name="gender" value="man" >남 <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
