ATL/COM 강좌

COM(Component Object Model)은 컴포넌터 기반의 분산 컴퓨팅 기술이고, ATL(Active Template Library)은 그 COM 프로그래밍을 쉽게 하기 위해 Visual C++에서 제공하는 라이브러리이다. 소개에서는 COM의 개념 및 구조를 개괄적으로 설명하고, Client 프로그램 제작 및 Server 프로그램 제작에서 ATL을 사용하지 않고 COM 프로그램을 작성하는 방법을 설명하는데 이 부분은 개념 위주로 보면 되고, 실제 프로그래밍에서는 나머지 부분(쉬운 Server 프로그램 제작, 쉬운 COM Client 프로그램 제작)을 이용하여 프로그램을 작성한다.

기본 강좌

COM 소개

Client 프로그램 제작

Server 프로그램 제작(EXE)

Server 프로그램 제작(DLL)

쉬운Server 프로그램 제작(DLL)

쉬운COM Client 프로그램 제작

'Computer Science' 카테고리의 다른 글

마샬링(Marshaling)이란?  (0) 2009.04.24
박성규씨의 ATL강좌  (0) 2009.04.24
Hello, World! Web App  (0) 2009.04.23
tomcat 세팅 및 가상 디렉토리 설정 하기  (0) 2009.04.23
ubuntu에서 tomcat설치/apache2에 연동  (0) 2009.04.23

Hello, World! Web App

Ten Quick Steps for Deploying a Super Simple JSP Web App (WAR) on JBoss AppServer


Updated for JBoss 5.0.0 on Java 1.6.0

Tutorial

Follow these steps to install JBoss and then create and test a simple web application (WAR). The steps are designed for Windows XP, but you should be able to modify them for other OSes without too much effort.

1) Install Java

Obtain Java by clicking the ">> Download" button for Java SE Development Kit (JDK) 6 Update 11 at:
http://java.sun.com/javase/downloads/
Run the installer with the default options, which will install Java into "C:\Program Files\Java\jdk1.6.0_11\".
Note: Application servers, like JBoss, require the full JDK (Java Development Kit), which contains the JRE (Java Run-Time Engine) plus a bunch of stuff for developers, such as the "javac" compiler.

2) Install JBoss Application Server

Go to the JBoss download page at:
http://www.jboss.org/jbossas/downloads
Locate version 5.0.0.GA, and follow the "Download" link to get the "jboss-5.0.0.GA.zip" file. Unzip the file into "C:\Apps\JBoss\".

3) Create Work Folder

Create a folder called "HelloWorld" separate from your JBoss installation. For example, the full path of your work folder could be "C:\Projects\HelloWorld".

4) Create Startup Script

In the "HelloWorld" folder create a file named "JBoss.bat" with the following content:
JBoss.bat
@echo off
set JAVA_HOME=\Program Files\Java\jdk1.6.0_11
set JBossHome=\Apps\JBoss\jboss-5.0.0.GA
set Path=%JAVA_HOME%\bin;%Path%
cd "%JBossHome%\bin"
run.bat

This script will launch JBoss.

5) Launch JBoss

Run the "JBoss.bat" file you just created.

6) Write JSP File

Also in the "HelloWorld" folder, create a file named "hi.jsp" as:
hi.jsp
<html><head><title>JSP Test</title>
<%!
String msg = "Hello, World.";
%>
</head>
<body>
<h2><%= msg %></h2>
<%= new java.util.Date() %>
</body></html>

This JSP simply displays a greeting along with the current date and time.

7) Create Deployment Descriptor

In the "HelloWorld" folder, create a sub folder called "WEB-INF", and in that folder create a file named "web.xml" as:
web.xml
<web-app>
<display-name>Hello World</display-name>
</web-app>

The deployment descriptor provides information to JBoss about your web application.

8) Create WAR Builder & Deployer

In the "HelloWorld" folder, create a file called "Deploy.bat" as:
Deploy.bat
@echo off
set JAVA_HOME=\Program Files\Java\jdk1.6.0_11
set JBossHome=\Apps\JBoss\jboss-5.0.0.GA
"%JAVA_HOME%\bin\jar.exe" -cvf helloworld.war *.jsp WEB-INF
copy helloworld.war "%JBossHome%\server\default\deploy"
pause

This script uses Java's JAR utility to zip up the appropriate contents into a WAR file.

9) Do It

Run the "Deploy.bat" file.

10) Test Your Web Page

In a browser, open "http://localhost:8080/helloworld/hi.jsp" to see your web application run.

Now explore the JBoss console at "http://localhost:8080". Click on "JBoss Web Console" and expand "J2EE Domains", "jboss.management.local", and "JBoss". Select "helloworld.war" to see information about your web application.

That's It

For your convenience, here's the completed Hello World! Web Application:
HelloWorldWebApp.zip (screen shot)

If you're ready to take the next step to servlets and EJBs, try these tutorials:
Laliluna EJB Tutorial Eclipse EJB Application JBoss EJB Tutorial
If you know of any better EJB tutorials, please send in your suggestions.

'Computer Science' 카테고리의 다른 글

박성규씨의 ATL강좌  (0) 2009.04.24
ATL/COM 강좌  (0) 2009.04.24
tomcat 세팅 및 가상 디렉토리 설정 하기  (0) 2009.04.23
ubuntu에서 tomcat설치/apache2에 연동  (0) 2009.04.23
[FTP] Active Mode 와 Passive Mode  (0) 2009.04.23

tomcat 세팅 및 가상 디렉토리 설정 하기

- 환경 변수

CLASSPATH에 아래 내용 추가

C:\apache-tomcat-5.5.25\common\lib\servlet-api.jar

-> 서블릿 컴파일 시 javax를 따로 패스를 잡지 않아도 됨.

CATALINA_HOME

C:\apache-tomcat-5.5.25

JRE_HOME

C:\Program Files\Java\jre1.6.0_04

- 디렉토리 생성 및 WEB-INF 내용을 추가

1. 서버 구축할 디렉토리 생성

2. 디렉토리 안에 WEB-INF 폴더 생성

3. WEB-INF 안에 classes 폴더와 lib폴더생성 및 web.xml 생성

※ 톰캣 폴더 안에 -> webapps -> ROOT ->WEB-INF -> web.xml파일을 복사 한다. -> 주석 제거 및 jsp들어간 내용 제거

- web.xml 내용

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
</web-app>

- server.xml에수정 사항

<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="euc-kr" />

-> Get 방식의 한글 깨짐을 해결 하기 위해서

- C:\apache-tomcat-5.5.25\conf\Catalina\localhost 폴더 안에 'ajaxtest.xml' 파일을 생성하여 아래 내용 입력

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/ajaxtest" docBase="c:\ajaxtest\" debug="0" reloadable="true" crossContext="true">
</Context>

-> 생성한 디렉토리 경로 설정 및 URL 경로 설정

※ tomcat4.0 은 server.xml에 추가 사항 이였지만 tomcat 5.0 이상 권고사항(관리 모드가 생겨나면서..)

oracle 10g

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/board_jsp" docBase="E:\tt_work\board_jsp" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/oracle"
auth="Container"
type="javax.sql.DataSource"
username="board"
password="board"
driverClassName="oracle.jdbc.driver.OracleDriver"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
url="jdbc:oracle:thin:@192.168.225.4:1521:orcl"
maxActive="500"
maxIdle="100"/>
</Context>

oralce 9i

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/board_jsp" docBase="E:\tt_work\board_jsp" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/Oracle9i"
auth="Container"
type="javax.sql.DataSource"
username="shop"
password="shop"
driverClassName="oracle.jdbc.driver.OracleDriver"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
url="jdbc:oracle:thin:@127.0.0.1:1521:ORA92"
maxActive="500"
maxIdle="100"/>
</Context>



ubuntu에서 tomcat설치/apache2에 연동

http://cafe.naver.com/czar/39

* /etc/bash.bashrc의 마지막에 다음 두 줄 추가. (Java가 /usr/java에 미리 설치된 것으로 가정한다.)
인용:


export JAVA_HOME=/usr/java
export TOMCAT_HOME=/usr/tomcat

* tomcat을 다운 받아 압축을 푼후, 다음과 같이 설치한다. (경우에 따라 버전이 다른 tomcat을 설치하는 경우가 있어, 이 방법을 선호한다.)
인용:


sudo mv jakarta-tomcat-5.5.9 /usr/local/tomcat/
sudo chown -R root:root /usr/local/tomcat/jakarta-tomcat-5.5.9/
sudo ln -s /usr/local/tomcat/jakarta-tomcat-5.5.9 /usr/tomcat

* tomcat의 8080 port를 다른 port로 변경해야 할 때는 /usr/tomcat/conf/server.xml 을 변경을 한다. (mono-xsp가 8080을 쓰고 있기에 tomcat을 9090으로 변경하였다.)

* 다음과 같이 tomcat 설치가 제대로 되었는지 확인해 본다.
인용:


sudo /usr/tomcat/bin/startup.sh
브라우저에서, http://localhost:9090

* 설치한 tomcat을 apache2와 연동하기 위해 jk2를 설치한다. (배포판에서 기본 제공하는 것을 설치하였다.)
인용:


sudo apt-get install libapache2-mod-jk2

* 다음의 파일들을 아래의 예처럼 각자의 경우에 맞게 적절히 수정한다.
인용:

/etc/apache2/mods-available/jk2.conf
JkSet config.file /usr/tomcat/conf/myWorkers2.properties

인용:

/usr/tomcat/conf/myWorkers2.properties
[logger]
level=DEBUG

[config:]
file=${serverRoot}/conf/myWorkers2.properties
debug=0
debugEnv=0

[uriMap:]
info=Maps the requests. Options: debug
debug=0

# Alternate file logger
#[logger.file:0]
#level=DEBUG
#file=${serverRoot}/logs/jk2.log

[shm:]
info=Scoreboard. Required for reconfiguration and status with multiprocess servers
file=${serverRoot}/logs/jk2.shm
size=1000000
debug=0
disabled=0

[workerEnv:]
info=Global server options
timing=1
debug=0
# Default Native Logger (apache2 or win32 )
# can be overriden to a file logger, useful
# when tracing win32 related issues
#logger=logger.file:0

[lb:lb]
info=Default load balancer.
debug=0

[channel.socket:localhost:8009]
info=Ajp13 forwarding over socket
debug=0
tomcatId=localhost:8009

[status:]
info=Status worker, displays runtime informations

[uri:/jkstatus/*]
info=Display status information and checks the config file for changes.
group=status:

[uri:/admin/*]
info=Tomcat HTML based administration web application.
debug=0

[uri:/manager/*]
info=A scriptable management web application for the Tomcat Web Server.
debug=0

[uri:/jsp-examples/*]
info=JSP 2.0 Examples.
debug=0

[uri:/servlets-examples/*]
info=Servlet 2.4 Examples.
debug=0

[uri:/*.jsp]
info=JSP Extension mapping.
debug=0

* jk2가 제대로 동작하는지를 확인하기 위해, apache를 재 시작하고, 브라우저에서 jkstatus를 본다.
인용:


sudo /etc/init.d/apache2 restart
http://localhost/jkstatus

* http://localhost/jsp-examples 하면, tomcat에서 제공하는 jsp 예제를 볼 수 있다 (왜냐면, uri를 myWorkers2.properties에 그렇게 정의했기 때문이다.)

mod_jk2 Deprecated


True!!!

jk-1.2를 사용해서 연동을 하려면,

1. 우선은 sudo apt-get remove libapache2-mod-jk2 해서 설치된 jk2를 삭제합니다.

2. http://www.apache.org/dist/jakarta/tomcat-connectors/jk/binaries/linux/ 에서 최신의 jk-1.2 버전을 다운 받습니다.

3. sudo cp jakarta-tomcat-connectors-jk-1.2.10-linux-sles9-i386-prefork.so /usr/lib/apache2/modules/mod_jk.so

4. /etc/apache2/mods-available/mod_jk.conf
인용:


# Load mod_jk module
# Specify the filename of the mod_jk lib
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so

# Where to find workers.properties
JkWorkersFile /usr/tomcat/conf/myWorkers.properties

# Where to put jk logs
JkLogFile /usr/tomcat/logs/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info

# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

# JkOptions indicates to send SSK KEY SIZE
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat
JkRequestLogFormat "%w %V %T"

# Mount your applications
#JkMount /application/* loadbalancer

# You can use external file for mount points.
# It will be checked for updates each 60 seconds.
# The format of the file is: /url=worker
# /examples/*=loadbalancer
jkMountFile /usr/tomcat/conf/myUriWorkerMap.properties

# Add shared memory.
# This directive is present with 1.2.10 and
# later versions of mod_jk, and is needed for
# for load balancing to work properly
JkShmFile /usr/tomcat/logs/jk.shm

# Add jkstatus for managing runtime data
<Location /jkstatus>
JkMount status
Order deny,allow
Deny from all
Allow from 127.0.0.1
# Allow from 999.999.999.999, your IP if you want
</Location>

5. sudo ln -s /etc/apache2/mods-available/mod_jk.conf /etc/apache2/mods-enabled/mod_jk.conf

다음의 예는 loadbalancer worker와 status worker를 정의해서 전자는 example들을 보는데 사용하고, 후자는 jkstatus를 보는데 사용하는 것입니다.
6. /usr/tomcat/conf/myWorkers.properties
인용:


# Define list of workers that will be used
# for mapping requests
worker.list=loadbalancer,status

# (1) local_worker should be commented out
# to enable load-balancing. Otherwise, only fail-over is available.

# Define Node1
worker.node1.port=8009
worker.node1.host=your IP or apache2 URL
worker.node1.type=ajp13
worker.node1.lbfactor=1
#worker.node1.local_worker=1 (1)
worker.node1.cachesize=10

# Define Node2
worker.node2.port=8009
worker.node2.host= your IP or apache2 URL
worker.node2.type=ajp13
worker.node2.lbfactor=1
#worker.node2.local_worker=1 (1)
worker.node2.cachesize=10

# Load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=node1, node2
worker.loadbalancer.sticky_session=1
worker.loadbalancer.local_worker_only=1

# Status worker for managing load balancer
worker.status.type=status

7. /usr/tomcat/conf/myUriWorkerMap.properties
인용:


# uriworkermap.properties - IIS
#
# This file provides sample mappings for example ajp13w
# worker defined in workermap.properties.minimal
# The general sytax for this file is:
# [URL]=[Worker name]

/jkstatus*=status
/servlets-examples/*=loadbalancer
/jsp-examples/*=loadbalancer
# 내 어플을 정의하려면, 여기에...
#/myApp/*=loadbalancer

# Optionally filter out all .jpeg files inside that context
# For no mapping the url has to start with exclamation (!)

#!/servlets-examples/*.jpeg=loadbalancer

[FTP] Active Mode 와 Passive Mode

STUDY/ETC 2006/04/17 18:02

================================================================================
■ 사전 지식
================================================================================

FTP 는 두가지 모드가 있다.
전통적인 방식이 Active Mode, 좀 더 최근에 나타난 방식이 Passive Mode 이다.

인터넷 사용자들이 가장 흔하게 접하는 웹 브라우저들은 일반적으로 Passive Mode 로 설정되어 있는데 반하여,
알FTP 나 WS-FTP, CuteFTP 같은 FTP 클라이언트 프로그램들은 일반적으로 Active Mode 가 기본값으로 설정되어 있다.

Active Mode 에서는 서버가 어떤 출력을 내보낼 때 (이를테면, ls 나 dir 과 같은 명령어에 대한 결과 또는 파일전송시)
반드시 현재 내가 사용중인 컴퓨터와 별도로 추가적인 TCP/IP 연결을 맺어야 한다.
이 때, 사용하는 포트가 FTP-Data 포트인 20 번 포트이다. (참고로 FTP 포트는 21 번이다)
이는 기존에 연결된 FTP 를 끊지않고 Data Connection 을 필터링 하는 것이 불가능 하다 것을 뜻하므로
방화벽이 설치되어 있는 경우 Active Mode 는 상당히 곤란한 환경이 된다.

반면 Passive Mode 에서는 FTP-Data 20 번 포트 대신 1024 ~ 65,536 번 포트중 시스템에서 예약해 놓지 않은 포트를
할당하여 데이터를 주고 받을 수 있다.

Passive Mode 를 끄고 접속하라는 것은 해당 FTP 서버가 Passive Mode 를 지원하지 않고,
Active Mode 로만 운영된다는 뜻이며 이러한 서버는 Passive Mode 로 접속하는 것이 불가능하다.

================================================================================
■ Serv-U 를 이용하여 Passive Mode 를 지원하는 FTP 서버 구성
================================================================================

서버 관리자가 TCP/IP 필터링을 사용하여 포트를 직접 제어하며, 서버가 내부 아이피로 운영되는
(이를테면, IP공유기(라우터)를 통해 연결되어 있는 서버) 환경에서 Serv-U FTP 프로그램을 사용하여
FTP 서버를 구성할 때, 아래와 같은 방법으로 Passive Mode 를 지원하는 FTP 서버를 구성할 수 있다.

먼저 어떤 포트로 접속할 것인지 또, 어떤 포트를 Passive Mode 데이터 전송 포트로 사용할 것인지 결정해야 한다.

예제에서는 50020, 50021 번을 사용하기로 결정한다.
(IP공유기에 50020, 50021 번 포트가 열려져 있음을 전제로 한다)

50020 - Passive Mode Data Transfer
50021 - FTP Connection

1. Windows TCP/IP 필터링에서 50020, 50021 포트를 열어둔다.
(TCP/IP 필터링을 사용하지 않는 시스템에서는 이 과정으로 건너뛰어도 무방하다)

2. Serv-U FTP 서버를 설치한다. (version 6.1.0.1 기준)

3. Serv-U Administrator 에서 만들어진 도메인을 확인할 수 있다.

4. 도메인-Settings-Advanced 로 들어가서
Allow passive mode data transfers, use IP 란에 실제 IP 주소를 넣어준다.
- 192.168.xxx.xxx (내부 아이피) 가 아닌 234.56.78.9 와 같은 실제 IP 주소

5. LocalServer-Settings-Advanced 로 들어가서
PASV port range 란에 50020 - 50020 을 입력한다.
- 위에서 50020 포트를 Passive Mode Data Transfer 포트로 사용하기로 했으므로...

이제, 다른 컴퓨터에서 접속해 본다.

알FTP 4.1 버전 기준으로 접속 테스트를 해보면...

1. 접속하기 아이콘 클릭

2. FTP 주소 : 234.56.78.9
사용자ID : UserID
비밀번호 : UserPW
포트번호 : 50021
Passive Mode Check !

3. 확인을 누른다.

원래 Passive Mode 에서의 데이터 전송은 1024 ~ 65,536 번 포트 중, 비어 있는 포트를 랜덤으로 할당하여
사용하지만, Serv-U FTP 설정 [5] 번 과정에서 우리는 강제로 50020 번 포트를 사용하도록 설정하였기 때문에
FTP 서버는 50020 포트를 사용하게 된다.

만약, 서버 관리자가 TCP/IP 필터링 관리를 따로 해주지 않는 환경에서의 FTP 구성이라면, [5] 번 과정이
필요없게 된다. 모든 포트가 허용으로 되어 있을 것이고, FTP 서버가 랜덤으로 비어있는 포트를 찾아 할당하게
될테니까...

<홈페이지를 만들때 알아두면 유용한 무료사이트 정보>개인이 홈페이지를 만들어볼까하고 시작을 하게되면 제일먼저 막히는 부분이 홈페이지에 대한 디자인 구상입니다.또한 홈페이지가 있다고 해도 좀더 멋있고, 테크니컬한 기능을 넣고 싶거나 또 자기 홈페이지를 이용해서 수익을 얻고 싶을때도 있습니다.그리고 실제로 쇼핑몰을 운영하여 수입을 얻고자 할때도 있습니다.그 다음 중요한것이 홈페이지 홍보입니다.  아무리 잘 만들었다 하더라도 방문자가 없으면 무용지물이니까요.이 글은 홈페이지를 만들면서 꼭 한번은 도움을 받았던 곳을 모아봤습니다.  가. 그중 무료로 각종 소스나 팁을 제공해 주는 사이트  나. 검색엔진에 무료로 등록할 수 있는 사이트  다. 배너교환등을 통해서 무료광고를 할 수 있는 사이트  라. 자기 홈페이지를 이용해서 수익을 얻을 수 있는 사이트  마. 무료나 아주 적은 돈으로 쇼핑몰을 운영할 수 있는 사이트이 외에도 아주 많은 사이트들이 있습니다만 몇곳만 적어 보겠습니다.아래의 각 사이트에 한번씩만 빠져도 여러분 홈페이지의 내용이 아주 풍부해질 것이며몇주에서 몇달 동안 컴퓨터앞에만 앉아있게 될지도 모릅니다.참고로 미리말씀드리면 이 글은 특정 사이트를 홍보하려는 것이 아니오니 오해없으시기 바랍니다.가. 각종 소스나 팁을 제공해 주는 사이트 모음   1 http://www.okjsp.pe.kr   - 추천     JSP와 관련한 가장 활발하게 활동중인 사이트 입니다.     2  http://www.kkaok.pe.kr  까오기 - 추천      JSP관련 정보와 까오기 보드, 무료 카운터등을 제공하는 사이트 입니다.   3  http://www.jspschool.com/        JSP 강좌, 자료를 제공해주는 사이트   4  http://www.jspmaster.com/       JSP관련 사이트   5  http://www.javaland.co.kr  자바랜드      자바와 웹서버관련 사이트   6  http://javateam.korea.ac.kr/javacan/ 자바캔      자바와 JSP관련 정보를 무료로 제공해주는 사이트      (유료에서 무료로 전환되었음)   7  http://www.tood.net 투덜이      MYSQL, PHP관련 강좌를 제공 하는 사이트   8  http://nzeo.com  - 추천       제로보드로 유명한 사이트죠!  꼭 한번 방문해 보세요.      막강한 기능을 가진 게시판 기능을 내 홈페이지에 쉽게 적용할 수 있습니다.   9  http://www.zzem.co.kr/ver3/ 비비샵  - 추천      제로보드와 연동한 무료 쇼핑몰 솔루션 제공사이트      쇼핑몰을 운영해 보고 싶으시면 한번 방문해 보십시요.   10 http://www.DynamicDrive.com   - 추천      Java Script의 소스를 제공해주는 외국 사이트입니다.      영문이지만 잘 보시면 카테코리별로 JavaScript코드를 잘 정리를 해 놓았으며 즉시 데모를 보실 수 있습니다.      내 홈페이지에 각종 테크니컬한 효과를 적용해 보세요.      자바스크립트 관련 사이트는 인터넷에서 쉽게 검색하실 수 있습니다만 요즘은 유료로 가는 사이트가 많더라구요.   11 http://www.phpschool.com   - 추천      이 곳은 PHP 개발자 사이트로서 PHP3, PHP4, Zend, 아파치, MySQL RDBMS를 이용한 WEB 과       DB 연동 강좌등이 있는 유용한 사이트 입니다.      PHP에 대해 공부하고 싶거나 관련 자료가 필요할 때 방문해 보세요.   12 http://www.cginjs.com       CGI와 JavaScript소스, 기타 유용한 정보들이 있는 사이트 입니다.      홈페이지를 꾸밀때도 몇가지 유용한 자료들도 있더군요.     13 http://www.yawoong.com/ 야웅닷컴      플래시를 다루는 사이트로 플래시 소스등을 다운받을 수 있습니다.     14 http://www.php.pe.kr/       PHP강좌 사이트, 기타 게시판등이 있습니다.     15 http://www.photoshopworks.com/       http://www.onlec.net/photo70/      포토샵을 공부할때 유용한 사이트입니다.      웹페이지상에서 직접 클릭하면서 데모를 볼수도 있습니다.나. 검색엔진에 홈페이지 무료등록할 수 있는 사이트    (자동등록할 수 있는 소프트웨어도 있으나 직접등록 하는것이 확실함)    1  http://www.daum.net 다음    2  http://www.naver.com 네이버    3  http://yahoo.co.kr 야후     4  http://www.hanmir.com 한미르    5  http://www.nate.com 네이트    6  http://simmani.chol.com 심마니    7  http://dreamwiz.com 드림위즈    8  http://www.chol.com 천리안    9  http://search.hanafos.com/  하나포스    10 http://www.empas.com 엠파스    11 http://www.freechal.com 프리첼     위의 1 ~ 11번은 대형포탈 사이트로 웬만해선 무료등록을 해주지 않으므로 머리를 좀 써야함    (저희 웹동산은 무료로 등록하는데에 성공하였습니다 ^^)    12 http://www.nenter.com/ 엔엔터    13 http://www.iwink.com/  아이윙크     14 http://www.crossmap.co.kr/  크로스맵    15 http://www.daos.co.kr/    다오스    16 http://gowww.net/  가자인터넷    17 http://www.sitetop.net/   사이트탑    18 http://www.iforu.com/  아이포유    19 http://www.zaao.com/  자오    20 http://www.findkr.com/   파인드코리아    21 http://www.zip.org/   ZIP!    22 http://www.eyeple.net/    23 http://www.i114.com/    24 http://www.danjjakad.com/      25 http://www.zo.bz  조비즈    26 http://nkplus.com     검색사이트에 등록은 필수입니다!    (웹동산 홈페이지 [컴퓨터 / 인터넷] 게시판을 참고하세요)다. 배너교환등을 통해서 무료광고를 할 수 있는 사이트    # 배너교환이란?      각자 홈페이지를 광고할 수 있는 배너를 하나씩 가지고 있습니다.       (없으시면 아래사이트에 요청하여 만드실 수도 있습니다.)      그래서 나의 배너를 상대방 홈페이지달고 상대방 배너를 내 홈페이지에 달아줌으로서      서로 광고를 해주는 방식을 말합니다.      아래는 그러한 배너교환을 중계해주는 사이트 입니다. 적극 활용해 보십시요    1. http://www.clickbanner.co.kr 무료배너교환  - 추천    2. http://www.keysite.co.kr 홈페이지 및 배너등록    3. http://gotocom.net/ 홈페이지 무료등록 및 무료배너교환 - 추천    4. http://theyou.co.kr  클릭률에 따라서 포인트점수를 주고 그 점수만큼 내 배너를 무료 광고해줌라. 자기 홈페이지를 이용해서 수익을 얻을 수 있는 사이트    # 타사의 배너 또는 컨텐츠를 내 홈페이지에 설치한후 나의 홈페이지 방문자가 접속하여       매출이 발생하면 그 매출에 일정율을 수수료로 지급받는 방식임.    1. http://www.ilikeclick.com (아이라이크클릭)    2. http://www.goodmatch.co.kr (굿매치)    3. http://www.adkey.co.kr (애드키)    단점은 수수료폭이 작고, 실제 접속자가 많은 사이트에서 유리함.    하지만 내 홈페이지를 꾸미는데에 유용하게 이용할 수 있습니다.        마. 무료나 아주 적은 돈으로 쇼핑몰을 운영할 수 있는 사이트    # 인터넷상에서 쇼핑몰을 운영한다는 것은 시내에서 실제로 점포를 운영하는 거와 같습니다.      사업자 등록 및 통신판매업 신고를 해야하고 물건 띠어와서 사진찍어서 올려야 하고 물품 배송/반송관리도 해야되고....      즉, 매우 바쁘고 온종일 쇼핑몰에 매달려야 합니다. 그리고 재고 부담을 안게 되구요.          # 그러나 아래에 소개하는 곳은 수백만원짜리 쇼핑몰 프로그램부터 상품, 주문/배송/반품 관리까지 모든것을       제공해주는 사이트 입니다.  즉, 나는 그 쇼핑몰을 받아서 홍보에만 주력하면 되며 사업자등록이나 통신판매신고를       하지 않아도 되고 재고의 부담이 없습니다.    1. http://www.pdpsoho.com 쇼핑몰        월 11,000원(최소 3개월단위 결제) 정도의 유지비를 결제한후 쇼핑몰을 운영할 수 있는 사이트 (2003.10월 오픈)       아이디만 부여받아 그 아이디로 쇼핑몰을 운영하여 일정율의 마진을 가질 수 있음       하지만 2003.11월현재 ASP로 되어있으며 사이트의 속도가 상당히 떨어짐.(2004.1월 개선예정이라 함)       또한 아이디를 부여받아 운영하므로 소유권은 회사에 있음.    2. http://unionbuy.net/company/ 무료 쇼핑몰       쇼핑몰 전체를 설치해야하는 다른 쇼핑몰과는 달리 자기가 만든 쇼핑몰에 배너형태로 상품을 등록하여        운영할 수 있으며 물품 주문, 배송 관리등은 각 담당업체에서 하므로 운영자는 자기 쇼핑몰 홍보에만 주력하면        되는 사이트임.        그러나 가격 경쟁력, 상품의 다양성면에서 다소 떨어지는 것이 흠임.    3. http://webbiz.i3biz.cc        리셀러 등록과 동시에 쇼핑몰과 도메인을 무료로 받아 운영할 수 있는 사이트       무료 회원가입후 화면상단의 "운영자소개글"에 나와있는 이메일로 요청을 하면 리셀러로 등록을 해준다       리셀러 형태이지만 도메인을 소유하게 되므로 쇼핑몰의 운영권이 나에게 있다. 그리고 실제 오프라인상에서        대형마트를 가지고 있고 상품이 다양하며 가격경쟁력면에서 매우 훌륭한 사이트로 평가할 수 있음       그러나 짦은 시간에 수익을 내기보다는 장기적인 운영이 필요할 것으로 보임      바. 참고       1. 타 사이트를 방문했을때 그냥 지나치지 말고 어떻게 만들었을까하고 유심히 관찰하세요.    2. 광고창이나 배너가 많이 보인다고 해서 그냥 닫지말고 오히려 그 내용을 유심히 보세요.        거기에도 진짜로 나에게 유용한 사이트를 발견하실 수 있습니다.    3. 관심있는 광고나 배너등을 계속 클릭하면서 따라가다 보면 관련 정보가 쌓여있는        보물창고같은 사이트를 수없이 발견할 수 있습니다. 그런 정보를 놓치지 마십시요위 내용은 앞으로 계속 업데이트 하겠습니다. 

'Computer Science' 카테고리의 다른 글

ubuntu에서 tomcat설치/apache2에 연동  (0) 2009.04.23
[FTP] Active Mode 와 Passive Mode  (0) 2009.04.23
ubuntu 7.10에 Resin 설치  (0) 2009.04.22
UBUnTU+TOMCAT5.5 설치  (0) 2009.04.22
JSP 요약  (0) 2009.04.22

Ubuntu 7.10

우분투는 그냥 죽죽 인스톨 가능해서 따로 쓸게 없다

설치하면서 Open-SSH 서버는 옵션으로 설치

ip 설정

vi /etc/network/interfaces

audo eth0

iface eth0 inet static

address 220.149.**.***

netmask 255.255.255.0

broadcast 220.149.**.255

network 220.149.**.*

screen 설치

sudo apt-get install screen

subversion 설치

sudo apt-get install subversion

저장소 설정 및 실행

sudo mkdir /usr/local/repo

sudo svnadmin create /usr/local/repo

svnserve -d -r /usr/local/repo *)

ftp 설치

sudo apt-get install proftpd

inetd 모드

proftpd, ftp user 생성됨

samba 설치

sudo apt-get install samba smbfs

sudo adduser skku

sudo smbpasswd -a skku

sudo vi /etc/samba/smb.conf

sudo testparm

sudo /etc/init.d/samba restart

unzip 설치

sudo apt-get install unzip

java 설치

chmod +x j2sdk-1_4_2_16-linux-i586.bin

./j2sdk-1_4_2_16-linux-i586.bin

chmod +x jdk-1_5_0_13-linux-i586.bin

./jdk-1_5_0_13-linux-i586.bin

mkdir /usr/local/java/sdk

mv j2sdk-1_4_2_16-linux-i586 /usr/local/java/sdk/1.4.2_16

mv jdk-1_5_0_13-linux-i586 /usr/local/java/sdk/1.5.0_13

resin 설치

sudo mkdir /usr/local/server

sudo mv resin-rpo-3.1.3 /usr/local/server

axis2 설치

sudo mv axis2-1.2 /usr/local/lib

'Computer Science' 카테고리의 다른 글

[FTP] Active Mode 와 Passive Mode  (0) 2009.04.23
홈페이지를 만들때 알아두면 유용한 무료사이트 정보  (0) 2009.04.22
UBUnTU+TOMCAT5.5 설치  (0) 2009.04.22
JSP 요약  (0) 2009.04.22
JSP 기초 강좌 사이트  (0) 2009.04.22

톰켓 패키지 설치하기

#sudo apt-get install tomcat5.5 sun-java6-jdk tomcat5.5-webapps tomcat5.5-admin

의존성 있는 패키지 설치해준다. (tomcat을 사용하려면 jre만 설치하면 안되고 jdk를 설치해야함)

우분투 기본 자바 설정을 바꿔준다.
#sudo update-alternatives --config java
목록이나오면 /usr/lib/jvm/java-6-sun/jre/bin/java 를 선택.

tomcat 설정파일에서 JAVA_HOME 변수의 위치를 설정한다.
#sudo vi /etc/default/tomcat5.5
JAVA_HOME=/usr/lib/jvm/java-6-sun/<= 주석을 풀어 셋팅한다.

톰켓 시작,종료,재시작 명령
#sudo /etc/init.d/tomcat5.5 start/stop/restart
http://localhost:8180/ 로 정상설치 되었는지 확인 아래그림처럼 나오면 정상

'Computer Science' 카테고리의 다른 글

홈페이지를 만들때 알아두면 유용한 무료사이트 정보  (0) 2009.04.22
ubuntu 7.10에 Resin 설치  (0) 2009.04.22
JSP 요약  (0) 2009.04.22
JSP 기초 강좌 사이트  (0) 2009.04.22
php 그래프 그리기  (0) 2009.04.22
   < JSP의 개요 > 1. 소개 : Java Server Page 약자이며, Java의 웹서버        프로그램 스펙(servlet)으로 변환되어 서비스   된다. 2. 웹 배경 기술  (1) Client Side Language      <1> HTML   <2> CSS   <3> javascript    (2) Server Side Language     <1> ASP  <2> PHP  <3> JSP   <4> Servlet   (3) Java Web Server      <1> Weblogic  (by BEA) - JSP/EJB  <2> WebSphere (by IBM) - JSP/EJB   <3> 제우스    (by 티멕스소프트) - JSP/EJB  <4> RESIN    <5> JRun   <6> Tomcat ( 표준 서버  by apache group )      ...........  (4) DBMS     <1> Oracle  <2> MS-SQL   <3> MY-SQL    <4> ACCESS    .....    (5) 궁합      <1> unix + JAVA/JSP + oracle + weblogic  <2> windows + ASP/ASP.net + ms-sql + IIS  <3> linux + PHP + my-sql + Apache ( APM )    (6) 근간 기술     <1> HTTP(HyperText Transport Protocol) 프로토콜      - 웹서버와 웹클라이언트(웹브라우져)간에 통신    프로토콜  - Request 와 Response 의 객체 통신   - 단락형 연결 (Request/Response)  - Request/Response 의 구성인자 3가지    - Request/Response line part       ex) GET /index.html HTTP/1.0    - header part        ex) User-Agent : Mozilla/2.0Gold(WinNT: I)        Accept : text/html, img/gif     - Entity Body part (추가정보 - POST방식)       ex)  [explaination]        ..... [entiy body]        <2> 상태 코드 (3자리)      - 1XX : 요청이 받아들여졌고, 처리 중임을 의미    - 2XX : 요청이 성공적으로 처리되었음을 의미    - 3XX : 요청이 처리되기위해 추가적인 액션이            수행되어야 함을 의미    - 4XX : 클라이언트의 요청이 문법적으로 틀렸거나,           처리될 수 없음을 의미        (즉, client 측 에러 ex :404 )         - 5XX : 정당한 요청을 서버가 처리하지 못함을 의미            (즉, server 측 에러 ex: 500 )         ex) java code의 문제, server 문제  3. 장점   (1) 서블릿보다 쉽고, 개발속도가 빠르다.  (2) 디자인(HTML)부분과 로직(JSP)을 분리시킬수 있다.      즉, 디자이너와 프로그래머가 분업할 수 있다.  (3) HTML/CSS/javascript의 디자인을 디자인툴(       dreamweaber, 나모, 프론트페이지)를 사용가능  (4) 프로그래머가 직접코딩한 Servlet보다 최적화된 Servlet을       생성시켜서 효율적인 코드가 만들어진다.  (5) Java Beans 사용이 쉽다.       <1> Beans 설명        [1] 넓은 의미 : 자바 컴포넌트(기능덩어리)    [2] 좁은 의미 : 자바 컴포넌트 중에서 Beans              규약에 맞는 컴포넌트    <2> Beans 규약 ( Data Beans )       [1] 디폴트 생성자가 존재    [2] 속성을 지정(private)해야 한다.   [3] (Data Beans 경우)속성이름을 지정할 때에는         html의 input 태그의 name속성값과 같아야     한다.    [4] (Data Beans 경우)속성을 접근할 수 있는         set/get 메소드를 생성한다.    (set/get다음의 속성이름 첫문자는 대문자)        <3> Beans 종류       [1] Visual Component Beans (JSP와는 상관없음)        ex) JButton, TextArea, ...   [2] Data Beans (데이터를 담아두는 그릇)        ex) MemberBean, GulBean, ...    [3] Service Beans (연산이나 서비스 기능 즉, Worker빈즈)        ex) ConnectionPoolBean, CalculateDistance   <4> Beans 장점       [1] 유효범위(scope)설정이 쉽다.         ex) scope="session"    [2] HTML로부터 넘어오는 데이터를 쉽게        셋팅해 쓸 수 있다.(Form Bean)     ex) property="*"   [3] 기능의 모듈화. 즉, 재사용이 가능하다.        ex) ConnectionPoolBean.java, GBDTO.java    [4] DB에서 가져오는 데이터를 객체화시킬 수         있다. (DTO Bean)   [5] 프리젠테이션(JSP)와 비지니스로직(Bean)을        준독립시켜서 유지보수가 쉽다.   (6) 웹어플리케이션상에서 객체(변수)의 유효범위(scope)설정이 쉽다.      ## scope의 종류 ##       <1> page - 하나의 JSP페이지에서만 유효    <2> request - 하나의 요청에 대한 처리관련 JSP페이지들에 유효    <3> session - 하나의 사용자(브라우져)에 대해 유효        cf) 유효시간 - 세션이 유지되는 시간       - 30분 동안 새로운 요청이 없을 때 까지           서버측 session방이 살아있음     - 특정 사용자가 웹브라우져를 닫을 때까지           유효(사실, session방에 갈수 있는 길이 사라짐)   <4> application - 하나의 웹 어플리케이션 전체에 유효          ( 서버가 종료 될 때까지 유효 )   cf) page < request < session < application    4. JSP를 이루는 구성인자(Element)  (1) Fixed Template Data        HTML/XML 태그들로써 변화되지 않는 문서 내용  (2) JSP Element       웹컨테이너가 인식해서 처리작업을 수행하는 문서 내용    <1> 지시어 원소(Directive Element)     [1] 형태 : <%@ 지시어%>  [2] 종류 : page, include, taglib   [3] 종류별 속성    {1} page              - contentType : "text/html;chaset=euc-kr"     - import      : "java.sql.*, java.io.*"     - info        : "page에 대한 example JSP파일"     - language    : "java" (기본값)     - session     : "true"(기본값) | "false"     - buffer      : "8kb"(기본값) | "none"     - autoflush   : "true"(기본값) | "false"     - errorPage   : "/error.jsp"     - isErrorPage : "false"(기본값)|"true"     - pageEncoding: "ISO-8859-1"(기본값)|"euc-kr"     - extends     : JSP엔진에의해 자동 셋팅     - isThreadSafe: "true"(기본값)|"false"    {2} include (쏘스 삽입)        - file        : "include.jsp"        cf) JSP 액션         (결과 삽입)    {3} taglib (커스텀테그 사용시)        - uri         : "WEB-INF/tlds/my.tld"     - prefix      : "mytag"    cf1) 지시어의 속성을 한 페이지에서 두번        이상 사용할 수 없다.     ( 단, page지시어의 import 는 예외 )    cf2) JSP가 서블릿으로 변환될 때 자동 import패키지        - import javax.servlet.*;             - import javax.servlet.http.*;             - import javax.servlet.jsp.*;     ex) TestJsp6.jsp , includeTest.jsp   <2> 스크립팅 원소(Scripting Element)     [1] 기능 : JSP페이지에 자바코드를 직접기술할            수 있게 하는 기능      [2] 형태     {1} 선언(Declaration)            <%! 자바코드%>     {2} 스크립트렛(scriptlet)            <% 자바코드%>     {3} 식(expression)            <%=자바변수%>            ex) TestJsp6.jsp       <3> 액션 원소(Action Element) == JSP (표준)태그      [1] 설명 : JSP에서 표준으로 정의한 태그   [2] 형태 :   [3] 종류 :      {1} useBean          - class :"soo.beans.test.BeanTestFormBean"          - id    :"btb"    - scope :"page"|"request"|"session"|"application"    - type  :"object"(부모 인터페이스/클래스)     {2} setProperty //btb.setN(name)          - name : "btb"    - property : "n" (beans 속성이름)    - param : "name" (html input name속성)    - value : "홍길동" (속성값)    cf) HTML폼의 모든 데이터를 beans에 자동세팅         (반드시 html input name속성값과 property가 같아야 한다.)             {3} getProperty //btb.getN() 더 많이 사용한다.          - name : "btb"    - property : "n" (beans 속성이름)    - param : "name" (html input name속성값)     {4} include          - page : "include.jsp" (결과를 포함)           ex) includeTest.jsp     {5} forward           - page : "login.html"         ex) /JspActionTest/forwardTest.jsp          cf) 페이지의 이동        <1> response.sendRirect(          "forwardTest_result.jsp");     <2> location.href=          "forwardTest_result.jsp";                <3>      #질문 : <1><2>과 <3> 차이점 조사#       [차이1] <1><2>번은 하위로직을 수행            <3>번은 안한다.       즉, <1><2>번은 하위로직을 수행         하지 않을 경우 return; 필요       [차이2] <1><2>번은 결과페이지로 url변환             <3>번은 url이 변하지 않는다.     #위의 원인은      <1><2>번은 기술된 이동페이지로                   새로운 request발생      <3>번은 기존의 request가 기술된                    이동페이지로 전이      {6} param           - name : "data"    - value : "값"     {7} params     {8} plugin          - type : "bean" | "applet"    - code : "PluginApplet.class"    - jreversion : "1.5"    - width : "300"    - height : "250"    - hspace : "100"    - vspace : "100"     은 JSP페이지가 웹브라우져의       종류에 따라 그에 맞는 자바플러그인      (자바빈 또는 Applet)을 위한       HTML 태그(OBJECT 또는 EMBED)를      자동 생성하도록 한다.      (이유: IE와 NS가 플러그인을 지원하는            태그가 서로 다르기 때문이다.)               ex) /JspActionTest/pluginTest.jsp                       (PluginApplet.java)          5. JSP 디폴트 객체 ( 9개 )     (1) 설명 : 객체를 따로 생성하지 않고 스크립트렛 즉         <%%>사이에서 사용 가능한 객체를 의미   ( _jspService() 의 지역변수 )   (2) 종류        <1> out 객체 (type : JspWriter)        -> 클라이언트 브라우져에 연결된 출력 객체     <2> request 객체 (type : HttpServletRequest)        -> 클라이언트 요청정보를 가진 객체(공간)     <3> response 객체 (type : HttpServletResponse)        -> 서버의 답변정보를 가진 객체     <4> session 객체 (type : HttpSession )        -> 클라이언트 브라우져마다 할당된 서버측      공간(JSessionId라는 label표식을 소유) 객체               cf) session 변수    - session객체 안에 들어가는 속성객체     ex1)      ex2) session.setAttribute(id, jsi);    # 세션변수란 위의 loginOk 또는 id를 의미    # 세션객체 또는 그 안의 세션변수 모두        현재 클라이언트의 정보를 가지고 있다.    # 세션객체가 없어지면, 그 안의 세션변수       들도 함께 사라진다.        <5> application 객체 ( type : ServletContext)        -> WebApplication 전체에 공유되는 공간 객체         cf) application변수는 그 안에 들어가는       객체들로써 모든 영역에 공유된다.       (ex : pool)      <6> page 객체 ( type : Object )        -> JSP페이지 자신을 의미하는 객체(공간)     <7> pageContext 객체 ( type : PageContext )        -> 다른 디폴트 객체들을 접근(가져)할 수        있는 method를 가진 객체    ( 꼭!! , API찾아볼 것 )    <8> config 객체 ( type : ServletConfig )        -> 서블릿/JSP의 구성정보를 접근할 수 있는        객체     <9> exception 객체 ( type : Throwable )        -> 에러처리 관련 객체         6. JSP의 라이프 사이클      jspInit() -----> _jspService() -----> jspDestroy()            (멀티 쓰레드에 의해서 관리)    ex) TestJsp5.jsp - JSP lifeCycle   7. 쿠키와 세션   (1) 쿠키      <1> 설    명: 클라이언트측에 저장되는 서버측 정보             (부스러기)  <2> 제한크기: 4 KB 이하 제한/개   <3> 제한갯수: 300 개   <4> 최대로 저장 가능한 쿠키의 용량 : 1.2 MB  <5> 종    류:      [1] 클라이언트의 하드 디스크에 저장되는 쿠키             [2] 클라이언트의 메모리에 존재하는 쿠키      ( 브라우져가 켜져 있을 때까지만 존재 )       - JSessionID     - MaxAge가 설정되지 않은 경우(음수, 0)      ( MaxAge의 기본값 : -1 )     <6> 주   의      [1] 한글은 안된다.   [2] MaxAge가 지났을 때, 하드의 파일에는      지워지지 않지만 CookieGet.jsp를 실행하면      MaxAge지난 Cookie는 검출되지 않는다.             ex) /Cookie_Session/CookieGet.jsp        /Cookie_Session/CookieSet.jsp     /Cookie_Session/CookieModul.jsp   (2) 세션      <1> 설    명: HTTP 프로토콜은 무상태(stateless)       프로토콜이기 때문에 상태를 유지할 수 없다.    세션이라는 기술은 그 상태정보를 유지할 수     있도록 만들어진 "기술"이다.     ex) 쇼핑몰의 장바구니, 로그인 ..      <2> 원   리 : 클라이언트의 첫번째 요청에 의해서        서버측메모리에서는 JSessionID라는 ID로           해당 클라이언트를 위한 방(공간)이 만들어지고       첫번째 답변으로 그 JSessionID를 쿠키 형태로     클라언트에게 전달한다.        다음 요청부터는 클라이언트가 JSessionID를    가지고 서버에게 요청함으로써 서버는 그     클라이언트를 식별할 수 있고, 그 클라이언트의     방을 공유할 수 있게 한다.     따라서, 그 방에 있는 객체들로 상태정보를 유    지 할 수 있는 것이다.     <3> 주   의      같은 서버에서는 WebApplication(Context)이    바뀌면 클라이언트의 기존 JSessionID는    없어지고, 새로운 JSessionID를 받게 된다.    ( Context 마다 JSessionID가 따로 생성된다.)   -> 그런데..      때로는 기존의 JSessionID를 유지하기도 한다.   ( 톰켓서버측에서 일률적으로 구현되지 않았다. )    ex) /Cookie_Session/SessionGet.jsp         /Cookie_Session/SessionSet.jsp     /Cookie_Session/SessionRemove.jsp      cf1) application       /Cookie_Session/ApplicationGet.jsp   /Cookie_Session/ApplicationSet.jsp        cf2) request       /Cookie_Session/RequestGet.jsp    /Cookie_Session/RequestSet.jsp8. 팁 ( Tip )   (1) GET방식으로 전달되는 데이터량(http부터) : 2 KB               ex) /Cookie_Session/getSize.jsp    -> http://ip:포트/soo.jsp?name=aaa  (2) HTML의 input태그에서 disabled 속성을 쓰면        value값이 다른 페이지로 전송이 안된다.     ( 이럴땐, hidden을 이용 )   (3) 하나의 웹서버상에서 새로운 WebApplication을       생성 시키기 위해서 server.xml을 편집(추가)    ex)      (4) 서버의 xml파일을 수정했으면 서버를 다시 켜야      xml의 변경사항이 적용된다.   (5) server.xml의 Connector태그에 다음을 추가하면       클라이언트로 부터 GET방식으로 넘어오는    한글Data가 깨지지 않는다.    ( 모든 Context에 공통 적용 )    ex)   (6) 클라이언트로 부터 POST방식으로 넘어오는 한글       Data가 깨지지 않는 방법    ( 각각에 Context에 독립적으로 적용 )        ex) WebAppName\WEB-INF\web.xml을        EncodingFilter.java를 이용해서 편집  (7) context.xml에       옵션을 주면 \WEB-INF\classes 안의 class의    내용이 수정되면 자동으로 갱신된다.   (8) tomcat 최신버젼의 다운로드 및 셋팅       <1> http://tomcat.apache.org/ 에서 다운로드    <2> 설치한 후       [1] editplus 이용시        Tomcat 5.5\common\lib\*.jar를 classpath걸어줌         ex) C:\Java\jdk1.5.0_06\jre\lib\ext\에 넣음          ( C:\Java\jre1.5.0_06\lib\ext\에는 넣지 않음)   [2] eclipse 이용시     eclipse에 톰켓 디렉토리만 설정해주면     eclipse가 자동으로 classpath 잡아줌          ( 기존에 C:\Java\jdk1.5.0_06\jre\lib\ext\에      톰켓관련 jar파일들은 빼주어야 한다. )      <3> Tomcat 5.5\conf\web.xml 의 invoker부분의       주석을 해제(2개)   (9) javascript와 JSP변수의 관계         servlet 또는 JSP페이지에서 ..  <1> java변수를 javascript에서 쓸 수 있다.   <2> javascript변수를 java에서 쓸 수 없다.          ex) JSP_JS_Vriable.jsp    (10) 해당 URL의 main페이지를 자동으로 찾아가게       하려면 conf\web.xml을 다음과 같이 편집해준다.       ex)    main.jsp   index.html   index.htm   index.jsp               (11) 기본 port를 바꾸고 싶을 때는 server.xml의         다음을 수정해 준다.        ex)  C:\SOO\WebServer\Tomcat 5.5\conf\server.xml의        태그 사이에 셋팅     ( # 주의 : oracle.jdbc.driver.OracleDriver 확인 )           <2> C:\SOO\WebServer\Tomcat 5.5\conf\context.xml의        태그 사이에 셋팅         <3> ~Project\WEB-INF\web.xml의  태그 사이에 셋팅            Oracle Datasource example    jdbc/myoracle    javax.sql.DataSource    Container       <4> Java Source상에서 다음과 같이 참조    Context initContext = new InitialContext();   Context envContext  = (Context)initContext.lookup("java:/comp/env");   DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");   Connection conn = ds.getConnection();   //etc.    (14) 이클립스 셋팅 방법      1) JDK설치    2) Tomcat설치 (apache.org)   3) eclipse설치 (download.eclipse.org/eclipse/downloads/)   4) 4개의 플러그인 설치    5) Struts 다운로드 (apache.org)    6) 신규 프로젝트 생성     <1> web.xml 9. 기본 프로젝트 ( to MVC 모델 )   (1) 방 명 록      (2) 회원 가입        <1> member/join     <2> member/search     <3> member/manager    (3) 로그인        <1> login    <2> loginModul   (4) 쿠키 / 공지사항 / 카운트    (5) 파일 업로드        <1> MultipartRequest     <2> SmartUpload     <3> Struts Upload Component (API참조)    .....      (6) 파일 매니져    (7) 쇼핑몰의 장바구니 구현 (나중에 RP때 해봐요..)      (8) 게시판(답변형)       <1> 페이지의 이동         list -> write  -> writeOk             -> content -> edit/delete/rewrite    <2> 답변형 게시판 DB table 분석        [1] 하나의 쏘스로 여러개의 게시판을 가동 가능         - 쏘스상의 DB 테이블의 이름만 바꾼다.         [2] DB 테이블간의 relationship (비식별관계)        #JSP_BOARD(일)   #JSP_MEMBER(일)                #REPLY(다)          [3] 특이한 JSP_BOARD의 필드     - REFER :  같은 글집단을 표시하는 변수(글 족번호)    - LEV : 같은 글집단(패밀리)에서의 등급 변수    - SUNBUN : 같은 글집단(refer)에서의 글 listing순서 변수     ex1) 필드 설명의 예              3. 세번째 족(refer:2, lev:0, subun:0)    2. 두번째 족(refer:1, lev:0, sunbun:0)       -> 두족의 답2(refer:1, lev:1, sunbun:1)       -> 두족의 답2의 답1(refer:1, lev:2, sunbun:2)       -> 두족의 답1(refer:1, lev:1, sunbun:3)       -> 두족의 답1의 답2(refer:1, lev:2, sunbun:4)       -> 두족의 답1의 답1(refer:1, lev:2, sunbun:5)    1. 첫번째 족(refer:0, lev:0, sunbun:0)                -> 첫족의 답1(refer:0, lev:1, sunbun:1)     [4] 페이징 기법( Sql의 SELECT문이 다름 )        - JSP_BOARD의 모든 글을 가져와서        rs의 커서를 해당 페이지의 시작점으로     이동시켜서 page를 listing하는 방법     - JSP_BOARD에 글을 가져올 때, 미리 해당       페이지에 해당하는 글들만을 SELECT하는 방법10. 팀별 세미프로젝트 ( to MVC 모델 )

'Computer Science' 카테고리의 다른 글

ubuntu 7.10에 Resin 설치  (0) 2009.04.22
UBUnTU+TOMCAT5.5 설치  (0) 2009.04.22
JSP 기초 강좌 사이트  (0) 2009.04.22
php 그래프 그리기  (0) 2009.04.22
C# USB viewer open source  (0) 2009.04.22

JSP 기초 강좌 사이트

'Computer Science' 카테고리의 다른 글

UBUnTU+TOMCAT5.5 설치  (0) 2009.04.22
JSP 요약  (0) 2009.04.22
php 그래프 그리기  (0) 2009.04.22
C# USB viewer open source  (0) 2009.04.22
Writing Data CDs  (0) 2009.04.22

우분투에 php, jsp 개발환경 만들기

설치 버전

ubuntu 7.04

apache2

php5.5

mysql 5

java6

eclipse3.3

mysql 5 설치

시냅픽 패키지 관리자로 설치

경로정보

/usr/bin

mysql root 비밀번호 변경

  1. $ mysqladmin -u root password '비밀번호'

utf-8설정

/etc/mysql/my.cnf 수정

  1. [client]
    default-character-set=utf8
    [mysqld]
    init_connect=SET collation_connection = utf8_general_ci
    init_connect=SET NAMES utf8
    default-character-set=utf8
    character-set-server=utf8
    collation-server=utf8_general_ci
    [mysql]
    default-character-set=utf8

db, table 생성시 다음 추가

DEFAULT CHARSET=utf8

connection url

  1. jdbc:mysql://<hostname>[:<port>]/<database>?<parameters>

예)

  1. jdbc:mysql://<hostname>[:<port>]/<database>?useUnicode=true&chracterEncoding=UTF-8&user=<username>&password=<password>
  2. (&를 인식 못하면 & -> & 로 바꿔야함)

apache2 설치

시냅픽 패키지 관리자로 설치

경로정보

/etc/apache2 <= apache설정파일 위치

/usr/lib/apache2 <= modules 위치

/etc/init.d/apache2 <= stop, start, reload 스크립트

/usr/sbin/a2* 실행파일 <= apache mod, site 설정, 헤제 스크립트

/var/www <= ROOT Home Directory

virtual host 설정

참고 https://help.ubuntu.com/community/ApacheMySQLPHP?action=show&redirect=LAMP

/etc/apache2/sites-available/XXX 파일 만듦

  1. NameVirtualHost *
    <VirtualHost *>
    ServerName <connect_url>
    ServerAdmin duddns@wzd.com

    DocumentRoot "<web_root_dir>"
    <Directory "<web_root_dir>">
    Options Indexes FollowSymLinks ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>

    ErrorLog /var/log/apache2/<log_dir>/error.log
    LogLevel warn

    CustomLog /var/log/apache2/wzd/<log_dir>/access.log combined
    ServerSignature On

    </VirtualHost>

virtual host 적용

  1. $ sudo a2ensite XXX

apache2 재시작

  1. $ sudo /etc/init.d/apache2 restart

TroubleShooting

1. log 디렉토리 만들어야 함

2. virtual host 홈 디렉토리 만들어야 함

3. apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName 에러 발생하면 /etc/apache2/apache2.conf 파일 마지막에 ServerName localhost를 추가한다.

php5.5 설치

시냅픽 패키지 관리자로 설치

경로정보

Magic quotes 사용 안하도록 설정

  1. $ vi /etc/php5/apache/php.ini
  2. magic_quotes_gpc = Off

jdk 설치

sun-java6-jdk

시냅픽 패키지 관리자로 설치

경로정보

/usr/lib/jvm/java-6-sun <= 이것은 대표 링크이고, 실제 같은 디렉토리의 실제 경로가 존재한다.

/usr/bin/java

/etc/alternative/java <= 대부분의 링크가 여기로 링크처리됨.

PATH 설정

  1. $ sudo update-alternatives --config java

eclipse 설치

http://eclipse.org 에서 다운로드

3.3버전 제대로 동작 안해서 3.2버전 설치

3.2 버전 설치 -> metadata 만들어짐 -> 3.3 제대로 동작

subclipse 설치

PHP 개발

  • eclipse WTP

  • Subclipse

    • 플러그인 설치 URL : http://subclipse.tigris.org/update_1.2.x
  • PHPEclipse

    • 플러그인 설치 URL :http://phpeclipse.sourceforge.net/update/releases

Java 개발

eclipse wtp에서tomcat 배포 경로

  1. workspace/.metadata.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/
  2. (원하는 경로에 링크를 걸어서 사용)

tomcat 5.5 설치

시냅픽 패키지 관리자로 설치

경로정보

/etc/default/tomcat5.5 <= 초기 구동 관련 Path정보

/etc/tomcat5.5 <= server.xml, web.xml파일 위치

/etc/init.d/tomcat5.5 <= stop, start, restart 스크립트

/usr/share/tomcat5.5 <= Tomcat Home 위치.

/var/lib/tomcat5.5 <= tomcat관련 Vars

/var/log/tomcat5.5 <= tomcat관련 Logs(Catalina.out등등)

/var/lib/tomcat5.5/webapps/ROOT <= ROOT Home Directory

패스 설정

  1. $ vi ~/.bashrc
  2. CATALINA_HOME

포트 변경 (apt-get으로 설치시 기본 포트 8180임)

  1. $ vi /etc/tomcat5.5/server.xml

기본 jdk 설정

  1. $ vi /etc/default/tomcat5.5
  2. (JAVA_HOME 설정)

Trouble Shooting (참고 : http://ubuntuforums.org/showthread.php?p=2611681)

이클립스에서 톰켓 서버를 설정하기 위해 /usr/share/tomcat5.5/webapps -> /usr/share/tomcat5.5-webapps 링크 걸어줌

로그파일 권한 설정 (권한이 없으면 톰캣 실행이 안됨)

  1. $ cd /var/log/tomcat5.5/
    $ sudo rm catalina.out
    $ sudo touch catalina.out
    $ sudo chown tomcat55:nogroup catalina.out
    $ sudo chmod uo-wrx catalina.out

Tomcat work directory 권한 수정(이클립스 같은 개발툴을 사용할 경우 필요함)

  1. $ cd /var/cache
    $ sudo chmod go+rwx tomcat5.5

jk 설치 (apache - tomcat connector) - 선택사항

시냅틱 패키지 관리자로 설치

  1. $ sudo apt-get install libapache2-mod-jk (Deprecated libapache2-mod-jk2)

경로정보

/etc/apache2/mods-available/jk.load

/usr/lib/apache2/modules/mod_jk.so

/etc/apache2/jk/uriworkermap.properties 파일 생성

  1. /jkstatus*=status
  2. /*.jsp=worker1
    /*.do=worker1

/etc/apache2/jk/worker.properties 파일 생성

  1. worker.list=worker1, status
  2. # Set properties for worker1 (ajp13)
    worker.worker1.type=ajp13
    worker.worker1.host=localhost
    worker.worker1.port=8009
    worker.worker1.lbfactor=50
    worker.worker1.cachesize=10
    worker.worker1.cache_timeout=600
    worker.worker1.socket_keepalive=1
    worker.worker1.socket_timeout=300
  3. # Set properties for jkstatus
  4. worker.status.type=status

/etc/apache2/mods-available/jk.conf 생성

  1. # Where to find workers.properties
    JkWorkersFile /etc/apache2/jk/workers.properties

    # Where to put jk logs
    JkLogFile /var/log/apache2/jk.log
    # Set the jk log level [debug/error/info]
    JkLogLevel info
    # Select the log format
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
    # JkRequestLogFormat
    JkRequestLogFormat "%w %V %T"

    # JkOptions indicates to send SSK KEY SIZE
    JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

    # Mount your applications
    #JkMount /application/* loadbalancer
    # You can use external file for mount points.
    # It will be checked for updates each 60 seconds.
    # The format of the file is: /url=worker
    # /examples/*=loadbalancer
    JkMountFile /etc/apache2/jk/uriworkermap.properties

jk module 사용

  1. $ sudo a2enmod jk

apache, tomcat 재시작

동작확인

http://localhost

http://localhost:8080

http://localhost/jkstatus


'기본 카테고리' 카테고리의 다른 글

atl/wtl 속성강좌  (0) 2009.04.25
atl  (0) 2009.04.25
php 그래프  (0) 2009.04.22
[함수] GD 를 이용한 통계용그래프 수정안2  (0) 2009.04.22
DELPHI FOR PHP 소개및 한글 사용 방법  (0) 2009.04.22

php 그래프

출처 : http://missa.or.kr/cgi-bin/technote/read.cgi?board=com_php&y_number=31


<? header("content-type: image/png");
$im=imagecreate(250,250);
$white=ImageColorAllocate($im,255,255,255);
$blue=ImageColorAllocate($im,0,0,255);
$red=ImageColorallocate($im,255,0,0);
$green=ImageColorallocate($im,0,50,0);
$pink=ImageColorallocate($im,100,0,100);
imageline($im,0,125,250,125,$red);
imageline($im,125,0,125,250,$red);
for($n=1;$n < 220;$n+=20)
imagearc($im,125,125,$n,$n,0,360,$green);
imagestring($im, 2, 170, 233, "jjs7@dreamwiz.com", $blue);
$y0=125;
for($x=0;$x < 248;$x+=2)
{
$y1=round(125 - rand(10,30) );
imageline($im,$x,$y0,$x+2,$y1,$pink);
$y0=$y1;
}
imagepng($im);
imagedestroy($im); ?>

+ Recent posts