CHAPTER 15. JSP.

Slides:



Advertisements
Similar presentations
2008 년 11 월 20 일 실습.  실험제목 ◦ 데이터베이스 커넥션 풀  목표 ◦ 데이터베이스 커넥션 풀의 사용.
Advertisements

XHTML Basic 제 13 장 1. XHTML Basic의 개요 2. XHTML Basic 기본 문법 3. 표 만들기
웹 프로그래밍 HTML, 자바스크립트, ASP를 중심으로
DB 프로그래밍 학기.
DB 프로그래밍 학기.
Ⅰ. 클라이언트 스크립트 Ⅱ. 서버 스크립트 그렇다면 프로그래밍 언어를 수행하는 컴퓨터의 개념적인 구조를 살펴 본다면, 프로그래밍 언어가 무엇인지 이해하는데 도움이 될 것입니다. 현재 컴퓨터 구조의 모태가 되고 있는 폰 노이만 구조는 그림에서 보는 것과 같이, 명령어와.
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
제 10 장 JDBC 프로그래밍 학기 인터넷비즈니스과 강 환수 교수.
소프트웨어시스템설계(6주) 데이터베이스 연동
12장. JSP에서 자바빈 활용 제12장.
7. JavaBeans 프로그래밍 JavaBeans JavaBeans 만들기 빈을 이용한 회원가입 양식 작성하기 빈 작성
11장 방명록 한빛미디어(주).
JSP BBS (Bulletin Board System)
2. JSP의 환경설정 제 2장 JSP의 환경설정 웹 애플리케이션과 디렉토리 구성 JDK 설치하기 JSP Container
JSP Programming with a Workbook
2 서블릿의 기초.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
JDBC 프로그래밍 이수지 이동주 1.
9장. 요청 흐름제어와 모듈화 #1: <jsp:forward> 액션태그 사용
10장. 에러 처리 제10장.
PHP입문 Izayoi 김조흔.
Web Server와 DB 연동.
웹 서버 동작 HTTP 클라이언트가 서버와 대화하는 방법과 데이터를 서버에서 클라이언트로 전송 하는 방법을 정의한 프로토콜
13 설계 모델과 웹 템플릿.
14장 질의응답 한빛미디어(주).
6장. JSP 지시문 (Directives) 제6장.
JSP Programming with a Workbook
중 간 고 사 (웹프로그래밍)
PHP 웹 프로그래밍 (PHP Web Programming) PHP 개요 문양세 강원대학교 IT대학 컴퓨터과학전공.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
1.4 프로그래밍을 위한 환경 설정.
4-1장. MySQL 제13장.
5. JSP의 내장객체1.
16장 설문조사 한빛미디어(주).
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
4. JSP의 스크립트 요소 Script 요소의 이해 선언문(Declaration) Scirptlet 표현식 주석
8 데이터베이스 사용하기.
12 데이터베이스 사용하기.
KHS JDBC Programming 4 KHS
CHAPTER 13. HTML5 위치정보와 드래그앤 드롭.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
제 01 장 인터넷 프로그래밍 개요 학기 인터넷비즈니스과 강 환수 교수.
DB연동하기 원격db접속.
26강. 포워딩(Forwarding) RequestDispatcher 클래스 HttpServletResponse 클래스
2장 JSP 개발 환경 설정 이장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 어플리케이션 개발을 위해 반드시 이해하여야 할 웹 어플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
Cookie 와 Session.
웹 어플리케이션 보안 2016년 2학기 3. Mongo db.
JDBC (Java Database Connectivity)
3강. JSP 맛보기 JSP 문서 작성 하기 JSP 아키텍처 Lecturer Kim Myoung-Ho Nickname 블스
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
HTML.
게임웹사이트운영 [10] 폼 작성.
3. JSP의 기본예제.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
MVC 모델을 이용한 웹 애플리케이션 작성 웹 애플리케이션 개발 순서를 알아본다 웹 애플리케이션의 실행 순서를 이해한다.
PHP 개요 및 설치 Yang-Sae Moon Department of Computer Science
Data Base Web Programming
Ⅰ. ASP개체 모델 Ⅱ. Request 개체 그렇다면 프로그래밍 언어를 수행하는 컴퓨터의 개념적인 구조를 살펴 본다면, 프로그래밍 언어가 무엇인지 이해하는데 도움이 될 것입니다. 현재 컴퓨터 구조의 모태가 되고 있는 폰 노이만 구조는 그림에서 보는 것과 같이, 명령어와.
웹디자인
웹(WWW).
Introduction to JSP & Servlet
암호학 응용 Applied cryptography
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
JSP Programming with a Workbook
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
Data Base Web Programming
JAVA 프로그래밍 16장 JNLP.
1. 실습 시간에 수행한 avd 생성 및 실행, adb shell 접속 및 명령어 수행 결과를 제출한다.
Presentation transcript:

CHAPTER 15. JSP

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

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

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

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

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

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

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

JSP 수식

스크립틀릿

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

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

스크립틀릿 #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>

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

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

JSP 선언

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

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

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

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>

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>

MySQL 공개 데이터베이스 서버

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

데이터베이스 쿼리 화면 <%@ 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");

데이터베이스 쿼리 화면 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>

데이터베이스 쿼리 화면 <% 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>

데이터베이스 쿼리 화면 <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>

주문 처리 화면 <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;

주문 처리 화면 <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> <% }

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

실행 화면

Q & A