Recent Posts
Link
250x250
오늘보다 더 나은 내일의 나에게_
비전공자의 IoT 국비 교육 수강일지 Day_36 본문
728x90
로그인 실패 시 예제
아이디나 비밀번호 둘 중에 하나라도 비어있을 때 LOG IN 버튼 누르면
"아이디/비밀번호를 입력해주세요" 문구 출력
코드
더보기더보기둘 중에 document.getElementById("submit"); let check_p = document.getElementById("check"); btn_submit.addEventListener("click", function(){ //1. id칸이나 pw칸 둘중에 하나라도 비어있으면 //p(id=check) "아이디/비밀번호를 입력해주세요" 문구 출력 let id = document.getElementById("id").value; let pw = document.getElementById("password").value; if(id == "" || pw == ""){ check_p.innerText="아이디/비밀번호를 입력해주세요"; } });
JSON 사용하기 위해 프로젝트에 라이브러리 추가
로그인 성공 시 예제
DB에 존재하는 ID와 PW를 입력했을 때 콘솔 창에 "로그인 성공" 출력
더보기더보기script 코드
요청 실패 document.getElementById("submit"); let check_p = document.getElementById("check"); btn_submit.addEventListener("click", function(){ //1. id칸이나 pw칸 둘중에 하나라도 비어있으면 //p(id=check) "아이디/비밀번호를 입력해주세요" 문구 출력 let id = document.getElementById("id").value; let pw = document.getElementById("password").value; // if(!id||!pw){ if(id == "" || pw == ""){ check_p.innerText="아이디/비밀번호를 입력해주세요"; }else{ //JSON({키 : 실제값}) 형식 데이터 만들기 let data = {'id': id, 'pw':pw}; let xhr = new XMLHttpRequest(); //요청방식, 요청경로 xhr.open("post", "loginService"); //전송데이터의 형식 xhr.setRequestHeader("Content-Type","application/json;charset=UTF-8"); //요청 & 전송할 데이터 xhr.send(JSON.stringify(data)); xhr.onreadystatechange = function() { if(xhr.readyState === XMLHttpRequest.DONE){ //요청성공 if(xhr.status===200){ console.log("응답성공"); }else{ console.log("응답실패"); } }else{ // 요청실패 console.log("요청실패"); } }// end of function } // end of else });
servlet 코드
package com.controller; import java.io.BufferedReader; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; 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 com.google.gson.JsonElement; import com.google.gson.JsonParser; @WebServlet("/loginService") public class loginService extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //application/x-www-form-urlencoded //String id = request.getParameter("id"); //String pw = request.getParameter("pw"); Connection conn = null; PreparedStatement psmt = null; ResultSet rs = null; StringBuffer sb = new StringBuffer(); //읽어온 데이터 저장 String line = null; //버퍼안에 데이터 읽을때 사용(임시저장) BufferedReader reader = request.getReader(); //요청데이터 읽을때 사용 while((line = reader.readLine()) != null) {//읽을 데이터가 있을때 반복 수행 sb.append(line); //읽어온데이터를 sb(StringBuffer)에 추가 } JsonParser parser = new JsonParser(); //파싱(문자열 -> JSON) JsonElement element = parser.parse(sb.toString()); String id = element.getAsJsonObject().get("id").getAsString(); //키값이 id인 데이터 String pw = element.getAsJsonObject().get("pw").getAsString(); //키값이 pw인 데이터 System.out.println("아이디 : "+ id); System.out.println("비밀번호 : "+ pw); //로그인 가능할 경우 콘솔창에 : 로그인 성공 출력(페이지이동x) //로그인 불가능할 경우 콘솔창에 : 로그인 실패 (페이지이동x) 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 = "select * from mem where id = ? and pw = ?"; psmt = conn.prepareStatement(sql); psmt.setString(1, id); psmt.setString(2, pw); rs = psmt.executeQuery(); if(rs.next()){ System.out.println("로그인 성공"); }else { System.out.println("로그인 실패"); } }catch(Exception e) { e.printStackTrace(); }finally { try { rs.close(); psmt.close(); conn.close(); } catch (Exception e2) { e2.printStackTrace(); } }// end of finally }//end of service }//end of class
Cookie(쿠키)
쿠키 생성
쿠키 가져오기 및 출력
쿠키 document에 출력
쿠키 삭제(생명주기 설정)
Session(세션)
세션 생성 방법
-> servlet에서
HttpSession session = request.getSession(); session.setAttribute("loginid", id);
-> jsp에서
session.setAttribute("NewSession", "HeonchanKim");
세션 출력방법
=> session.getAttribute() => Object 타입이어서 형변환 해줘야 한다String str = (String)session.getAttribute("NewSession");
세션 삭제방법
=> 세션을 삭제하거나 세션이 존재하지 않은 상태에서 세션을 출력하면 null이 출력된다session.removeAttribute("NewSession");
728x90
'비전공자의 코딩일지' 카테고리의 다른 글
비전공자의 IoT 국비 교육 수강일지 Day_38 (0) | 2022.02.11 |
---|---|
비전공자의 IoT 국비 교육 수강일지 Day_37 (0) | 2022.02.10 |
비전공자의 IoT 국비 교육 수강일지 Day_35 (0) | 2022.02.08 |
비전공자의 IoT 국비 교육 수강일지 Day_34 (0) | 2022.02.07 |
비전공자의 IoT 국비 교육 수강일지 Day_33 (0) | 2022.02.05 |
Comments