Presentation is loading. Please wait.

Presentation is loading. Please wait.

CHAPTER 15. JSP.

Similar presentations


Presentation on theme: "CHAPTER 15. JSP."— Presentation transcript:

1 CHAPTER 15. JSP

2 서버와 클라이언트 클라이언트는 서버에게 웹페이지를 요구 웹 서버는 웹페이지를 찾아서 클라이언트에게 전달

3 동적인 웹페이지 사용자의 요청에 따라서 웹페이지의 내용이 달라지는 페이지 게시판, 블로그, 방명록
서버 컴퓨터 안에 도우미 프로그램을 작성해놓고 필요할 때마다 실행시켜서 결과를 얻은 후에 이것을 클라이언트 컴퓨터로 돌려주면 된다.

4 서블릿 효율적이다: 서블릿은 스레드(thread)를 생성하여 각 요청을 서비스하므로 보다 효율적이다.
편리하다 : 자바 언어를 알고 있는 개발자 강력하다 : 자바 서블릿을 사용하면 기존의 CGI 프로그램으로는 아주 어려웠던 여러 가지 작업을 쉽게 처리할 수 있다.

5 JSP JSP(JavaServer Pages)는 이러한 문제점을 해결하기 위하여 개발
자바를 기반으로 동적인 웹 페이지를 구축할 수 있는 서버-사이드 스크립트(server-side script) 언어 자바 서블릿을 기반으로 한다.

6 톰캣 JSP 엔진의 일종 톰캣 = 웹 서버 + JSP 컨테이너

7 실행 절차 Step 1: 아파치 톰캣을 시작한다. Step 2: 애플리케이션 폴더를 생성한다.
Step 3: WEB-INF 작성(또는 복사) Step 4: hello.jsp 파일 작성(UTF-8로 저장) Step 5: 웹브라우저로 실행시키기(

8 hello.jsp <html> <head>
<title>Hello World</title> </head> <body> 안녕하세요? 현재 시각은 <%= new java.util.Date() %>입니다. </body> </html>

9 JSP 수식

10 스크립틀릿

11 스크립틀릿 #1 <!DOCTYPE html> <HTML> <BODY> <%
java.util.Date date = new java.util.Date(); %> 안녕하세요? 현재 시각은 <%= date %>입니다. </BODY> </HTML>

12 스크립틀릿 #2 <!DOCTYPE html> <HTML> <BODY> <%
System.out.println( "날짜를 출력하여 본다." ); java.util.Date date = new java.util.Date(); %> 안녕하세요? 현재 시각은 out.println( String.valueOf( date )); 입니다. </BODY> </HTML>

13 스크립틀릿 #3 <!DOCTYPE html> <HTML> <BODY> <%
java.util.Date date = new java.util.Date(); %> 안녕하세요? 현재 시각은 out.println( date ); out.println( "<BR>이고 ip주소는 " ); out.println( request.getRemoteAddr()); 입니다. </BODY> </HTML>

14 JSP 주석 <!DOCTYPE html> <html>
<head><title>주석 테스트</title></head> <body> <h2>주석을 테스트합니다.</h2> <%-- 이 주석은 보이지 않습니다. --%> </body> </html>

15 JSP 지시어 <!DOCTYPE html> <%@ page import="java.util.*" %>
<BODY> <% Date date = new Date(); %> 안녕하세요? 현재 시간은 <%= date %> 입니다. </BODY> </HTML>

16 JSP 선언

17 JSP 선언 <!DOCTYPE html> <HTML> <BODY>
page import="java.util.*" %> <%! Date date = new Date(); Date getDate() { return date; } %> 안녕하세요? 현재 시각은 <%= getDate() %> 입니다. </BODY> </HTML>

18 JSP 조건문 <%! int day = 3; %> <html>
<head><title>if/else 예제</title></head> <body> <% if (day == 1 | day == 7) { %> <p> 오늘은 주말입니다.</p> <% } else { %> <p> 오늘은 주말이 아닙니다.</p> <% } %> </body> </html>

19 JSP 반복문 <%! int fontSize; %> <html>
<head><title>반복 구조 예제</title></head> <body> <%for ( fontSize = 1; fontSize <= 6; fontSize++){ %> <font color="red" size="<%= fontSize %>"> 안녕하세요? </font><br /> <%}%> </body> </html>

20 JSP 예제 page contentType="text/html; charset=utf-8" language="java" %> <% String[] array={"홍길동","김철수","김영희"}; %> <html> <body> int i=0; for(i=0;i<array.lengthi++) { out.print("배열 요소: "+array[i]+"<br/>"); } </body> </html>

21 JSP 난수 예제 <html> <head><title>fortune 예제</title></head> <body> <% double r = Math.random(); if (r > 0.60) { %> <h2 style="color:red">오늘은 행운의 날입니다!</h2><p>확률: <%= r %></p> } else { <h2>오늘은 평범한 날입니다.</h2><p>확률: <%= r %></p> } <a href="<%= request.getRequestURI() %>"><h3>다시 시도</h3></a> </body> </html>

22 MySQL 공개 데이터베이스 서버

23 데이터베이스 예제: 온라인 서점 MySQL 데이터베이스 드라이버 복사
mysql-connector-java-5.1.xx-bin.jar을 (톰캣 설치 디렉토리)/lib로 복사한다. 데이터베이스 생성 utf-8 버전의 명령어 행 클라이언트를 사용 웹 애플리케이션 생성 톰캣 설치 디렉토리)/webapps에 ebookshop이라는 디렉토리를 생성

24 데이터베이스 쿼리 화면 <%@ page import="java.sql.*" %>
page language="java" contentType="text/html;charset=utf-8" pageEncoding="utf-8"%> <% request.setCharacterEncoding("utf-8"); %> <html> <head> <title>온라인 서점 예제</title> </head> <body> <h1>인터넷 프로그래머 문고</h1> <h3>제목을 입력하세요:</h3> <form method="post"> 책 제목: <input type="text" name="title"><br> <input type="submit" value="검색"> </form> <% String title = request.getParameter("title");

25 데이터베이스 쿼리 화면 if (title != null) { %> <%
Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/book_db", "root", "1234"); Statement stmt = conn.createStatement(); String sqlStr = "SELECT * FROM book_table WHERE title LIKE "; sqlStr += "'%" + title +"%'"; sqlStr += "ORDER BY title ASC"; ResultSet rset = stmt.executeQuery(sqlStr); <hr> <form method="post" action="orderproc.jsp"> <table border=2> <tr> <th>주문</th> <th>저자</th> <th>제목</th> <th>가격</th> <th>수량</th> </tr>

26 데이터베이스 쿼리 화면 <% while (rset.next()) { int id = rset.getInt("id");
%> <tr> <td><input type="checkbox" name="id" value="<%= id %>"></td> <td><%= rset.getString("author") %></td> <td><%= rset.getString("title") %></td> <td><%= rset.getInt("price") %>원</td> <td><%= rset.getInt("qty") %>권</td> </tr> } </table>

27 데이터베이스 쿼리 화면 <br> <input type="submit" value="주문">
<input type="reset" value="초기화"> </form> <a href="<%= request.getRequestURI() %>"><h3>다시 주문하기</h3></a> <% rset.close(); stmt.close(); conn.close(); } %> </body> </html>

28 주문 처리 화면 <html> <head> <title>주문처리화면</title>
<body> <h2>주문해주셔서 감사합니다.</h2> <% String[] ids = request.getParameterValues("id"); if (ids != null) { %> page import = "java.sql.*" %> Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/book_db", "root", "1234"); Statement stmt = conn.createStatement(); String sqlStr; int recordUpdated; ResultSet rset;

29 주문 처리 화면 <table border=2> <tr> <th>저자</th>
<% for (int i = 0; i < ids.length; ++i) { sqlStr = "UPDATE book_table SET qty = qty - 1 WHERE id = " + ids[i]; recordUpdated = stmt.executeUpdate(sqlStr); sqlStr = "SELECT * FROM book_table WHERE id =" + ids[i]; rset = stmt.executeQuery(sqlStr); while (rset.next()) { %> <td><%= rset.getString("author") %></td> <td><%= rset.getString("title") %></td> <td><%= rset.getInt("price") %>원</td> <td><%= rset.getInt("qty") %></td> <% }

30 주문 처리 화면 rset.close(); } stmt.close(); conn.close(); %>
</table> <a href="order.jsp"><h3>주문화면으로 돌아가기</h3></a> </body> </html>

31 실행 화면

32 Q & A


Download ppt "CHAPTER 15. JSP."

Similar presentations


Ads by Google