<4D F736F F D20C0DAB9D9C0A5BDBAC5B8C6AE2E646F63>

Similar documents
14-Servlet

JavaGeneralProgramming.PDF

2장 변수와 프로시저 작성하기

Tomcat 4.x 웹서버에 J2SE 를설치를확인합니다. java -version java version "1.4.2_05" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04) Java HotSp

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

목차 JEUS JNLP Client Sample 가이드 JNLP 란 JNLP의이점 TEST TEST 환경 TEST Sample sample application 셋팅 (ser

04장

서블릿의라이프사이클 뇌를자극하는 JSP & Servlet

02 C h a p t e r Java

Interstage5 SOAP서비스 설정 가이드

Windows 8에서 BioStar 1 설치하기

Spring Boot

Tomcat.hwp

rmi_박준용_final.PDF

MasoJava4_Dongbin.PDF

BEA_WebLogic.hwp

뇌를 자극하는 JSP & Servlet 슬라이드

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\)

B.3 JDBC 설치 JDBC Java DataBase Connectivity 는자바에서 DBMS의종류에상관없이일관된방법으로 SQL을수행할수있도록해주는자바 API Application Program Interface 다. 이책에서는톰캣과 SQL Server 간의연결을위

J2EE Concepts

Data Provisioning Services for mobile clients

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

Dialog Box 실행파일을 Web에 포함시키는 방법

본 강의에 들어가기 전

Microsoft Word - src.doc

Microsoft PowerPoint - Java7.pptx

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

PowerPoint 프레젠테이션

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

Java ...

PowerPoint 프레젠테이션

SBR-100S User Manual

PowerPoint 프레젠테이션

12-file.key

슬라이드 1

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E >

Windows Server 2012

Network Programming

J2EE & Web Services iSeminar

Chap12

Install stm32cubemx and st-link utility

RHEV 2.2 인증서 만료 확인 및 갱신

정적으로 설치된 mod_ssl 모듈확인 동적으로 설치된 mod_ssl 모듈확인 웹서버에 설치된 모듈중 mod_so.c 를 먼저 확인후 동적으로 설치된 모듈중 mod_ssl.so 를 확인합니다. 동적으로 설치된 경우 apache 설치 디렉토리의 module 이나 libe

뇌를 자극하는 JSP & Servlet 슬라이드

ISP and CodeVisionAVR C Compiler.hwp

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft Word - Armjtag_문서1.doc

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

PowerPoint 프레젠테이션

chapter1,2.doc

PowerPoint 프레젠테이션

Microsoft PowerPoint - 04-UDP Programming.ppt

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

자바-11장N'1-502

Web Scraper in 30 Minutes 강철

Spring Boot/JDBC JdbcTemplate/CRUD 예제

어댑터뷰

No Slide Title

05-class.key

PowerPoint Presentation

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

슬라이드 1

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

에접속하여상단메뉴에서 [DOWNLOADS] 를클릭한다. 다운로드페이지에서 Java 카테고리에있는 [Java SE] 를클릭하고페이지가바뀌면 [Java Platform (JDK)] 를클릭한다. JDK 버전은다운로드하는시점에따라다를수

Secure Programming Lecture1 : Introduction

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

뇌를 자극하는 JSP & Servlet 슬라이드

제8장 자바 GUI 프로그래밍 II

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라.

mytalk

뇌를 자극하는 JSP & Servlet 슬라이드

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Java

Cluster management software

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

CODESYS 런타임 설치과정

Microsoft PowerPoint - chap01-C언어개요.pptx

PowerPoint 프레젠테이션

Intro to Servlet, EJB, JSP, WS

자바GUI실전프로그래밍2_장대원.PDF

NTD36HD Manual

Mango-E-Toi Board Developer Manual

JAVA 플랫폼 개발 환경 구축 및 활용

웹 개발자를 위한 서블릿/JSP

PowerPoint Presentation

Data Provisioning Services for mobile clients

Microsoft PowerPoint - aj-lecture7.ppt [호환 모드]

비긴쿡-자바 00앞부속

Transcription:

작성자 : 김성박 ( 삼성멀티캠퍼스전임강사 ) e-mail : urstory@nownuri.net homepage : http:// 본문서의배포처 : http://, http://www.javastudy.co.kr 작성일 : 2001년 10월 17일수요일. - 해당문서는김성박 (urstory@nownuri.net) 의동의없이수정, 복사, 삭제등을할수없으며, 다른사이트로김성박의동의없이배포할수없습니다. - 해당문서에서잘못된곳이나수정할곳을발견한분은 urstory@nownuri.net 으로메일보내주신다면감사하겠습니다. - 웹의동작방식에대하여잘알고있어야합니다. 해당문서는 Jakarta-Tomcat에서 Servlet 에대한내용을알아야이해할수있습니다. JAVA프로그램을작성해본분들이라면, JAVA프로그램을어떻게배포를해야할까? 하고많이망설였을것입니다. 배포의어려움때문에많은사람들이 applet 을많이이용합니다. 하지만 Applet 을이용하면보안상의문제로해결하기어려운일들을많이만나게됩니다. 그렇다고해서 Application으로작성한다면, 배포가어렵습니다. 많은컴퓨터사용자들이프로그램을다운로드받고설치하는것을어려워하기때문입니다. 하지만 JAVA WEB START를이용한다면, 이런불편한점은자동으로해결됩니다. 경매, email발송, 주식, 관리프로그램등에대한프로그램을웹상에서클릭한번으로자동으로설치하고실행할수있도록해주는것이 JAVA WEB START가해주는일입니다. 아래는 SUN 에서말하는 JAVA WEB START 의장점입니다. * 워드프로세서및스프레드시트와같은기존응용프로그램과호환되는대화형사용자인터페이스를사용합니다. * 대역폭요구수준이낮습니다. 클릭할때마다응용프로그램이반드시웹서버에연결될필요가없으며이미다운로드한정보를캐시할수있습니다. 따라서연결이느려도더나은대화형기능을제공할수있습니다. 1

* 오프라인사용을지원합니다. 즉, 쉽게에플리케이션을설치, 실행할수있다는것입니다. 다만, 단점이있다면 JAVA WEB START를사용하기위하여는 JAVA WEB START 응용프로그램을한번은설치해야한다는것입니다. 하지만, 이렇게한번설치하고나서부터는손쉽게자바응용프로그램을이용할수있습니다. 하지만, 사용자는웹상에서프로그램의목록을이미본상태이므로, 초기비용만약간감수한다면, 그다음부터는손쉽게프로그램을이용할수있습니다. 그이유는한번다운로드한프로그램은로컬상에서계속사용할수있기때문입니다. JAVA WEB START 에대한더욱자세한내용은아래에서볼수있습니다. http://java.sun.com/products/javawebstart/ JAVA WEB START 를이용한데모는아래의사이트에서볼수있습니다. http://java.sun.com/products/javawebstart/demos.html JAVA WEB START 응용프로그램은아래에서다운로드받습니다. http://java.sun.com/products/javawebstart/download-windows.html 먼저 JAVA WEB START 데모를이용하기위하여는다운로드페이지에서 JAVA WEB START를다운로드받아서설치하시기바랍니다. 설치프로그램은실행한후에 next만계속누르면될정도로쉽습니다. 설치가끝났다면데모사이트 ( 그림 1) 에서노트패드프로그램을실행합니다. 2

그림 1 노트패드를실행하면그림2) 와같이 class 를다운로드받는창이뜹니다. 문제가없다면그림 3) 과같이노트패드가실행되는것을알수있습니다. 그림 2 3

그림 3 데모를종료한후에는윈도우시작 프로그램 JAVA WEB START 폴더에있는 JAVA WEB START를실행하면그림 4) 와같이로고가나온후그림5) 와같이지금까지실행한프로그램목록이있는것을알수있습니다. 해당프로그램들은 offline 상에서도실행할수있습니다. 4

그림 4 그림 5 5

JAVA WEB START를이용하면프로그램의설치와실행이무척쉽다는것을알수있을것입니다. 이번에는실제로배포하기위하여어떻게하여야할것인지순서대로실행해보도록하겠습니다. JAVA WEB START 를이용한프로그램의배포 1. JAVA WEB START를이용하여프로그램을배포하기위하여는웹서버가필요합니다. 필자는 Jakarta-tomcat 을이용하였습니다. 지금부터따라할예제들의소스는다음과같은디렉토리에존재합니다. c: jtomcat webapps test 디렉토리에는 HelloWorld.jar, HelloWorld.java, helloworld.html 이위치합니다. c: jtomcat webapps test WEB-INF classes 디렉토리에는 HelloWorld.class ( 서블릿 ) 이존재합니다. 2. JAVA WEB START를이용하여배포할프로그램을작성합니다. 여기에서는간단하게프레임만출력하는프로그램인 HelloWorld.java 를작성하였습니다. HelloWorld.java 시작 ------------------------------------------------ import java.awt.*; public class HelloWorld extends Frame{ public HelloWorld(String s){ super(s); } public static void main(string args[]){ HelloWorld hw = new HelloWorld("hello world"); hw.setsize(500,500); hw.setvisible(true); } } HelloWorld.java 끝 -------------------------------------------------- 3. HelloWorld 프로그램을컴파일한후아래와같이 jar 프로그램을이용하여압축합 6

니다. jar cvf HelloWorld.jar HelloWorld.class 4. JAVA WEB START에위하여프로그램을배포하기위하여는 mime 형식이 application/x-java-jnlp-file 인 jnlp 라고불리우는 xml 파일을작성해야합니다. nlp 의예는예제 HelloWorld.jnlp 와같습니다. HelloWorld.jnlp 시작 ------------------------------------------------ <?xml version="1.0" encoding="utf-8"?> <jnlp spec="0.2 1.0" codebase="http://70.12.108.93:8080/test"> <information> <title>helloworld</title> <vendor>sun Microsystems, Inc.</vendor> <homepage href="./helloworld.html"/> <description>hello World Demo</description> <description kind="short">java Webstart demo</description> <icon href="images/code.gif"/> <offline-allowed/> </information> <resources> <j2se version="1.3+"/> <jar href="helloworld.jar" main="true" download="eager"/> </resources> <application-desc main-class="helloworld"/> </jnlp> HelloWorld.jnlp 끝 -------------------------------------------------- 각각의줄을보면 codebase는 HelloWorld.jar 파일이위치하고있는웹상의 URL을말합니다. information 은 HelloWorld class 에대한설명입니다. 중요한것은 resources 부분으로 j2se 의버젼과실제구동할 jar 파일과 main-class 를지정하여줍니다. 7

이렇게 jnlp 파일을작성해주어야합니다. 하지만, 웹상에서읽어들이는 jnlp 파일은 mime type 이 text/plain 입니다. 우리는해당 jnlp 파일의 mime 형식을 application/xjava-jnlp-file 로지정해야합니다. 5. jnlp 의 mime 형식을 application/x-java-jnlp-file 로지정하기위하여서블릿을작성합니다. text형식일경우 mime 형식을만족해주지못하기때문에 servlet 을이용하여강제적으로 mime type을지정해줍니다. ( 서블릿이아니라웹서버의설정으로처리할수도있습니다. ) HelloWorld.java 서블릿은 jnlp 파일을서블릿으로출력하는예제입니다. 위에서프레임을출력하는 HelloWorld.java 와이름만같습니다. HelloWorld.java 시작 ------------------------------------------------- import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; /** * jnlp file support * * @author kim songpark */ public class HelloWorld extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("application/x-java-jnlp-file"); ServletOutputStream out = res.getoutputstream(); out.println("<?xml version= "1.0 " encoding= "utf-8 "?>"); out.println("<jnlp spec= "0.2 1.0 " codebase= "http://70.12.108.93:8080/test ">"); out.println(" <information>"); 8

out.println(" <title>helloworld</title>"); out.println(" <vendor>sun Microsystems, Inc.</vendor>"); out.println(" <homepage href= "../helloworld.html "/>"); out.println(" <description>hello World Demo</description>"); out.println(" <description kind= "short ">Java Webstart demo</description>"); out.println(" <icon href= "/images/code.gif "/>"); out.println(" <offline-allowed/>"); out.println(" </information>"); out.println(" <resources>"); out.println(" <j2se version= "1.3+ "/>"); out.println(" <jar href= "HelloWorld.jar " main= "true " download= "eager "/>"); out.println(" </resources>"); out.println(" <application-desc main-class= "HelloWorld "/>"); out.println("</jnlp>"); } } HelloWorld.java 끝 ---------------------------------------------------- 6. 이렇게서블릿까지작성하였다면배포를하는 html 문서를만듭니다. 이때배포문서에는 JAVA WEB START 프로그램의다운로드등과함께멋지게디자인하면좋겠지요. 아래는배포하는 helloworld.html 입니다. helloworld.html 시작 ------------------------------------------------- 이예제는 Hello World 를출력하는에플리케이션에대한 java webstart의예제입니다.<br><br> <a href=/test/servlet/helloworld> 헬로우월드실행 </a> helloworld.html 끝 ---------------------------------------------------- 7. 6번까지실행하였다면모든준비는끝난것입니다. 실제브라우져로그림6) 과같이 helloworld.html을 open합니다. 헬로우월드실행 이라는링크 ( 서블릿 ) 을클릭하면 JAVA WEB START 로고가나온후에썰렁하지만프레임만있는윈도우가실행될것입니다. 여기까지가 JAVA WEB START의간단한이용방법입니다. 프레임에 9

는아무런이벤트를지정하지않았기때문에종료가되지않습니다. 강제종료하십시요. 그림 6 10

그림 7 JAVA WEB START 와보안 JAVA WEB START를이용하면서 Application이어떤보안제약없이사용하기위하여는 jar 파일에인증을하는방법을알고있어야합니다. 보안제약없이사용하는방법에대하여순서대로알아보도록합시다. 1. 먼저 jnlp 파일에는아래의내용을추가합니다. <security> <all-permissions/> </security> 위의내용이추가된 HelloWorld.java ( 서블릿 ) 은아래와같습니다. HelloWorld.java 시작 ----------------------------------------------- import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; 11

import javax.servlet.http.*; /** * jnlp file support * * @author kim songpark */ public class HelloWorld extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("application/x-java-jnlp-file"); ServletOutputStream out = res.getoutputstream(); out.println("<?xml version= "1.0 " encoding= "utf-8 "?>"); out.println("<jnlp spec= "0.2 1.0 " codebase= "http://70.12.108.93:8080/test ">"); out.println(" <information>"); out.println(" <title>helloworld</title>"); out.println(" <vendor>sun Microsystems, Inc.</vendor>"); out.println(" <homepage href= "../helloworld.html "/>"); out.println(" <description>hello World Demo</description>"); out.println(" <description kind= "short ">Java Webstart demo</description>"); out.println(" <icon href= "/images/code.gif "/>"); out.println(" <offline-allowed/>"); out.println(" </information>"); out.println(" <security> ); out.println(" <all-permissions/> ); out.println(" </security> ); out.println(" <resources>"); out.println(" <j2se version= "1.3+ "/>"); out.println(" <jar href= "HelloWorld.jar " main= "true " download= "eager "/>"); out.println(" </resources>"); out.println(" <application-desc main-class= "HelloWorld "/>"); 12

out.println("</jnlp>"); } } HelloWorld.java 끝 ------------------------------------------------- 2. jar 파일을인증합니다. 2-1) key 를생성합니다. 도스창을열고 jar파일이있는디렉토리에서아래와같이실행하십시요. 질문이나오면차분히여러분의정보를작성하여주시기바랍니다. keytool -genkey -keyalg rsa -alias tstkey Enter keystore password: ******* // 암호를 6자이상적습니다. What is your first and last name? [Unknown]: Your Name What is the name of your organizational unit? [Unknown]: YourUnit What is the name of your organization? [Unknown]: YourOrg What is the name of your City or Locality? [Unknown]: YourCity What is the name of your State or Province? [Unknown]: YS What is the two-letter country code for this unit? [Unknown]: KR Is CN=Your Name, OU=YourUnit, O=YourOrg, L=YourCity, ST=YS, C=US correct? [no]: yes Enter key password for tstkey (RETURN if same as keystore password): (press [enter]) 2-2) export key를생성합니다. key 이름은 tstcert.crt 입니다. 암호를물어보면아까작성한암호를입력합니다. keytool -export -alias tstkey -file tstcert.crt 13

Enter keystore password: ******* Certificate stored in file tstcert.crt 2-3) jar 파일에 sign 합니다. 도스창에서아래와같이입력합니다. jarsigner HelloWorld.jar tstkey 2-4) jar 파일을 verify 합니다. 도스창에서아래와같이입력합니다. jarsigner -verify -verbose -certs HelloWorld.jar 2-5) 이렇게인증된 jar 파일을 JAVA WEB START로실행하면그림 8) 과같이인증확인창이뜹니다. 인증창이뜨면 YES 를선택한후계속하여프로그램을사용합니다. 그림 8 14

JAVA WEB START 프로그램에서이미지사용하기 JAVA WEB START에서이미지를사용하기위하여는아래와같이 ClassLoader를이용하여작업을해야합니다. ClassLoader cl = this.getclass().getclassloader(); Icon cuticon = new ImageIcon(cl.getResource("yourimage.gif")); 글을마치며. 이렇게 JAVA WEB START에대하여알아보았습니다. 여러분이만들어놓은 Application을쉽게배포할수있다는것이즐겁지않습니까? 글을읽고도움이되었다면 http:// 자유게시판에글하나남겨주는것도좋을것같지요? 좋은하루되십시요. 김성박. 15