오늘보다 더 나은 내일의 나에게_

비전공자의 IoT 국비 교육 수강일지 Day_36 본문

비전공자의 코딩일지

비전공자의 IoT 국비 교육 수강일지 Day_36

chan_96 2022. 2. 9. 19:14
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");

 


세션 삭제방법
session.removeAttribute("NewSession");​
=> 세션을 삭제하거나 세션이 존재하지 않은 상태에서 세션을 출력하면 null이 출력된다
728x90
Comments