Module Web Arch01
Module Web Arch
์๋ฐ๋ก ์น๊ฐ๋ฐ์ ํ๋ฉด ์์ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.

ํ์ง๋ง ์ ์๊ฐํด๋ณด๋ฉด ์ ๋ง ์ ์ง๊ด๋ฆฌ๋ฅผ ๋น๋กฏํ์ฌ ๋นํจ์จ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ ์ง๊ด๋ฆฌ
- ํ์
- ์๊ตฌ์ฌํญ๋ณ๊ฒฝ
- ์ฌ์ฌ์ฉ์ฑ
- โฆ. ๋ฑ
์์ ๊ตฌ์กฐ๋ 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 {
}
}
Leave a comment