'공부/최범균jsp2.2 췝프로그래밍'에 해당되는 글 2건

  1. 2014.07.01 [자바] JDBC 구조 기초 + statement & preparedStatement
  2. 2014.06.27 chapter 16 표준태그 라이브러리 (jstl)_03국제화 태그
728x90

JDBC 프로그램의 일반적인 실행순서

1. JDBC 드라이버 로딩

2. 데이터베이스 커넥션 구함

3. 쿼리 실행을 위한 Statement 객체 생성

4. 쿼리실행

5. 쿼리실행 결과 사용

6. Statement 종료

7. 데이터베이스 커넥션 종료


예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import = "java.sql.*" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>회원 목록</title>
</head>
<body>
MEMBER 테이블의 내용
<table width="100%" border="1">
<tr>
    <td>이름</td><td>아이디</td><td>이메일</td>
</tr>
<%
    //1. jdbc 드라이버 로딩
    Class.forName("com.mysql.jdbc.Driver");
 
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    
    try
    {
        String jdbcDriver = "jdbc:mysql://localhost:3306/chap12?" +
                "useUnicode=true&characterEncoding=euckr";
        String dbUser = "jspexam";
        String dbPass = "jspex";
 
        String query = "select * from MEMBER order by MEMBERID";
        
        //2.데이터베이스 커넥션 생성
        conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass);
        
        //3.Statements 생성 쿼리 실행을 위한
        stmt = conn.createStatement();
        
        //4.쿼리 실행
        rs = stmt.executeQuery(query);
        
        //5.쿼리 실행 결과 출력
        while(rs.next()){
%>
 
<tr>
    <td><%= rs.getString("NAME") %></td>
    <td><%= rs.getString("MEMBERID") %></td>
    <td><%= rs.getString("EMAIL") %></td>    
</tr>
<%
    }
    }
    catch(SQLException ex)
    {
        out.println(ex.getMessage());
        ex.printStackTrace();
    }
    finally
    {
        //6.사용한 Statement 종료
        if(rs != nulltry {rs.close();} catch(SQLException ex){}
        if(stmt != nulltry{stmt.close();}catch(SQLException ex){}
        
        //7.커넥션 종료
        if(conn != nulltry{conn.close();}catch(SQLException ex){}
    }
%>
</table>
</body>
</html>


자세한 내용은 최번균의 jsp2.2 웹프로그래밍 Chapter12  315 Page에 나와있다 




statement & preparedStatement


1. Statement 

String sqlstr = "SELECT name, memo FROM TABLE WHERE num = " + num 
Statement stmt = conn.credateStatement(); 
ResultSet rst = stmt.executeQuerey(sqlstr);

2. PreparedStatement 

String sqlstr = "SELECT name, memo FROM TABLE WHERE num = ? " 
PreparedStatement stmt = conn.prepareStatement(sqlstr); 
pstmt.setInt(1, num); 
ResultSet rst = pstmt.executeQuerey(); 

Posted by 앗뜨거
,
728x90

1. jstl 국제화태그 사용방법

1.톰뱃 7버전 JSTL 1.2 다운로드후 설치된 톰캣폴더의 lib 또는 현재 진행중인 WEB-INF/lib 밑에 넣어준다


javax.servlet.jsp.jstl-1.2.1.jar


javax.servlet.jsp.jstl-api-1.2.1.jar



2.리소스 번들 작성후 resource 폴더에 넣기

이클립스에서는 프로젝트 소스 디렉토리에 resource패키지를 생성한 뒤 넣기

이클립스가 아니라면 WEB-INF/classes/resource에 작성


예시>xxxxxx.properties 로 저장 (번들이름_언어_국가.properties 국가코드는 생략가능하고 영어는 언어국가 둘다 안씀)


1
2
3
4
TITLE = MadVirus's Learning JSP 2.2
GREETING = HI! I'm BK
VISITOR = your ID is {0}                  // {0} 이부분은 변경가능한 요소를 제공하는 위치
 


3. 사용할 jsp 파일 상단에

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" />



4. 예제파일


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>    //fmt 국제화 태그 사용준비
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>   // c 코어 태그 사용준비
 
<fmt:setBundle basename="chap16.resource.message" var="message" />   <!-- 사실 var="message 는 없어도됨 없애면 밑에도 다 없애야됨  -->
<!-- var가 있으면 출력되지않고 key 값을 저장  var가 없으면 바로 출력-->
<fmt:message bundle="${message }" key="TITLE" var="title" />    
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>${title }</title>
</head>
<body>
 
<fmt:message bundle="${message }" key="GREETING" />
<br>
<c:if test="${! empty param.id }">      <!-- 파라메터가 비어있지않으면 메시지 출력 -->
    <fmt:message bundle="${message }" key="VISITOR">
        <fmt:param value="${param.id }" />
    </fmt:message>    
</c:if>
</body>
</html>

결과물은 
HI! I'm BK 
가 나옵니다

만약 주소 맨 뒤에 ?id=aaa를 넣어주면
결과물은
HI! I'm BK 
your ID is aaa

2. jstl 국제화태그 태그 사용


1.메시지 처리 태그


2.숫자 및 날짜 포맷팅 처리 태그

- <fmt:formatNumber> 태그(태그가 숫자를 문자열로 변환)

- <fmt:parseNumber> 태그(문자열을 숫자로 변환)


- <fmt:formatDate> 태그 (날짜정보를 담고있는 객체를 포맷팅하여 출력)

- <fmt:parseDate> 태그 (문자열로 표시된 날짜 및 시간의 값을 java.util.Date 로 파싱해주는 기능)

- <fmt:timeZone> 태그와 <fmt:setTimeZone>태그 (각나라마다의 시간대 별로 시간을 처리할수 있는 기능)

Posted by 앗뜨거
,