Module Web Arch01

Module Web Arch


์ž๋ฐ”๋กœ ์›น๊ฐœ๋ฐœ์„ ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. Modul Web Arch01

ํ•˜์ง€๋งŒ ์ž˜ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ •๋ง ์œ ์ง€๊ด€๋ฆฌ๋ฅผ ๋น„๋กฏํ•˜์—ฌ ๋น„ํšจ์œจ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์œ ์ง€๊ด€๋ฆฌ

  • ํ˜‘์—…
  • ์š”๊ตฌ์‚ฌํ•ญ๋ณ€๊ฒฝ
  • ์žฌ์‚ฌ์šฉ์„ฑ
  • โ€ฆ. ๋“ฑ

์œ„์— ๊ตฌ์กฐ๋Š” Servlet๊ณผ JDBC๊ฐ€ ํ†ตํ•ฉ๋˜์–ด ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค.
ํ•˜์ง€๋งŒ ์—„์—ฐํžˆ Servlet๊ณผ JDBC ๋Š” ๊ฐ์ž๊ฐ€ ํ•˜๋Š” ์—ญํ• ์ด ๋‹ค๋ฅด๋‹ค.

Servlet์€ Client(Browser)์™€์˜ ์†Œํ†ต์„ ํ•˜๋ฉฐ Presentation ์˜์—ญ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜์žˆ๊ณ 
JDBC๋Š” DB์™€ ์†Œํ†ต์„ ํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ฃผ๋Š” Buseniess Losic์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ์˜์—ญ์„ ํšจ์œจ์„ฑ์„ ์œ„ํ•ด ๋ถ„๋ฆฌํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

Servlet๊ณผJDBC๋ฅผ ์˜ˆ๋กœ ๋ณด์ž

public class Login extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		
		req.setCharacterEncoding("EUC_KR");		
		res.setContentType("text/html;charset=euc_kr");
		PrintWriter out = res.getWriter();
		
		String id = req.getParameter("id");
		String pwd = req.getParameter("pwd");
		
		String fromDbId = null;
		String fromDbPwd = null;
		
		try {
			String dburl = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
			String dbuser = "scott";
			String dbpwd = "tiger";
			
			Class.forName("oracle.jdbc.driver.OracleDriver");
			Connection con = DriverManager.getConnection(dburl, dbuser, dbpwd);
			
			PreparedStatement pStmt =
				con.prepareStatement("SELECT ID , PWD FROM users WHERE id=?");
			pStmt.setString(1, id);
			ResultSet rs = pStmt.executeQuery();
			
			if(rs.next()) {
				fromDbId = rs.getString("id");
				fromDbPwd = rs.getString("pwd");
				System.out.println("db์—์„œ ํ™•์ธ ํ•œ id.pwd ==> : "+fromDbId+" : "+fromDbPwd);
			}else {
				System.out.println("db์— client์—์„œ ์ž…๋ ฅํ•œ <"+id+"> ์™€ <"+pwd+"> ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.");
			}
			rs.close();
			pStmt.close();
			con.close();
		} catch (Exception e) {
			System.out.println(" ===> JDBC๊ด€๋ จ Exception์ด ๋ฐœ์ƒํ•œ ๋ชจ์–‘ <===");
			e.printStackTrace();
		}
		
		out.println("<html>");
		out.println("<head></head>");
		out.println("<body>");
		out.println("<h2>Login ํ™”๋ฉด</h2>");
		
		if(fromDbId != null && fromDbPwd != null
				&& fromDbId.equals(id) && fromDbPwd.equals(pwd)) {
			out.println(id+"๋‹˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค");
		}else {
			out.println("id,pwd๋ฅผ ํ™•์ธํ•˜์„ธ์š”.");
		}
		out.println("<p><p><a href='/edu/jw04/login.html'>๋’ค๋กœ</a>");
		out.println("</body>");
		out.println("</html>");
	}
}

์œ„์™€ ๊ฐ™์ด Servlet๊ณผ JDBC๊ฐ€ ๊ฐ™์ด ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ ํ˜‘์—…์„ ํ•˜๊ณ  ๋˜ํ•œ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ํ•˜๊ฒŒ๋œ๋‹ค๋ฉด ๋ถˆํŽธํ•œ ์ ์ด ๋งŽ์„ ๊ฒƒ์ด๋‹ค.
์—ญํ• ๋ณ„๋กœ ๋‚˜๋ˆ ๋ณธ๋‹ค๋ฉด

Servlet

public class LoginBean extends HttpServlet {
	protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		
		req.setCharacterEncoding("EUC_KR");		
		res.setContentType("text/html;charset=euc_kr");
		PrintWriter out = res.getWriter();
		
		String id = req.getParameter("id");
		String pwd = req.getParameter("pwd");
		DbBean dbBean = new DbBean();
		dbBean.setId(id);
		dbBean.setPwd(pwd);
		
		boolean isLogin = dbBean.getUser();
		
		out.println("<html>");
		out.println("<head></head>");
		out.println("<body>");
		out.println("<h2>Login ํ™”๋ฉด</h2>");
		if(isLogin) {
			out.println(id+"๋‹˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค");
		}else {
			out.println("Login ์‹คํŒจ id,pwd๋ฅผ ํ™•์ธํ•˜์„ธ์š”.");
		}
		out.println("<p><p><a href='/edu/jw04/login.html'>๋’ค๋กœ</a>");
		out.println("</body>");
		out.println("</html>");
	}
}

JDBC

public class DbBean {

	String dburl = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
	String dbuser = "scott";
	String dbpwd = "tiger";
	String id;
	String pwd;

	// constructor
	public DbBean() {
	}
	public void setId(String id) {
		this.id = id;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public boolean getUser() {

		Connection con = null;
		PreparedStatement pStmt = null;
		ResultSet rs = null;
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			con = DriverManager.getConnection(dburl, dbuser, dbpwd);

			pStmt = con.prepareStatement("SELECT id , pwd FROM users WHERE id=?");
			pStmt.setString(1, id);

			rs = pStmt.executeQuery();
			String str = null;
			if (rs.next()) {
				str = rs.getString("pwd");
				System.out.println("db์—์„œ ํ™•์ธ ํ•œ id.pwd ==> : " + id + " : " + pwd);
			} else {
				System.out.println("db์— client์—์„œ ์ž…๋ ฅํ•œ <" + id + "> ์™€ <" + pwd + "> ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.");
			}
			if (str != null && str.equals(pwd)) {
				return true;
			} else {
				return false;
			}
		} catch (Exception e) {
			return false;
		} finally {
		}
}

ํฌ๊ฒŒ ์œ„์™€ ๊ฐ™์ด ๋ถ„๋ฅ˜ํ•˜์—ฌ ํšจ์œจ์„ฑ์žˆ๊ณ  ์œ ์—ฐ์„ฑ์žˆ๋Š” ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ JDBC์—์„œ๋„ ์•„์ง ๋ถ„๋ฅ˜๊ฐ€ ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๋Š” ํ•„๋“œ๊ฐ’๊ณผ DB๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค. ์ด๊ฒƒ์„ ์šฐ๋ฆฌ๋Š” VO์™€ SQL๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

VO VO๋Š” Value Object๋กœ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’๋งŒ์„ ๊ฐ€์ง€๊ณ  ์…‹ํŒ…ํ•˜๋Š” ๊ฐ์ฒด๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

public class UserVO {
	
	private String id;
	private String pwd;
	private boolean active;
	
	public UserVO() {
	}
	public UserVO(String id, String pwd) {
		setId(id);
		setPwd(pwd);
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public boolean isActive() {
		return active;
	}
	public void setActive(boolean active) {
		this.active = active;
	}
	public String toString() {
		return "UserVO [id=" + id + ", pwd=" + pwd + ", active=" + active + "]";
	}
}

SQL

package jw04;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class UserDao {

	String dburl = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
	String dbuser = "scott";
	String dbpwd = "tiger";
	
	// constructor
	public UserDao() {
	}

	public void getUser(UserVO userVO) {

		Connection con = null;
		PreparedStatement pStmt = null;
		ResultSet rs = null;

		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			con = DriverManager.getConnection(dburl, dbuser, dbpwd);

			pStmt = con.prepareStatement("SELECT id , pwd FROM users WHERE id=? AND pwd = ?");
			pStmt.setString(1, userVO.getId());
			pStmt.setString(2, userVO.getPwd());

			rs = pStmt.executeQuery();
			
			if (rs.next()) {
				System.out.println("db์—์„œ ํ™•์ธ ํ•œ id.pwd ==> : " +userVO.getId()+" : "+userVO.getPwd());
				userVO.setActive(true);
			} else {
				System.out.println("db์— client์—์„œ ์ž…๋ ฅํ•œ <"+userVO.getId()+"์™€ "+userVO.getPwd()+"> ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
		}
}

Categories:

Updated:

Leave a comment