[Java] JSP, JDBC ์ค์ต 2
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("ํด๋ผ์ด์ธํธ๊ฐ ์น ๋ธ๋ผ์ฐ์ ๋ก ํด๋์ค ํ์ผ์ ์คํ");
}
}