//전체데이터를 효율적으로 한번에 표시하기위해 toString은 필수다 //toString은 자동 단축키로 만들어서 쓰는 거임 : alt+shift+s에서 `Generate toString()`클릭 @Override public String toString(){ return"Javabean2 [id=" + id + ", pw=" + pw + ", num=" + num + "]"; } }
3-3. 자바빈 객체 사용
자바빈 객체를 사용하여 Form페이지에서 입력받은 값을 화면에 출력하는 코드이다.
javabean타입의 객체생성 -> import생성
변수 Jb는 private이므로 get메서드와 set메서드로 접근해야함
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
//1. javabean타입의 객체생성 -> import생성 Javabean2 jb = new Javabean2();
//2. 드라이브로드 & 디비연결 : 로그인한 사용자의 정보를 가져오기 final String DRIVER = "com.mysql.jdbc.Driver"; final String DBURL = "jdbc:mysql://localhost:3306/jspdb"; final String DBID = "root"; final String DBPW = "1234";
Class.forName(DRIVER); Connection con = DriverManager.getConnection(DBURL, DBID, DBPW); System.out.println("드라이브로드와 디비연결성공");
//3. SQL & PSTMT & 실행 String sql = "select * from itwill_member where id=?"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, id);
변수지정없이 바로 while반복문실행 SQL구문작성시 select * from itwill_member이라서 while반복문을 사용했다. 만약 SQL구문이 select * from itwill_member where id=?로 where조건절을 추가하면 반복문이 아닌 if문으로 사용가능하다.
//3-3. 데이터처리 if(rs.next()){ //true라는 건 id가 있다는 소리임 즉, 회원인 경우가 됨 if(pw.equals(rs.getString("pw"))){ //비번일치 //세션ID값생성 session.setAttribute("id", id); response.sendRedirect("main.jsp"); //js코드보다 java코드가 좋다 System.out.println(id+"로그인성공"); %> <!-- <script type="text/javascript"> location.href="main.jsp" </script> js코드보다 java코드가 더 좋다 --> <% }else{ System.out.println("비밀번호오류"); //비번불일치 %> <scripttype="text/javascript"> alert("비밀번호가 일치하지 않습니다") //페이지이동 3가지의 차이점 history.back(); //=>작성한 아이디나 데이터가 살아있다 //location.href="loginForm.jsp" //=>작성한 아이디나 데이터가 없다 //location.reload();//=>새로고침으로 alert창이 반복된다 </script> <% } }else{ //false이므로 id가 없다는 소리임. 즉, 비회원인 경우. System.out.println("아이디오류-비회원입니다"); %> <scripttype="text/javascript"> let tmp = confirm("비회원입니다. 회원가입하시겠습니까?") if(tmp){ location.href="insertForm.jsp"; }else{ history.back(); } </script> <% } %>
2-1. 페이지이동시 js코드보다 java코드가 좋은 이유
다른 페이지로 이동시 왜 js코드보다 java코드가 더 좋을까? 해당파일의 확장자는 jsp이다. jsp파일이라서 자바코드의 처리가 우선순위에 있다. js코드인 경우, java로 된 코드가 다 실행되고 난 뒤에 실행이 된다. 이때 이후에 나오는 java코드에 문제가 생기면 js코드가 실행안될 수 있기때문에 아예 java코드를 쓰는것이 실행순서상 좋다.
서버는 클라이언트의 1건의 요청에 응답 후 연결을 끊는다. WHY? 서버가 요청오는 모든 클라이언트와 계속 연결이 되어있으면 서버쪽에 부담이 되기때문에!
이때 요청에 응답하면서 쿠키를 함께 보낸다. WHY? 아 옛날에 그 클라이언트구나?! 하면서 클라이언트를 구분해서 인지할수있고 빠른 응답이 가능하기때문에!
1-2. 쿠키사용방법
쿠키 생성하기
서버
서버는 쿠키 객체를 생성
서버는 쿠키에 필요한 설정을 지정(유효기간, 설명, 도메인, … 등등)
서버가 생성된 쿠키를 HDD에 저장 후 클라이언트에 쿠키를 전달
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
<h1>쿠키테스트(서버 역할)</h1> <% //1.쿠키객체생성 : 기본생성자이면 에러가 뜨니 기본값을 직접 입력해주거나 꼭 파라미터를 작성할 것 //아래처럼 직접 입력시 공백있으면 에러남 ex)"CookieVal!" =>에러발생 Cookie ck = new Cookie("cName", "CookieValue!");
//2.쿠키에 필요한 설정 : 시간설정(사용할 수 있는 시간을 지정) ck.setMaxAge(600); //초단위, 600초 = 10분(60초*10)
//3.쿠키정보를 저장해서 응답 response.addCookie(ck); %>
<scripttype="text/javascript"> alert("쿠키값생성 후 저장됨"); location.href="cookieTest.jsp"; </script>