‡๐Ÿ‘ฉ‍๐Ÿ’ป ‡/º Java

[Java] JSP, JDBC ์‹ค์Šต 2

Trudy | ์†ก์—ฐ 2023. 11. 30. 17:28

https://xoxoxoxox.tistory.com/155

์œ„ ์‹ค์Šต์„ ์ด์–ด์„œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋” ๊ตฌ์ฒดํ™” ์‹œ์ผœ๋ณด๊ฒ ๋‹ค. 

์›น ํŽ˜์ด์ง€ ์š”์ฒญ์˜ URI๋ฅผ ์ด์šฉํ•ด ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋„˜๊ฒจ ํšŒ์›๊ฐ€์ž…์„ ์‹œํ‚ค๊ณ , 

ํšŒ์›๊ฐ€์ž…์ด ๋œ ์œ ์ €์˜ ๊ฒฝ์šฐ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์—์„œ ์•„์ด๋”” ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋„˜๊ธฐ๋ฉด ๋กœ๊ทธ์ธ์˜ ๊ธฐ๋Šฅ์„ ํ•˜๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค. 


์›น : url์— ์ €์žฅ๋œ ์ฃผ์†Œ๋ฅผ ์š”์ฒญ์— ์ ์–ด์ค€๋‹ค
์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜  : uri๋ฅผ ์‚ฌ์šฉํ•ด์„œ id๊ฐ’์„ ์ด์šฉํ•ด mapping๋œ ๊ฐ’์„ ์ด์šฉ

 

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด์„œ ์›นํŽ˜์ด์ง€ ์š”์ฒญ์ด ํ•ด๋‹น ๊ฒฝ๋กœ๋กœ ๋“ค์–ด์˜ค๊ฒŒ ๋˜๋ฉด, SignInServlet์„ ์‹คํ–‰ํ•˜๋„๋ก mapping ์‹œ์ผœ์ค€๋‹ค. 

@WebServlet("/signin")

 

GET์œผ๋กœ ์š”์ฒญ์ด ์˜ค๋ฉด, doGet ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์ด ์ฒ˜๋ฆฌ๋œ๋‹ค. 

์ด๋•Œ TomCat์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง€๋Š” HttpServletRequest ๊ฐ์ฒด์—๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์ด ๊ฐ์ฒด๋กœ ์ „๋‹ฌํ•ด์ฃผ๊ณ , 

HttpServletResponse ๊ฐ์ฒด์—๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋Œ์•„๊ฐˆ ์‘๋‹ต์ด ์ €์žฅ๋˜๊ฒŒ ํ•œ๋‹ค. 

@WebServlet("/signin")
public class SignInServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
                     ...
    }
}

 

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ, HttpServletRequest์˜ getParameter๋ผ๋Š” ๋ฉ”์„œ๋“œ๋กœ ์‰ฝ๊ฒŒ ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. 

login์ด๋ผ๋Š” ๊ฒฝ๋กœ๋กœ ๋“ค์–ด์˜ค๊ฒŒ ๋˜๋ฉด ? ๋’ค์—๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์˜ค๊ฒŒ๋œ๋‹ค. 

์•„๋ž˜ ์ฝ”๋“œ์—์„œ uid์™€ upw์—๋Š” ๊ฐ๊ฐ song๊ณผ 1234๊ฐ€ ์ €์žฅ๋˜๊ฒŒ ํ•œ๋‹ค. 

String uid = request.getParameter("uid");
String upw = request.getParameter("upw");

 


๐Ÿ“์ฝ”๋“œ

๐Ÿพ SignInServlet.java

package com.example.web;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;


@WebServlet("/signin")
public class SignInServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {

        // request ๋ณ€์ˆ˜์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ HTTP ํ”„๋กœํ† ์ฝœ๋กœ ์š”์ฒญํ•œ ๋ชจ๋“ ๊ฒŒ ์ €์žฅ๋˜์–ด ์žˆ์Œ
        // request ๋ณ€์ˆ˜์— ์ €์žฅ๋œ HttpServletRequest ๊ฐ์ฒด์—
        // getParameter() ๋ฉ”์†Œ๋“œ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ด์ค€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜จ๋‹ค.
        String uid = request.getParameter("uid");
        String upw = request.getParameter("upw");

        Connection conn = null; // DB ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ์ฒด
        Statement stmt = null; // SQL์„ ์‹คํ–‰ํ•˜๋Š” ๊ฐ์ฒด
        ResultSet rs = null; // ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ฐ์ฒด
        try {
            String url = "jdbc:mysql://10.10.10.3:3306/db";
            String id = "bsy";
            String pw = "qwer123";
            conn = DriverManager.getConnection(url, id, pw);
            stmt = conn.createStatement();
            String sql = "INSERT INTO user (uid, upw) VALUES ('" + uid + "', " + upw + ")";
            Integer result = stmt.executeUpdate(sql);

            PrintWriter out = response.getWriter();
            if (result > 0) {
                out.println("SignUp success!");
                out.println("ID :" + uid);
                out.println("PWD :" + upw);

            } else {
                out.println("insert ์•ˆ๋จ");
            }

            // response ๋ณ€์ˆ˜์— ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ HTTP ํ”„๋กœํ† ์ฝœ๋กœ ์‘๋‹ตํ•  ๋ชจ๋“ ๊ฒŒ ์ €์žฅ๋˜์–ด ์žˆ์Œ
            // response ๋ณ€์ˆ˜์— ์ €์žฅ๋œ HttpServletResponse ๊ฐ์ฒด์—
            // getWriter() ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ outputstream์„ ๋ฐ›์•„์˜ค๊ณ 
            // ํ•ด๋‹น ์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด
            // ํด๋ผ์ด์–ธํŠธ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋‚ด์šฉ์ด ์ถœ๋ ฅ๋œ๋‹ค.



        } catch (SQLException ex) {
            System.out.println("SQLException: " + ex.getMessage());
            System.out.println("SQLState: " + ex.getSQLState());
            System.out.println("VendorError: " + ex.getErrorCode());
        }


        System.out.println("ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ํด๋ž˜์Šค ํŒŒ์ผ์„ ์‹คํ–‰");
    }

}

 

๐Ÿพ loginServlet.java

package com.example.web;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;


@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {

        // request ๋ณ€์ˆ˜์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ HTTP ํ”„๋กœํ† ์ฝœ๋กœ ์š”์ฒญํ•œ ๋ชจ๋“ ๊ฒŒ ์ €์žฅ๋˜์–ด ์žˆ์Œ
        // request ๋ณ€์ˆ˜์— ์ €์žฅ๋œ HttpServletRequest ๊ฐ์ฒด์—
        // getParameter() ๋ฉ”์†Œ๋“œ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ด์ค€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜จ๋‹ค.
        String uid = request.getParameter("uid");
        String upw = request.getParameter("upw");

        Connection conn = null; // DB ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ์ฒด
        Statement stmt = null; // SQL์„ ์‹คํ–‰ํ•˜๋Š” ๊ฐ์ฒด
        ResultSet rs = null; // ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ฐ์ฒด
        try {
            String url = "jdbc:mysql://10.10.10.3:3306/db";
            String id = "bsy";
            String pw = "qwer123";
            conn = DriverManager.getConnection(url, id, pw);
            stmt = conn.createStatement();
            String sql = "SELECT * FROM user WHERE uid='"+uid+"'";
            rs = stmt.executeQuery(sql);

            // response ๋ณ€์ˆ˜์— ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ HTTP ํ”„๋กœํ† ์ฝœ๋กœ ์‘๋‹ตํ•  ๋ชจ๋“ ๊ฒŒ ์ €์žฅ๋˜์–ด ์žˆ์Œ
            // response ๋ณ€์ˆ˜์— ์ €์žฅ๋œ HttpServletResponse ๊ฐ์ฒด์—
            // getWriter() ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ outputstream์„ ๋ฐ›์•„์˜ค๊ณ 
            // ํ•ด๋‹น ์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด
            // ํด๋ผ์ด์–ธํŠธ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋‚ด์šฉ์ด ์ถœ๋ ฅ๋œ๋‹ค.
            PrintWriter out = response.getWriter();

			//result๊ฐ’์ด ์žˆ์œผ๋ฉด, ๋กœ๊ทธ์ธ ์„ฑ๊ณต!
            if(rs.next()){
                out.println(rs.getString("uid"));
                out.println(rs.getInt("upw"));
            }

        } catch (SQLException ex) {
            System.out.println("SQLException: " + ex.getMessage());
            System.out.println("SQLState: " + ex.getSQLState());
            System.out.println("VendorError: " + ex.getErrorCode());
        }


        System.out.println("ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ํด๋ž˜์Šค ํŒŒ์ผ์„ ์‹คํ–‰");
    }

}

๐Ÿ“์‹คํ–‰ ๊ฒฐ๊ณผ

๐Ÿพ ํšŒ์›๊ฐ€์ž…


๐Ÿพ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค


๐Ÿพ ๋กœ๊ทธ์ธ