Site Search :
Standard Enterprise XML Methodology Pattern Setting Tunning Other
Article Contributors
GuestBook
Javapattern Maven
XSourceGen Dev
JetSpeed Test
JLook Image
jLook Family Site


Servlet과 Applet간의 HTTP 통신
 
Servlet과 Applet간의 HTTP 통신을 이용하여 Database 내용을 Applet에 Display하는 방법 ( 2003/04/02 ) 814
Written by ienvyou - 최지웅
1 of 4
 

Servlet 과 Applet사이에 Http를 통해 연결하는 방법입니다. Servlet에서는 JDBC를 이용하여 Database의 내용을 Applet의 요청에 따라 Http Protocol을 이용하여 전달하는 방법이다.

기존의 방법과 다른 점은 Client 쪽에서는 Applet을 이용하여 보다 Powerful한 UI를 제공 하면서도 Server 쪽에서는 http Protocol 만을 이용하기때문에 별도의 port를 이용하지 않아도 된다는 점이 특징이 있다.

1. 전체 내용

전체적인 그림은 다음과 같다.

위의 그림을 보시면 기존에 client에서는 단지 browser를 통해 Servlet이나 jsp를 호출을 하는 방법에서 이번에는 Client에서 Applet을 이용하여 Servlet이나 jsp를 호출하는 방법이다.

Class구조는 다은과 같다.

위의 그림을 보면 크게 client에서 필요한 class 들과 server쪽에 필요한 Class로 나누어 진다.

client에서 Servlet을 호출할때는 POST 방식 이나 GET방식을 이용하고 Servlet에서의 결과값은 ObjectOutputStream을 이용하여 Client에게 전달한다.

client side

1. MyApplet.java - 화면 GUI와 Event 처리

2. ServletMessage.java - MyApplet에서 발생하는 Event를 POST방식이나 GET방식으로 Servlet에게 Message를 전달하고 그에대한 결과를 받아서 MyApplet에게 전달

3. UsersEntity.java - Users Table에 관한 Wrapper class

4. ItemEntity.java - Item Table에 관한 Wrapper class

server side

1. MyServlet.java - client에서의 message를 http protocol 받아서 현제 database에서 data를 받아오고 그내용에 대한 결과 값을 UserEntity[] , ItemEntity [] 형태로 client 에게 전달

2. UsersEntity.java - Users Table에 관한 Wrapper class

3. ItemEntity.java - Item Table에 관한 Wrapper class

 

2. source 분석

ItemEntity.java

import java.io.*;
public class ItemEntity implements Serializable
{

public String item_name;
public double item_price;
public ItemEntity(String item_name,double item_price){
this.item_name=item_name;
this.item_price=item_price;
}
public void setItem_name(String item_name){
this.item_name=item_name;
}
public void setItem_price(double item_address){
this.item_price=item_price;
}

public String getItem_name(){
return item_name;
}
public double getItem_price(){
return item_price;
}


}

UsersEntity.java

import java.io.*;
public class UsersEntity implements Serializable
{


public String user_id;
public String user_name;
public String user_address;
public UsersEntity(String user_id,String user_name,String user_address){
this.user_id=user_id;
this.user_name=user_name;
this.user_address=user_address;
}
public void setUser_id(String user_id){
this.user_id=user_id;
}
public void setUser_name(String user_name){
this.user_name=user_name;
}
public void setUser_address(String user_address){
this.user_address=user_address;
}
public String getUser_id(){
return user_id;
}
public String getUser_name(){
return user_name;
}
public String getUser_address(){
return user_address;
}


}

위의 두가지 class는 Server쪽에서의 결과값을 client에게 전달할때 DB의 data들을 java obejct type의 배열을 이용하여 전달시키는 wrapper class이다.

이때 가장 중요한것은 두개의 object에는 객체 직렬화가 되어 있어야 한다. 즉 object stream을 통해 결과값이 전달되기 때문에 항상 java.io.* package가 import 되어야 하며 implements Serializable이 되어야 한다.

 

 

 
1 2 3 4
References
 
Copyright ⓒ 2003 www.javapattern.info & www.jlook.com, an jLOOK co.,LTD