Apache and Tomcat,

judgedrunkshipΔιακομιστές

17 Νοε 2013 (πριν από 3 χρόνια και 8 μήνες)

97 εμφανίσεις

Apache and Tomcat,

Sample Form Servlet Application


HyunSuk Jung

2002.11.11

2

Data Warehousing

Lab.

DW

Apache
소개


가장

인기있는

楮瑥牮整 w敢e獥牶敲


지속적

패치

파일

제공


최고의

퍼포먼스


무료

제공

3

Data Warehousing

Lab.

DW

Apache
기본

설정
(
桴瑰搮捯湦)


지시어

설명

灯牴



서버의

기본포트는

80

번으로
,

이미



다른

프로세스에

의해

80



포트가

점유되어

있지는

않은가를

살펴본다
.

80



포트가

사용되어

지고

있다면
,

1024



이상의

포트번호를

설정하여



시도

해본다
.

Group


#
-
1



같이

지정되어

있으나
,

이것을

시스템에서

인식하지

못한다면

nobody



같은

적절한

그룹을

지정한다
.

ServerName


주석이

되어

있는

경우
,

시스템에서

사용하는

www
.
apache
.
kr
.
net



같은

FQDN

형식으로

입력하여

주며
,

도메인이

없는

경우

시스템의

IP

주소를

입력하거나

또는

localhost



입력한다
.

ServerRoot


아파치



서버가

위치하는

경로가

적절히

지정되어

있는지

확인한다
.



경로는

아파치

생성시에

--
prefix

옵션에

지정된

경로이며
,

지정하지

않을

경우에는


/
usr/local/apache




기본

경로를

가지게

된다
.

DocumentRoot


아파치



서버의

기본이

되는

문서

디렉토리로
,

클라이언트가

요청시에

제일

먼저

DocumentRoot



의해

지정된

디렉토리의

문서

내용을

보여주게

된다
.

4

Data Warehousing

Lab.

DW

Tomcat
소개


아파치

소프트웨어에서

개발되고

있는

䩡J愠卥Sv汥l


䩓J⡊慶愠卥Sv敲e
偡来P
등의

자바

기술을

이용할



있는

卥Sv汥琠䍯C瑡楮敲
이다



Tomcat
실행시

5

Data Warehousing

Lab.

DW

Apache


呯浣Tt


함께

쓰는

이유

1.
Tomcat is not as fast as Apache when it comes to static pages.

2.
Tomcat is not as configurable as Apache.

3.
Tomcat is not as robust as Apache.

4.
Tomcat may not address many sites' need for functionality found only in
Apache modules (e.g. Perl, PHP, etc.).



6

Data Warehousing

Lab.

DW

나의

실행

환경


Jdk1.3+Apache2.0.4+Tomcat4.0.4+cocoon2.0.3


환경에서

연동하였다
.


<
cocoon
화면
>


7

Data Warehousing

Lab.

DW





8

Data Warehousing

Lab.

DW

HttpServletRequest, HttpServletResponse


개요


HttpServletRequest


클라이언트의

모든

요청

정보

보유



request header



form data, query parameter



InputStream(
클라이언트로부터

전송되어지는

데이터
)



기타

클라이언트

정보얻기



세션

정보
,
쿠키
,
path ...



HttpServletResponse



클라이언트에게

보내지는

모든

정보

보유



response header



OutputStream (
클라이언트에게

보내지는

데이터
)



쿠키

설정



세션

설정

9

Data Warehousing

Lab.

DW

HttpServletRequest


Request
메시지를

보내어

페이지

받기

10

Data Warehousing

Lab.

DW

RequestMessage.java


import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.net.*;

public class RequestMessage extends HttpServlet {


public void doGet(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {


OutputStream out = response.getOutputStream();


InetAddress webServer = InetAddress.getByName("kr.yahoo.com");


Socket httpPipe = new Socket(webServer, 80);

//
웹서버포트
:80


InputStream is = httpPipe.getInputStream();


PrintStream os = new PrintStream(httpPipe.getOutputStream());


os.println("GET " + "/index.html" + " HTTP/1.0
\
n");// send GET HTTP request


int temp;


ByteArrayOutputStream baos = new ByteArrayOutputStream();


while ( (temp = is.read())!=
-
1) {


baos.write(temp);


}


out.write(baos.toByteArray());


os.close();


is.close();


out.close();


}

}

11

Data Warehousing

Lab.

DW

HttpServletResponse

다른

페이지

보내기

12

Data Warehousing

Lab.

DW

ResponseRedirect.java


import java.io.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class ResponseRedirect extends HttpServlet {


public void doGet(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {


response.setContentType("text/html;charset=euc
-
kr");


PrintWriter out = response.getWriter();


String gopage = request.getParameter("gopage");


if(gopage!=null && gopage.equals("yahoo")){


response.sendRedirect("http://www.yahoo.co.kr");


}else {


out.println("<html><body>");


out.println("<h1>Response


sendRedirect</h1>");


out.println("
다른페이지로

이동하기

위해서는
<
br>");


out.println("URL


?
gopage=yahoo


붙이시오
");


out.println("</body></html>");


}


out.close();


}

}

13

Data Warehousing

Lab.

DW

HttpServletResponse

setHeader


14

Data Warehousing

Lab.

DW

SetHeaderTest.java


import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class SetHeaderTest extends HttpServlet{


public void doGet(HttpServletRequest request, HttpServletResponse response)


throws IOException, ServletException{


response.setContentType("text/html;charset=euc
-
kr");


PrintWriter out = response.getWriter();


response.
setHeader("Refresh", "URL=http://www.yahoo.co.kr");


out.println("<HTML><BODY>");


out.println("<H3>
잠시만

기다려

주세요
... </
H3>");


out.println("<H2> 5
초후에

yahoo
홈페이지로

이동합니다
.</
H2>");


out.println("</BODY></HTML>");


}

}


15

Data Warehousing

Lab.

DW


16

Data Warehousing

Lab.

DW

Sample Form Servlet Application

Form1.html

<html>

<title> testing JAVA Servlet Second</title>

<body bgcolor=white>

<br><BR><hr>

<form action=http://localhost:8000/examples/servlet/form1 method=get><br>

메세지를

입력

하세요

: <
input type=text name=msg><br>

<input type=submit value=
전송
><
br></form>

<hr>

</body></html>


17

Data Warehousing

Lab.

DW

Form1.java

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;



public class form1 extends HttpServlet {


public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {




String server, protocol, querystring, msg, date;


int port, leng;


res.setContentType("text/html");


PrintWriter toClient = new PrintWriter(res.getOutputStream(),true);


server = req.getServerName();


port = req.getServerPort();


protocol= req.getProtocol();


msg = req.getParameter("msg"); //form tag
에서

msg
라고

이름을

정한

field
값을

받아옴
.


querystring = req.getQueryString();


Date today = new Date();


date = today.toString();




toClient.println("<html><title> test servlets GET </title>");


toClient.println("<body bgcolor=white>");


toClient.println("<br><hr><h1> From Servlet </h1><hr><br><BR>");


toClient.println("<br>Your Server name : "+server+"<br>");


toClient.println("<br>Your Port number: "+port+"<br>");


toClient.println("<br>Your Protocol : "+protocol+"<br>");


toClient.println("<br>Message from Client : "+msg+"<br>");


toClient.println("<br>Your Query String : "+querystring+"<br>");


toClient.println("<BR><BR><BR>");


toClient.println("</body></html>");


}

}