순수중독, 방동근, Stefan, PureHolic, Mac, iPod, Travel, Korea…

Archive for the ‘웹플 : JSP’ Category


MAMP와 톰캣을 이용한 JSP와 MySQL 연결

Jul 23, 2008 Author: 순수중독 | Filed under: 웹플 : JSP | View counter: 243

 MAMP의 DB를 JSP와 연결하여 사용하는 것이 맥(OSX)에서 JSP를 공부하는 중에 생긴 매우 어려운 점이었다. 하지만 막상 실제로 해결을 하고 보니 순전히 내가 JSP에 대한 구조를 잘 몰랐기 때문에 생긴 단순한 실수였다. 한마디로 바보.

구축환경

 위의 구축환경을 보면 알겠지만 매우 간단하다. MAMP는 윈도우의 AMP와 동일한 것으로 Apache+MySQL을 자동으로 설치하여 준다. 그리고 기본적으로 톰캣에는 모든 DB에 대한 JDBC가 제공되고 있지 않으므로 각 DB의 사이트에서 다운을 받으면 된다. 난 MySQL을 사용하기 때문에(MAMP) MySQL 사이트에서 다운 받았다.

  1. JDBC드라이버의 설치
    ~/ROOT/WEB-INF/lib/ 앞의 위치에 JDBC Driver.jar 파일을 복사를 해둔다. (파일명의 경우는 드라이버마다 다르다. 어디에 복사해야하는지 몰라서 하루종일 DB만 만지고 있었음)
  2. Tomcat의 재실행
  3. JSP파일을 열어본다.

 이런 간단한 방법으로 쉽게 MAMP와 톰캣을 이용하여 DB를 접근할 수 있다. DB의 관리는 MAMP에서 기본으로 제공되고 있는 phpMyAdmin을 이용하거나 다른 DB관리프로그램(CocoaSQL 등)을 이용하여도 된다.

 위의 설정이 되는지 간단한 테스트를 하여보자.

  1. pureshop 데이터베이스의 생성 (phpMyAdmin)
  2. good 테이블 생성, 컬럼 id, title, price
  3. good 테이블에 간단한 테스트 값의 입력
  4. 아래의 소스를 실행
<%@ page contentType="text/html;charset=utf-8" import="java.sql.*" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
 
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>PureShop : DB test</title>
	<meta name="author" content="PureHolic">
</head>
<body>
<h1>Good's list</h1>
 
<%
	String DB_URL = "jdbc:mysql://localhost/pureshop";
	String DB_USER = "root";
	String DB_PASSWORD = "root";
 
	Connection db;
	Statement stmt;
	ResultSet rs = null;
 
	String query = "SELECT * FROM good";
 
	try {
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		db = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
		stmt = db.createStatement();
 
		rs = stmt.executeQuery(query);
%>
<ol>
<% while(rs.next()) { %>
<li>상품ID : <%= rs.getInt("id") %> | 상품명 : <%= rs.getString("title") %> | 상품가격 : <%= rs.getDouble("price") %></li>
 
<% } %>
</ol>
 
<%
		rs.close();
		stmt.close();
		db.close();
	} catch(Exception e) { e.printStackTrace(); }
%>
</body>
</html>

실행결과

이제 JSP의 기초는 대략 알게 된 것 같다. 이제 DB를 좀 더 잘 다룰 수 있는 방법과 또 나만의 쇼핑몰을 위한 구상을 하여서 JSP를 이용한 쇼핑몰을 하나 제작해봐야겠다.

JSP에서 세션(SESSION) 사용법

Jul 14, 2008 Author: 순수중독 | Filed under: 웹플 : JSP | View counter: 558

 세션(SESSION)이란 쿠키(Cookie)와 함께 자주 비교되면서 웹프로그래밍에서 자주 쓰이는 녀석이다. 이 녀석이 쿠키와 동일하게 비동기식의 접속인 HTTP에서 데이터를 유지해주는 기능을 한다.

 하지만 여기서 쿠키와 다른 점이 있으니 접속이 완전히 끊어졌을 때(브라우저 종료시) 데이터도 함께 사라진다. 쿠키처럼 데이터를 사용자의 컴퓨터에 저장하는 것이 아니라 그냥 날려버리는 것이다. 이와 같은 형식은 쇼핑몰에서 장바구니 기능에 유용하게 사용된다.

<%@ page contentType="text/html;charset=utf-8" %>
 
<html>
<head>
<title>Cookie Counter. ver Session</title>
</head>
<body>
<h4>Welcome to my blog</h4>
 
<%
// getAttribue()는 object형을 반환
// wrapper클래스의 사용이 필요.
Integer number = (Integer)session.getAttribute("counter");
 
if(number==null) { number = new Integer(1); }
else { number = new Integer(number.intValue()+1); }
 
// 세션의 저장.
session.setAttribute("counter", number);
%>
 
Count Today : <%= number %>
 
</body>
</html>

 그리고 위에서 보듯이 객체단위로 저장하기 때문에 쇼핑몰 제작시엔 각 상품의 객체가 들어갈 수 있다.

 세션은 클라이언트와 서버간의 연결 단위를 지칭하는 단어로 하나의 세션이 형성되었다는 말은 클라이언트와 서버간의 하나의 연결이 이루어졌다는 의미이다. 그리고 사용자가 브라우저로 접속한 이후 브라우저를 닫거나 다른 사이트로 이동하는 등 접속을 끊을 때까지 유지된다.

JSP에서 쿠키(Cookies) 사용법

Jul 14, 2008 Author: 순수중독 | Filed under: 웹플 : JSP | View counter: 280

 간단한 카운터나 중요하지 않은 데이터를 사용자의 컴퓨터에 잠시 저장할 때 사용하기 좋은 쿠키(Cookies) 보안상의 문제로 말은 많지만 사용법은 알아두어야지!

쿠키의 읽기 / 저장

<%@ page contentType="text/html;charset=utf-8" %>
 
<html>
<head>
<title>Cookie Counter</title>
</head>
<body>
<h4>Welcome to my blog</h4>
 
<%
// 쿠기를 읽어온다.(배열로 반환)
Cookie[] cookies = request.getCookies();
String cookie_Value = "0";
int int_Value = 0;
 
for(int i=0; i<cookies.length; i++) {
	if(cookies[i].getName().equals("counter")) {
		cookie_Value = cookies[i].getValue();
		break;
	}
}
 
// 쿠키의 값은 문자열이기 때문에 정수형으로 변환뒤 1을 더함.
int_Value = Integer.parseInt(cookie_Value)+1;
// 쿠기의 저장을 위해서 다시 문자열로 변환.
cookie_Value = Integer.toString(int_Value);
 
Cookie new_Cookie = new Cookie("counter", cookie_Value);
new_Cookie.setMaxAge(5*24*60*60); // 쿠키의 보관시간 (기준 초)
response.addCookie(new_Cookie); // 쿠키의 저장.
%>
 
Count Today : <%= cookie_Value %>
 
</body>
</html>

위와 같이 쿠키는 배열형으로 반환되는 것이 포인트!

 

쿠키의 삭제

쿠키의 삭제시엔 쿠키를 저장할 때 보관기간을 0으로 하여 브라우저에서 바로 쿠키를 삭제하도록 설정.

 new_Cookie.setMaxAge(0); // 보관기간이 0이기 때문에 바로 삭제

Flickr PhotoStream

    2008.10.17 검정조끼 방동근2008.10.16 와인셔츠 방동근2008.10.15 가디건 방동근2008.10.11 동전노래방에서 - 22008.10.11 동전노래방에서 - 1

글목록


그 밖의 기능


Sponsors