Land of Joe

jsp 백엔드 개발 정리 본문

카테고리 없음

jsp 백엔드 개발 정리

Arendt 2023. 12. 5. 20:53

[ 로그인 ] 

<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %>

<!-- 라이브러리 import -->
<%@ page import="java.sql.DriverManager" %>     <!-- 데이터베이스 탐색 라이브러리 -->
<%@ page import="java.sql.Connection" %>        <!-- 데이터베이스 연결 라이브러리 -->
<%@ page import="java.sql.PreparedStatement" %> <!-- 데이터베이스 SQL 전송 라이브러리 -->
<%@ page import="java.sql.ResultSet" %>          <!-- 데이터베이스에서 값 받아오기 라이브러리 -->

<%
    request.setCharacterEncoding("utf-8");

    String idValue = request.getParameter("id_value");
    String pwValue = request.getParameter("pw_value");

    Class.forName("com.mysql.jdbc.Driver");
    Connection connect = DriverManager.getConnection("jdbc:mysql://localhost/stageus", "JKE", "1234");

    String sql = "SELECT * FROM account WHERE id = ? AND password = ?";
    PreparedStatement query = connect.prepareStatement(sql);
    query.setString(1, idValue);
    query.setString(2, pwValue);

    ResultSet result = query.executeQuery();   

    if (result.next()) {                       
        session.setAttribute("idx", result.getString(1));
        session.setAttribute("id", result.getString(2));
        session.setAttribute("name", result.getString(3));
        session.setAttribute("password", result.getString(4));
        session.setAttribute("email", result.getString(5));
        session.setAttribute("birthday", result.getString(6));
        session.setAttribute("phoneNumber", result.getString(7));
        response.sendRedirect("../index.jsp");
    }
%>

 

String sql = "SELECT * FROM account WHERE id = ? AND password = ?"

>> account 테이블에서 id가 ?이고, password가 ?인 행을 가져온다는 의미의 sql을 만들었다. 

 

PreparedStatement query = connect.prepareStatement(sql);

>> sql을 전송하는 query를 만들었다. 

query.setString(1, idValue);

query.setString(2, pwValue);

>> 그때 첫 번째 ?는 idValue이고, 두 번째 ?는 pwValue야. 

 

ResultSet result = query.executeQuery();

>> result라는 테이블은 위에서 만든 query에서 값을 받아온 거야. 

 

result.next();

>> result 테이블의 한 줄을 읽는다.

>> 즉, 로그인 페이지에서 입력한 idValue가 id column에 있고, pwValue가 password column에 있는 행이 존재한다.

 

if (result.next()) {

>> result 테이블을 읽을 수 있다면

    session.setAttribute("idx", result.getString(1));

    >> result 테이블의 첫 번째 열을 "idx"라는 이름으로 세션에 저장한다. 

    session.setAttribute("id", result.getString(2));

    >> result 테이블의 두 번째 열을 "id"라는 이름으로 세션에 저장한다. 

    session.setAttribute("name", result.getString(3));

    session.setAttribute("password", result.getString(4));

    session.setAttribute("email", result.getString(5));

    session.setAttribute("birthday", result.getString(6));

    session.setAttribute("phoneNumber", result.getString(7));

    response.sendRedirect("../index.jsp");

    >> "../index.jsp" 이 링크로 넘어간다. 

 

 

 

[ 회원가입 ]

<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %>

<!-- jsp에서 라이브러리 import -->
<%@ page import="java.sql.DriverManager" %>     <!-- 데이터베이스 탐색 라이브러리 -->
<%@ page import="java.sql.Connection" %>        <!-- 데이터베이스 연결 라이브러리 -->
<%@ page import="java.sql.PreparedStatement" %> <!-- 데이터베이스 SQL 전송 라이브러리 -->

<%
    request.setCharacterEncoding("utf-8");

    String idValue = request.getParameter("id_value");
    String pwValue = request.getParameter("pw_value");
    String nameValue = request.getParameter("name_value");
    String emailValue = request.getParameter("email_value");
    String birthdayValue = request.getParameter("birthday_value");
    String phoneNumberValue = request.getParameter("phoneNumber_value");

    Class.forName("com.mysql.jdbc.Driver");
    Connection connect = DriverManager.getConnection("jdbc:mysql://localhost/stageus","JKE","1234");

    String sql = "INSERT INTO account (id, password, name, email, birthday, phone_number) VALUES (?, ?, ?, ?, ?, ?)";
    PreparedStatement query = connect.prepareStatement(sql);
    query.setString(1, idValue);
    query.setString(2, pwValue);
    query.setString(3, nameValue);
    query.setString(4, emailValue);
    query.setString(5, birthdayValue);
    query.setString(6, telValue);

    // query 전송
    query.executeUpdate();
%>