19.05.23 고급 서블릿 파라미터 활용 (model 2 동영상 9강~10강)
Back-End/JSP 2019. 5. 23. 15:59MemberJoin.jsp (회원가입 페이지)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <center> <h2>회원 가입</h2> <body> //proc.do 서블릿으로 회원가입시 입력한 값을 넘겨준다. <form action="proc.do" method="post"> <table width="500" border="1"> <tr height="50"> <td width="150" align="center">아이디</td> <td width="350" align="center"><input type="text" name="id" size="40" placeholder="id를 넣으세요."></td> <tr height="50"> <td width="150" align="center">패스워드</td> <td width="350" align="center"><input type="password" name="pass1" size="40" placeholder="비밀번호는 영문과 숫자만 넣어주세요."></td> <tr height="50"> <td width="150" align="center">패스워드 확인</td> <td width="350" align="center"><input type="password" name="pass2" size="40"></td> <tr height="50"> <td width="150" align="center">이메일</td> <td width="350" align="center"><input type="email" name="email" size="40" placeholer></td> <tr height="50"> <td width="150" align="center">전화번호</td> <td width="350" align="center"><input type="tel" name="tel" size="40"></td> <tr heigth="50"> <td width="150" align="center">당신의 관심분야</td> <td width="350" align="center"><input type="checkbox" name="hobby" value="캠핑">캠핑 <input type="checkbox" name="hobby" value="등산">등산 <input type="checkbox" name="hobby" value="영화">영화 <input type="checkbox" name="hobby" value="독서">독서 </td> </tr> <tr heigth="50"> <td width="150" align="center">당신의 직업은</td> <td width="350" align="center"><select name="job"> <option value="교사">교사</option> <option value="변호사">변호사</option> <option value="의사">의사</option> <option value="기술사">기술사</option> </select></td> </tr> <tr height="50"> <td width="150" align="center">당신의 연령은</td> <td width="350" align="center"><input type="radio" name="age" ㄴㄴ value="20">20대 <input type="radio" name="age" value="30">30대 <input type="radio" name="age" value="40">40대 </td> </tr> <tr height="50"> <td width="150" align="center">하고싶은말</td> <td width="350" align="center"><textarea rows="5" cols="40" name="info"></textarea></td> </tr> <tr height="50"> <td align="center" colspan="2"><input type="submit" value="회원 가입"> <input type="reset" value="취소"> </table> </form> </center> </body> </html> | cs |
MemberList.jsp (회원 리스트 페이지)
1 2 3 4 5 6 7 8 9 10 11 12 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> </head> <body> MemberList로 이동 </body> </html> | cs |
LoginError.jsp (에러 페이지)
1 2 3 4 5 6 7 8 9 10 11 12 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> </head> <body> LoginError.jsp </body> </html> | cs |
MemberBean.java (멤버빈 클래스)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | package model; public class MemberBean { private String id; private String pass1; private String pass2; private String email; private String tel; private String hobby; private String job; private String age; private String info; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPass1() { return pass1; } public void setPass1(String pass1) { this.pass1 = pass1; } public String getPass2() { return pass2; } public void setPass2(String pass2) { this.pass2 = pass2; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } public String getHobby() { return hobby; } public void setHobby(String hobby) { this.hobby = hobby; } public String getJob() { return job; } public void setJob(String job) { this.job = job; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } } | cs |
MemberDAO.java (DB연결 클래스)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | package model; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource; public class MemberDAO { Connection con; PreparedStatement pstmt; ResultSet rs; public void getCon() { try { // 데이터베이스 연결 코드 Context initctx = new InitialContext(); Context envctx = (Context) initctx.lookup("java:comp/env"); DataSource ds = (DataSource) envctx.lookup("jdbc/pool"); con = ds.getConnection();
} catch (Exception e) { e.printStackTrace(); } } // 회원 한사람에 대한 정보를 저장하는 메소드 public void insertMember(MemberBean bean) { getCon(); try { // 쿼리 준비하기 String sql = "insert into member values (?,?,?,?,?,?,?,?) "; // 쿼리 실행할 객체 선언 pstmt = con.prepareStatement(sql); // ?에 값을 대입시켜준다. pstmt.setString(1, bean.getId()); pstmt.setString(2, bean.getPass1()); pstmt.setString(3, bean.getEmail()); pstmt.setString(4, bean.getTel()); pstmt.setString(5, bean.getHobby()); pstmt.setString(6, bean.getJob()); pstmt.setString(7, bean.getAge()); pstmt.setString(8, bean.getInfo()); // 쿼리 실행 pstmt.executeUpdate(); con.close(); } catch (Exception e) { e.printStackTrace(); } } } | cs |
MemberJoinProc.java (회원 처리 서블릿)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | package control; import java.io.IOException; import javax.servlet.RequestDispatcher; 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 model.MemberBean; import model.MemberDAO; @WebServlet("/proc.do") //proc.do url을 매핑한다. public class MemberJoinProc extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { reqPro(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { reqPro(request, response); } protected void reqPro(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 빈클래스 객체를 생성하고 각각 값들을 받아서 빈 클래스에 저장한다. // 빈클래스에 저장하기 위해 빈클래스 객체 생성 MemberBean bean = new MemberBean(); // request.getParameter메소드를 사용해서 받은 값들을 빈 클래스에 저장시킨다. bean.setId(request.getParameter("id")); String pass1 = request.getParameter("pass1"); String pass2 = request.getParameter("pass2"); bean.setPass1(pass1); bean.setPass2(pass2); bean.setEmail(request.getParameter("email")); bean.setTel(request.getParameter("tel")); // 취미는 여러개를 선택할 수 있기때문에 배열에 담아서 저장하고 String[] arr = request.getParameterValues("hobby"); // data의 초기값을 선언 String data = ""; // 향상된 for문 arr배열의 원소를 하나씩 출력해 string에 저장한다. for (String string : arr) { data += string + " "; // 하나의 스트링으로 자료를 연결; } bean.setHobby(data); bean.setJob(request.getParameter("job")); bean.setAge(request.getParameter("age")); bean.setInfo(request.getParameter("info")); // 패스워드가 같을 경우에만 데이터 베이스에 저장 if (pass1.equals(pass2)) { // 데어터베이스 객체 생성 MemberDAO mdao = new MemberDAO(); mdao.insertMember(bean); RequestDispatcher dis = request.getRequestDispatcher("MemberList.jsp"); dis.forward(request, response); } else // 패스워드가 다를시 메시지를 출력하고 에러페이지로 이동함 { // RequestDispatcher은 특정 자원에 처리를 요청하고 처리 결과를 얻어오는 기능을 수행하는 클래스. // 즉 a.jsp 내에서 RequestDispatcher을 사용하여 b.jsp로 요청을 보낼 수 있습니다. request.setAttribute("msg", "패스워드가 일치 하지 않습니다."); RequestDispatcher dis = request.getRequestDispatcher("LoginError.jsp"); dis.forward(request, response); } // 데이터베이스 객체 선언한 후에 저장 } } | cs |
'Back-End > JSP' 카테고리의 다른 글
19.05.24 회원가입 (model 2 동영상 11강) (0) | 2019.05.24 |
---|---|
Dispatcher 방식과 Redirect 방식 (0) | 2019.05.24 |
19.05.23 고급 서블릿 파라미터 활용 (model 2 동영상 8강) (0) | 2019.05.23 |
19.05.23 고급 서블릿 활용 (model 2 7강) (0) | 2019.05.23 |
19.05.22 서블릿 이해 (0) | 2019.05.22 |