2014년 4월 30일 수요일

자바에서 재귀호출을 이용한 팩토리얼 구하기 (java recursive factorial), 자바일고리즘,자바자료구조공부학원다닙시다.

자바에서 재귀호출을 이용한 팩토리얼 구하기 (java recursive factorial), 자바일고리즘,자바자료구조공부학원다닙시다.


class RecursionTest {
  long factorial(int value) {
  if(value <= 1) return 1L;
  return value*factorial(value-1);
  }
  public static void main(String[] args) {
  if (args.length<1) {
  System.out.println("Usage : java RecursionTest number ");
  System.exit(1);
  }
                                    int value = Integer.parseInt(args[0]);
  RecursionTest r = new RecursionTest();
  long fact = r.factorial(value);
  System.out.println(value + "! = " + fact);
  }

오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)

평일주간(9:30~18:20) 개강
(5/12)C#4.0,ADO.NET,Network 프로그래밍
(5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(5/12)안드로이드개발자과정
(5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/26)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(5/07)Spring3.X, MyBatis, Hibernate실무과정
(5/09)웹퍼블리싱 마스터
(5/09)JAVA&WEB프레임워크실무과정
(5/09)SQL초보에서실전전문가까지
(5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(5/16)C#,ASP.NET마스터
(5/19)안드로이드개발자과정
(5/20)개발자를위한PLSQL,SQL튜닝,힌트

주말(10:00~17:50) 개강
(5/03)안드로이드개발자과정
(5/03)C#,ASP.NET마스터
(5/03)JAVA&WEB프레임워크실무과정
(5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/10)닷넷실무자를위한WPF개발자과정
(5/10)SQL초보에서실전전문가까지
(5/10)Spring3.X, MyBatis, Hibernate실무과정
(5/11)웹퍼블리싱 마스터
(5/17)개발자를위한PLSQL,SQL튜닝,힌트

주말저녁(18:30~22:20) 개강
(5/17)자바&웹,jQUERY,스프링프레임워크
(5/17)SQL기초에서 Schema Object까지



[자바네트워크강좌, 소켓, JAVA Socket]이번 강좌에서는 JAVA Client Network의 중요한 클래스인 Socket에 대해 살펴 볼 겁니다.

[자바네트워크강좌, 소켓, JAVA Socket]이번 강좌에서는 JAVA Client Network의 중요한 클래스인 Socket에 대해 살펴 볼 겁니다.

Socket

클라이언트/서버 네트웍에서 서버는 데이터베이스에 질의를 수행해서 어떤 결과를 클라이언트에 보낸다든지 또는 현재 주식 시세를 확인 후 클라이언트에 보낸다든지 하는 일련의 서비스를 제공 합니다. 이때 클라이언트와 서버의 통신은 신뢰 할 수 있어야 하며 서버에서 보낸 데이터는 소실되거나 순서가 바귀어서는 안되는게 상식 이겠죠? TCP는 point-to-point(종단간)간의 통신에 있어 신뢰할 수 있는 서비스를 제공하며 TCP상에서 서로 통신을 하기 위해서는 양쪽이 먼저 연결을 수립한 후 통신을 하게 되는 것입니다. 또한 통신을 하기 위해 클라이언트와 서버는 연결에 바운딩된 소켓에 쓰거나 소켓을 통해 데이터를 읽을 수가 있는 것입니다. 결국 소켓(Socket)은 통신을 위한 양쪽 종단의 끝을 가리키는 것으로 Socket 클래스는 결국 클라이언트 프로그램과 서버 프로그램 사이의 연결 종단을 나타내기 위해 사용한다고 볼 수 있습니다. java.net 패키지는 연결의 클라이언트 쪽과 서버 쪽을 표현하기 위해 Socket 과 ServerSocket 두개의 클래스를 포함하고 있으며 우리는 앞으로 이두개의 클래스에 대해 자세히 보도록 할 것입니다.
소켓을 생성하면 연결은 자동으로 이루어지며, 연결 할때 오류가 발생하면 IOException 이 발생 합니다.TCP 연결에는 로컬 IP 주소와 원격 IP 주소 , 로컬포트 , 원격 포트 등이 사용되며 Socket 이 생성되어 원격호스 트에 접속 할 때 대개는 사용하지 않는 로컬 포트가 사용 됩니다.

생성자

• Constructor – public Socket(InetAddress address, int port)
• Creates a stream socket and connects it to the specified port number at the specified IP address. – public Socket(String host, int port)
• Creates a stream socket and connects it to the specified port number on the named host.

소켓 모형도는 아래와 같습니다.


[예제]
//The Echo server is a well-known service that clients can rendezvous with on port 7.
import java.net.*;
import java.io.*;
public class EchoLoopClient {
public static void main(String [] args) {
Socket mySocket;
String hostName, aLine;
BufferedReader fromSocket, userInput;
PrintWriter toSocket;
try {
if(args.length > 0) hostName = args[0];
else hostName = "127.0.0.1";
mySocket = new Socket(hostName, 7);
fromSocket = new BufferedReader(new InputStreamReader(mySocket.getInputStream()));
toSocket = new PrintWriter(mySocket.getOutputStream());
userInput = new BufferedReader(new InputStreamReader(System.in));
while(true) {
aLine = userInput.readLine();
if (aLine.equals(".")) break;
toSocket.println(aLine);
toSocket.flush();
System.out.println(fromSocket.readLine());
}
fromSocket.close();
toSocket.close();
}
catch(UnknownHostException e) {
System.out.println(e);
}
catch(Exception e) {
System.out.println(e);
}
}
}

오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)

평일주간(9:30~18:20) 개강
(5/12)C#4.0,ADO.NET,Network 프로그래밍
(5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(5/12)안드로이드개발자과정
(5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/26)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(5/07)Spring3.X, MyBatis, Hibernate실무과정
(5/09)웹퍼블리싱 마스터
(5/09)JAVA&WEB프레임워크실무과정
(5/09)SQL초보에서실전전문가까지
(5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(5/16)C#,ASP.NET마스터
(5/19)안드로이드개발자과정
(5/20)개발자를위한PLSQL,SQL튜닝,힌트

주말(10:00~17:50) 개강
(5/03)안드로이드개발자과정
(5/03)C#,ASP.NET마스터
(5/03)JAVA&WEB프레임워크실무과정
(5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/10)닷넷실무자를위한WPF개발자과정
(5/10)SQL초보에서실전전문가까지
(5/10)Spring3.X, MyBatis, Hibernate실무과정
(5/11)웹퍼블리싱 마스터
(5/17)개발자를위한PLSQL,SQL튜닝,힌트

주말저녁(18:30~22:20) 개강
(5/17)자바&웹,jQUERY,스프링프레임워크
(5/17)SQL기초에서 Schema Object까지


오늘은 TCP를 이용한 클라이언트 네트웍에 관해 배워 보도록 하겠습니다. 그중에서도 특히 2개의 유용한 클래스 InetAddress, Socket 중 오늘은 InetAddress에 대해 살펴 볼겁니다.

오늘은 TCP를 이용한 클라이언트 네트웍에 관해 배워 보도록 하겠습니다. 그중에서도 특히 2개의 유용한 클래스 InetAddress, Socket 중 오늘은 InetAddress에 대해 살펴 볼겁니다.


TCP 를 사용한 Client Network

• TCP 는 IP 를 지원하는 네트웍 위에 가상의 스트림 연결 상태를 만들어 놓은 프로토콜
• TCP 연결을 수행할 목적지의 주소를 지정할 때 사용 하는 IP 주소는 InetAddress 클래스로 처리하고 , 실제로 서버에 TCP 로 연결할때는 Socket 클래스를 이용한다 .
• 일단 연결이 된 후에는 이 연결된 소켓을 사용하여 Remote Server 로의 스트림을 얻은 다음 이 스트림 인터 페이스를 이용해 데이터를 보내고 받는다 .


InetAddress 클래스

• represents an Internet Protocol (IP) address.
• TCP는 IP를 지원하는 네트웍 위에 가상의 스트림 연 결 상태를 만들어 놓은 프로토콜
• TCP 연결을 수행할 목적지의 주소를 지정할 때 사 용하는 IP주소는 InetAddress 클래스로 처리하고, 실 제로 서버에 TCP로 연결할때는Socket 클래스를 이 용한다.
• 일단 연결이 된 후에는 이 연결된 소켓을 사용하여 Remote Server로의 스트림을 얻은 다음 이 스트림 인터페이스를 이용해 데이터를 보내고 받는다.
• Address Types
- unicast : 하나의 송신자가 다른 하나의 수신자로 데이터 를 전송하는 방식, 일반적인 인터넷 응용프로 그램이 모두 유니캐스트 방식을 사용하고 있다.
- multicast : 하나 이상의 송신자들이 특정한 하나 이상의 수신자들에게 데이터를 전송하는 방식으로 인 터넷 화상 회의 등의 응용에서 사용한다.
- broadcast : 하나의 송신자가 같은 서브네트웍 상 의 모든 수신자에게 데이터를 전송하는 방식이다
• 그룹 통신을 위하여 다중 수신자들에게 동일한 데이 터를 전송하고자 할 경우 유니캐스트 전송방식을 이 용한다면 전송하고자 하는 데이터 패킷 을 다수의 수 신자에게 각각 여러 번 전송해야 하며, 이러한 동일한 패킷의 중복전송으로 인해 네트웍 효율이 저하된다. 또한 수신자 수가 증가할 경우 이러한 문제점은 더 커 지게 된다. 반면 멀티캐스트 전송이 지원되면 송신자는 여러 수 신자에게 한 번에 메시지 가 전송되도록 하여, 데이터 의 중복전송으로 인한 네트웍 자원의 낭비를 최소화 할 수 있게 된다.

[예제]

주석으로 막은것도 풀어가면서 출력해 보시기 바랍니다.
import java.net.InetAddress;
public class SimpleDNS {
public static void main(String args[]) throws Exception {
InetAddress address = InetAddress.getByName(args[0]);
//the highest order byte of the address is in IP[0].
byte IP[] = address.getAddress();
int addr=0;
System.out.println("IP.length : " + IP.length);
for (int index = 0; index < IP.length; index++) {>
if (index > 0) System.out.print(".");
//부호있는 바이트 데이터를 부호없는 0~255사이의 수로 바꾸기 위한것
if ((int)IP[index]<0)>
{
addr = IP[index] + 256;
}
else {
addr = IP[index];
}

//System.out.print(Integer.toBinaryString((int)IP[index]));
//System.out.print(new Byte(IP[index]).toString());
//System.out.print(((int)IP[index]));
System.out.print(addr);
//System.out.print(((int)IP[index])& 0xff); //이방법도 가능...
}
System.out.println();
}
}
[결과]
---------- java ----------
IP.length : 4
211.171.255.22

오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)

평일주간(9:30~18:20) 개강
(5/12)C#4.0,ADO.NET,Network 프로그래밍
(5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(5/12)안드로이드개발자과정
(5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/26)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(5/07)Spring3.X, MyBatis, Hibernate실무과정
(5/09)웹퍼블리싱 마스터
(5/09)JAVA&WEB프레임워크실무과정
(5/09)SQL초보에서실전전문가까지
(5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(5/16)C#,ASP.NET마스터
(5/19)안드로이드개발자과정
(5/20)개발자를위한PLSQL,SQL튜닝,힌트

주말(10:00~17:50) 개강
(5/03)안드로이드개발자과정
(5/03)C#,ASP.NET마스터
(5/03)JAVA&WEB프레임워크실무과정
(5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/10)닷넷실무자를위한WPF개발자과정
(5/10)SQL초보에서실전전문가까지
(5/10)Spring3.X, MyBatis, Hibernate실무과정
(5/11)웹퍼블리싱 마스터
(5/17)개발자를위한PLSQL,SQL튜닝,힌트

주말저녁(18:30~22:20) 개강
(5/17)자바&웹,jQUERY,스프링프레임워크
(5/17)SQL기초에서 Schema Object까지

[JAVA NETWORK URL]자바에서 URL 다루기(JAVA URL), 자바네트워크 공부잘하세요, 네트워크프로그래밍은 개발의 꽃입니다.

[JAVA NETWORK URL]자바에서 URL  다루기(JAVA URL), 자바네트워크 공부잘하세요, 네트워크프로그래밍은 개발의 꽃입니다.
 
이번 시간에는 자바를 이용하여 URL을 다루는 방법에 대해 살펴 보도록 하겠습니다.
 
요즘은 거의 인터넷을 사용한다고 하니 프로그램을 통해 HTTP를 핸들링해야 하는 경우가 가끔식 있을 겁니다.
 
URL을 다루기 위한 가장 기본적인 클래스는 java.net.URL 클래스 입니다.
 
우선 URL에 대해 잠시 알아 보면 URL은 Uniform Resource Locator의 첫글짜를 딴것으로 인터넷상의 자원에 대해 참조하기 위해 만들어 진것 입니다. 아래와 같은 구조를 가지구요...
URL 클래스의 생성자는 다음과 같습니다. 아래에서 80은 포트 입니다.

new URL("http://www.onjprogramming.co.kr:80/");
new URL("http", "www.onjprogramming.co.kr", "/index.html");
new URL("http", "www.onjprogramming.co.kr", 80, "pages/index.html");
 
또한 URL 클래스는 Write-Once Class 입니다.단지 URL 클래스를 만들수 있을 뿐이지 나중에 속성(포트, 파일이름, 호스트이름)을 변경 하는 것은 불가능 합니다.
 
다음은 몇가지 메소드 입니다.
 
public String getProtocol() : Returns the protocol identifier component of the URL.
public String getHost() : Returns the host name of the URL.
public int getPort() : Returns the port number component of the URL.
public String getFile() : Returns the filename of the URL.
public Object getContent()
Gets the contents of this URL
public Object getContent(Class[] classes)
Gets the contents of this URL
 
매개변수로 들어온 class의 인스턴스로 만들어진 자바의 URL 객체 컨텐츠를 반환한다. 클래스가 지원되지 않는 경우는 null 반환한다.이 메소드를 호출한 쪽에서 어떻게 content를 인코딩 할지를 조절 할 수 있다. 예를들면 현재의 URL은 HTML 웹페이지의 인코딩을 String, HTML객체, InputStream 타입으로 수행할 수 있도록 지원하고 있는데 이때 URL 리소스를 문자열로 인코딩하여 받고 싶다면 이 메소드에 String.class를 넘기면 되고 , 스트림으로 인코딩 하여 받고 싶다면 InputStream.class를 넘기면 된다. 즉 이 메소드는 주어진 URL에서 여러가지 컨텐트 인코딩을 지원하는 경우에 쓸모가 있다. public Object getContent() 의 경우 반환되는 content의 type은 해당 컨텐츠에 달려 있다. 만약 URL이 어떤 이미지를 가리키고 있다면 반환되는 타입은 Image 가 될것 입니다.
아래의 예제를 작성하고 실행해 보죠~
 
 
import java.io.*;
import java.net.*;
class URLInfoTest{
public static void main(String[] args) throws Exception {
try{
URL aURL = new URL("http", www.daum.net, 80 , "/index.html");
System.out.println("protocol name:" + aURL.getProtocol());
System.out.println("host name:" + aURL.getHost());
System.out.println("file name:" + aURL.getFile());
//생성자에서 port가 set되는 경우에 표시, 아니면 -1
System.out.println("port name:" + aURL.getPort());
//HTML 문서 내부의 위치를 지정하는 태그의 값을 구한다.
System.out.println("ref : "+aURL.getRef());
BufferedReader br = new BufferedReader(new InputStreamReader(aURL.openStream()));
String line;
while((line = br.readLine()) != null) {
System.out.println(line);
}
}
catch(MalformedURLException e) {
System.out.println("MalformedURLException : "+e);
}
catch(IOException e) {
System.out.println("IOException :"+ e);
}
}
}
위에서 나온 aURL.openStream() 메소드는 기본형이 아래와 같습니다. 하는일은 URL에서 내용을 읽기 위한 관(스트림)을 만드는 거죠...
? public final InputStream openStream() throws IOException
? Opens a connection to this URL and returns an InputStream for reading from that connection.
? This method is a shorthand for openConnection().getInputStream()
www.onjprogramming.co.kr의 index.html의 내용을 받아오는 예제 입니다. 결과는 대충 아래와 같이 나올겁니다.

---------- java ----------
protocol name:http
host name:www.onjprogramming.co.kr
file name:/index.html
port name:80
ref : null

오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 
오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)

평일주간(9:30~18:20) 개강
(5/12)C#4.0,ADO.NET,Network 프로그래밍
(5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(5/12)안드로이드개발자과정
(5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/26)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(5/07)Spring3.X, MyBatis, Hibernate실무과정
(5/09)웹퍼블리싱 마스터
(5/09)JAVA&WEB프레임워크실무과정
(5/09)SQL초보에서실전전문가까지
(5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(5/16)C#,ASP.NET마스터
(5/19)안드로이드개발자과정
(5/20)개발자를위한PLSQL,SQL튜닝,힌트

주말(10:00~17:50) 개강
(5/03)안드로이드개발자과정
(5/03)C#,ASP.NET마스터
(5/03)JAVA&WEB프레임워크실무과정
(5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/10)닷넷실무자를위한WPF개발자과정
(5/10)SQL초보에서실전전문가까지
(5/10)Spring3.X, MyBatis, Hibernate실무과정
(5/11)웹퍼블리싱 마스터
(5/17)개발자를위한PLSQL,SQL튜닝,힌트

주말저녁(18:30~22:20) 개강
(5/17)자바&웹,jQUERY,스프링프레임워크
(5/17)SQL기초에서 Schema Object까지




2014년 4월 29일 화요일

[JSP/Servlet 강좌, URL Rewrite, URL다시쓰기, Java Servlet]Session, Cookie

[JSP/Servlet 강좌, URL Rewrite, URL다시쓰기, Java Servlet]Session, Cookie
 

사용자가 웹브라우저에 쿠키를 사용하지 못하게 했을때 쿠키를 이용한 세션트래킹은 불가능, 이때 URL Rewriting을 이용한다.
 
Explorer : 도구/인터넷옵셥 메뉴에서 개인정보 부분...."쿠키사용하지않음"으로 설정
Netscape : Edit/Preference메뉴에서 Acvanced에서 Cookie부분을 Disable cookies로 setting
 
<Form> Tag을 기술하는 부분에 인코딩된 SessionID를 포함하는 Action URL을 설정해야 한다. 이때 HttpServletResponse의 encodeURL함수를 사용한다.

Session ID의 노출이라는 보안상의 위험이 있다.

- public class HttpServletResponse.encodeUrl(String Url)
 
    지정된 URL이 세션ID를 포함하도록 암호화한후 새로운 URL을 Return,암호화가 필요없거나 지원안한다면 URL은 변경되지 않는다. 서블릿에서 만들어 지는 모든 URL은 이 메소드를 통해 수행되어야 한다.

    예)res.encodeUrl(req.getRequestURI())
 
- public class HttpServletResponse.encodeRedirectUrl(String Url)
 
    지정된 URL이 세션ID를 포함하도록 암호화한후 새로운 URL을 Return,암호화가 필요없거나 지원안한다면 URL은 변경되지 않는다.HttpServletResponse의 sendRedirect() 메소드로 Return되는 모든 URL은 이 메소드로 수행되어야 한다.

   res.sendRedirect(res.encodeRedirectUrl (“/servlet/URLRedirect”))
 

[URLRewriting.html]
 
<html>
<body>
<font size=+1 color=blue><b>Login to the Personal Information Server</b></font>
<hr>
<form method=post action=http://localhost/servlet/URLRewriting>
<table border=0>
<tr><td>Your ID   </td><td><input type=text name=USER></td></tr>
<tr><td>Password  </td><td><input type=password name=PASSWORD></td></tr>
<tr><td colospan=2><input type=submit value=Login></td></tr>
</table>
</form>
</body>
</html>

[URLRewriting.java]
 
//Other Page를 누를때 URL이 어떻게 넘어 가는지 Test하는 예제
//웹브라우저에 쿠키를 받게 Setting되어 있다면 Cookie를 통해서 Session ID등이
//전송되나 쿠키를 안받게 Setting되어 있다면 URL뒤에 sesison ID등이 붙어서 넘어가제 되어있다.
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class URLRewriting extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res)
  throws ServletException,IOException {
  doPost(req,res);
 }
 public void doPost(HttpServletRequest req, HttpServletResponse res)
  throws ServletException, IOException { 
  res.setContentType("text/html; charset=euc-kr");
  PrintWriter out = res.getWriter(); 
  //세션을 생성, 없으면 새로만듬
  HttpSession sess = req.getSession();
  String user=req.getParameter("USER");
  String pWord=req.getParameter("PASSWORD");
 
  //세션에 데이터 Put
  sess.putValue(user,pWord);
  out.println("<body><head><title>URLRewriting Servlet</title></head><body>");
  out.println("<font size=+1 color=blue><b>URLRewriting Servlet</b></font>");
  out.println("<hr>");
                 out.println("Session ID : " + sess.getId()+"<br>");
  out.println("Creation Time : "+ new Date(sess.getCreationTime())+"<br>");
  out.println("Last Accessed Time : "+new Date(sess.getLastAccessedTime())+"<br>");  out.println("isRequestedSessionIdFromUrl : "+req.isRequestedSessionIdFromUrl()+"<br>”);  out.println("isRequestedSessionIdFromCookie : "+req.isRequestedSessionIdFromCookie()+"<br>");
  out.println("<hr><p>");
  out.println("<b>Login Information</b><br>");
  out.println("Your id : "+ user+"<br>");
  out.println("Your password : "+pWord+"<br>"); 
  out.println("<p><br>"); 
        //일반적인 URL 링크
  out.println("1. <a href=http://localhost/servlet/OtherPage>OtherPage(일반적인  URL링크)></a><br>");
                 //encodeURL() URL에 SesisonID를 덧붙여전송
  //(쿠키를 안받게 브라우저를 Setting시 URL뒤에 session id를 붙여넘김)
  out.println("2. <a href="+res.encodeURL("OtherPage")+">OtherPage(encodeUrl)</a><br>");
  //encodeRedirectURL() 괄호안에 sendRedirect(Url)이나 절대URL경로를 기술
  //(쿠키를 안받게 브라우저를 Setting시 URL뒤에 session id를 붙여넘김)
  out.println("3. <a href="+res.encodeRedirectUrl("http://localhost/servlet/OtherPage")+">Other Page(encodedRdirectUrl)</a><br>");
  //session.getId() method로 URL뒤에 임의로 Session ID를 붙임
  out.println("4. <a href=http://localhost/servlet/OtherPage;$sessionid$"+sess.getId()+">Other Page(일반적인 URL링크+session ID)</a><br>");
  out.println("</body></html>");
  out.close();
 }
};
 
[OtherPage.java]
 
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class OtherPage extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res)
  throws ServletException, IOException {
  res.setContentType("text/html; charset=euc-kr");
  PrintWriter out = res.getWriter();
 
  //세션생성 있으면 그세션을 넘기고, 없으면 Null을 넘김
  HttpSession sess = req.getSession(false);
                  out.println("<html><head><title>OtherPage Servlet</title></head><body>");
  out.println("<font size=+1 color=blue><b>OtherPage Servlet</b></font><hr>");
                 if(sess==null) {
                   //세션이 성립되어 있지 않은 경우
   out.println("<font size=-1 color=blue>먼저 LogIn을 하세요(세션이 성립되어 있지 않습니다.)</font><br>");
  } else {
   out.println("Session ID : "+sess.getId()+"<br>");
   String key[]=sess.getValueNames();  
   out.println(key[0]+"!!! Welcome to my site.");
   out.println("<br>session # : "+key.length+"<br>");
  }  out.println("isRequestedSessionIdFromUrl : "+req.isRequestedSessionIdFromUrl()+"<br>");       out.println("isRequestedSessionIdFromCookie : "+req.isRequestedSessionIdFromCookie()+"<br>");
 }
};
 
 




[그림]URL Rewrite, URL다시쓰기 결과  


오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)

평일주간(9:30~18:20) 개강
(5/12)C#4.0,ADO.NET,Network 프로그래밍
(5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(5/12)안드로이드개발자과정
(5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/26)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(5/07)Spring3.X, MyBatis, Hibernate실무과정
(5/09)웹퍼블리싱 마스터
(5/09)JAVA&WEB프레임워크실무과정
(5/09)SQL초보에서실전전문가까지
(5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(5/16)C#,ASP.NET마스터
(5/19)안드로이드개발자과정
(5/20)개발자를위한PLSQL,SQL튜닝,힌트

주말(10:00~17:50) 개강
(5/03)안드로이드개발자과정
(5/03)C#,ASP.NET마스터
(5/03)JAVA&WEB프레임워크실무과정
(5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/10)닷넷실무자를위한WPF개발자과정
(5/10)SQL초보에서실전전문가까지
(5/10)Spring3.X, MyBatis, Hibernate실무과정
(5/11)웹퍼블리싱 마스터
(5/17)개발자를위한PLSQL,SQL튜닝,힌트

주말저녁(18:30~22:20) 개강
(5/17)자바&웹,jQUERY,스프링프레임워크
(5/17)SQL기초에서 Schema Object까지

[오라클자바네트워크]네트워크이론,개념,UDP(User Diagram Protocol), 자바네트워크프로그램,Java Network열공하세요~ 자바네트워크강좌추천!@

[오라클자바네트워크]네트워크이론,개념,UDP(User Diagram Protocol), 자바네트워크프로그램,Java Network열공하세요~ 자바네트워크강좌추천!@

UDP는 응용프로그램에서 직접 데이터그램을 전송하기 위해 사용되며 IP가 제공하는 서비스와 유사하다. 그리고, 단순히 데이터를 보내기만 하기 때문에 프로토콜 오버헤드가 상당히 작다(즉, 신뢰적인 통신을 보장하지 않기 때문에 데이터그램이 잘 도착했는지 확인할 필요도 없으며 재전송할 필요도 없다).

TCP의 대안이며, IP와 함께 쓰일 때에는 UDP/IP라고 표현하기도 한다. TCP와 마찬가지로 UDP도 한 컴퓨터에서 다른 컴퓨터로 데이터그램 이라고 불리는 실제 데이터 단위를 받기 위해 IP를 사용한다. 그러나 UDP는 TCP와는 달리, 메시지를 패킷(데이터그램)으로 나누고, 반대편에서 재조립하는 등의 서비스는 제공하지 않으며, 특히 도착하는 데이터 패킷들의 순서를 제공하지 않는다
UDP는 신뢰할 수 있는 종점간 데이터 송수신을 보장하지 않으므로 파일 전송, 메일 서비스 등에는 적합하지 않다.

 ▶ 도메인 네임(domain name) 등 한 패킷의 송수신으로 어떤 서비스가 이루어지는 경우에 많이 사용된다.

 ▶ LAN과 같이 전송 오류가 거의 없고 패킷의 전달 순서가 바뀌지 않는 환경에서는 TCP보다 처리 속도가 빠른 UDP가 유리할 수 있다.


 ▶ LAN에서 제공되는 NFS(Network File System)는 UDP를 사용한다.
연결을 설정하지 않고 데이터를 보내고 그 데이터가 제대로 갔는지 여부에 대해 전혀 신경 쓰지 않는 비연결(connection-less)

오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)

평일주간(9:30~18:20) 개강
(5/12)C#4.0,ADO.NET,Network 프로그래밍
(5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(5/12)안드로이드개발자과정
(5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/26)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(5/07)Spring3.X, MyBatis, Hibernate실무과정
(5/09)웹퍼블리싱 마스터
(5/09)JAVA&WEB프레임워크실무과정
(5/09)SQL초보에서실전전문가까지
(5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(5/16)C#,ASP.NET마스터
(5/19)안드로이드개발자과정
(5/20)개발자를위한PLSQL,SQL튜닝,힌트

주말(10:00~17:50) 개강
(5/03)안드로이드개발자과정
(5/03)C#,ASP.NET마스터
(5/03)JAVA&WEB프레임워크실무과정
(5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/10)닷넷실무자를위한WPF개발자과정
(5/10)SQL초보에서실전전문가까지
(5/10)Spring3.X, MyBatis, Hibernate실무과정
(5/11)웹퍼블리싱 마스터
(5/17)개발자를위한PLSQL,SQL튜닝,힌트

주말저녁(18:30~22:20) 개강
(5/17)자바&웹,jQUERY,스프링프레임워크
(5/17)SQL기초에서 Schema Object까지

[jquery교육,제이쿼리열공하세요]jQuery 문서 객체에서 특정 태그를 선택하는 방법 find, parseXML

[jquery교육,제이쿼리열공하세요]jQuery 문서 객체에서 특정 태그를 선택하는 방법 find, parseXML

find() : 태그찾는 메소드
               parseXML() 메서드를 사용해 문자열을 XML 문서 객체로
 
<html>
<head>
<meta charset="utf-8"/>
<script src="/ajaxjquery/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
var xml = "";
xml += "<onjs>";
xml += "   <onj>";
xml += "<tel>851-4790</tel>";
xml += "<name>오엔제이프로그래밍실무학원</name>";
xml += "   </onj>";
xml += "   <onj>";
xml += "<tel>851-4791</tel>";
xml += "<name>오엔제이시스템즈</name>";
xml += "   </onj>";
xml += "</onjs>“;
var xmlDoc = $.parseXML(xml);
$(document).ready(function() {
$(xmlDoc).find("onj").each(function (index) {
//text()이용 테그 내부내용가지고옴
var out = "";
out += "<div>";
out += "<h3>" + $(this).find("tel").text() + "</h3>";
out += "<h3>" + $(this).find("name").text() + "</h3>";
out += "</div>";
document.body.innerHTML += out;
});
});
</script>
<body>   
</body></html>
 


오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)

평일주간(9:30~18:20) 개강
(5/12)C#4.0,ADO.NET,Network 프로그래밍
(5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(5/12)안드로이드개발자과정
(5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/26)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(5/07)Spring3.X, MyBatis, Hibernate실무과정
(5/09)웹퍼블리싱 마스터
(5/09)JAVA&WEB프레임워크실무과정
(5/09)SQL초보에서실전전문가까지
(5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(5/16)C#,ASP.NET마스터
(5/19)안드로이드개발자과정
(5/20)개발자를위한PLSQL,SQL튜닝,힌트

주말(10:00~17:50) 개강
(5/03)안드로이드개발자과정
(5/03)C#,ASP.NET마스터
(5/03)JAVA&WEB프레임워크실무과정
(5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/10)닷넷실무자를위한WPF개발자과정
(5/10)SQL초보에서실전전문가까지
(5/10)Spring3.X, MyBatis, Hibernate실무과정
(5/11)웹퍼블리싱 마스터
(5/17)개발자를위한PLSQL,SQL튜닝,힌트

주말저녁(18:30~22:20) 개강
(5/17)자바&웹,jQUERY,스프링프레임워크
(5/17)SQL기초에서 Schema Object까지

[아작스, Ajax교육]ajax XMLHttpRequest의 개요(ajax 강좌),비동기서버전송 공부열심히...

[아작스, Ajax교육]ajax XMLHttpRequest의 개요(ajax 강좌),비동기서버전송 공부열심히...

XMLHttpRequest의 개요

MS(마이크로 소프트)는 Internet Explorer(IE)가 자바스크립트로부터 XML을 불러올 수 있도록 XMLHttpRequest를 설계.
XMLHttpRequest객체는 현재 대부분의 브라우저에 내장되어 있는 객체이다.
W3C 의 표준이 아니므로, IE에서는 ActiveX Component 형식으로 구현되었고, 다른 브라우저들(FireFox, Safari, Opera)은 native javascript 객체로 구현.
XMLHttpRequest는 실제로 자바스크립트에 대한 일반적인 HTTP 클라이언트 이기 때문에 GET과 POST HTTP 요청을 서버에 할 수 있다.
클라이언트와 서버간의 통신을 담당하는 객체.

XMLHttpRequest는 간단한 API와 몇 가지 메서드와 속성들을 제공한다. 그러나 브라우저간의 차이점이 존재하기 때문에 “Cross-Brower”(브라우저의 종류에 관계없이 동작) 부분을 생각할 필요가 있다.
내용의 변경 없이 새로운 컨텐츠를 불러올 수 있다.
Javascript로 동기 방식의 호출을 할 수 있다.

XMLHttpRequest 객체 생성
Internet Explorer ActiveXObject
IE는 ActiveXObject를 사용해서 서버와 통신하며 2가지 객체가 있다
Msxml2.XMLHTTP
Microsoft.XMLHTTP
Msxml2.XMLHTTP는 IE 5.0 이후의 버전이고 Microsoft.XMLHTTP는 IE 5.0이전 버전이다.
가능한 두 종류를 보장해서 XMLHttpRequest를 정의할 필요가 있다. 왜냐하면 “Microsoft.XMLHTTP”를 사용하지 않는 다는 보장을 할 수 없기 때문이다.

if (window.ActiveXObject) { //IE
    try {
        return new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        try {
     return new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
     return null;
 }
    }
}

Internet Explorer ActiveXObject 이외

IE 이외 브라우저를 사용하여 애플리케이션을 실행하면 XMLHttpRequest 객체가 생성되지만, IE 브라우저로 애플리케이션을 실행하면 XMLHttpRequest 객체가 생성되지 않는다.
XMLHttpRequest 객체 생성 예
 
if (window.XMLHttpRequest) { //IE 이외(FireFox, Opera등)
    try {
        return new XMLHttpRequest()
    } catch(e) {
        return null;
    }
}



오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)

평일주간(9:30~18:20) 개강
(5/12)C#4.0,ADO.NET,Network 프로그래밍
(5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(5/12)안드로이드개발자과정
(5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/26)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(5/07)Spring3.X, MyBatis, Hibernate실무과정
(5/09)웹퍼블리싱 마스터
(5/09)JAVA&WEB프레임워크실무과정
(5/09)SQL초보에서실전전문가까지
(5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(5/16)C#,ASP.NET마스터
(5/19)안드로이드개발자과정
(5/20)개발자를위한PLSQL,SQL튜닝,힌트

주말(10:00~17:50) 개강
(5/03)안드로이드개발자과정
(5/03)C#,ASP.NET마스터
(5/03)JAVA&WEB프레임워크실무과정
(5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/10)닷넷실무자를위한WPF개발자과정
(5/10)SQL초보에서실전전문가까지
(5/10)Spring3.X, MyBatis, Hibernate실무과정
(5/11)웹퍼블리싱 마스터
(5/17)개발자를위한PLSQL,SQL튜닝,힌트

주말저녁(18:30~22:20) 개강
(5/17)자바&웹,jQUERY,스프링프레임워크
(5/17)SQL기초에서 Schema Object까지

MV_CAPABILITIES_TABLE 테이블을 이용한 Mview refresh모드 확인하기, 오라클자바커뮤니티 오라클강좌교육, 구로디지털단지

MV_CAPABILITIES_TABLE 테이블을 이용한 Mview refresh모드 확인하기, 오라클자바커뮤니티 오라클강좌교육, 구로디지털단지

MVIEW는 DBS_SEGMENT를 통해 확인가능 하거 MVIEW의 refresh모드는 dba_mview의 last_refresh_type으로 확인할수 있지만 다양한 상태에 대해서 확인이 불가능하다. 
오라클에서 제공하는 MV_CAPABILITIES_TABLE를 이용하면 Mview의 다양한 상태가 확인가능 하다.

SQL> @E:\app\A\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlxmv.sql

테이블이 생성되었습니다.

SQL>      CREATE MATERIALIZED VIEW LOG ON emp  WITH PRIMARY KEY, ROWID
  2    INCLUDING NEW VALUES;

구체화된 뷰 로그가 생성되었습니다.

SQL>  CREATE MATERIALIZED VIEW dept_sal
     BUILD IMMEDIATE 
     REFRESH
     COMPLETE       
     ON DEMAND      
     ENABLE QUERY REWRITE
     AS
     SELECT SUM(a.sal), a.deptno
     FROM emp a, dept b
     WHERE a.deptno = b.deptno
     GROUP BY a.deptno;

구체화된 뷰가 생성되었습니다.


SQL> col mvname format a15
SQL> col capability_name format a20
SQL> col rel_text format a10
SQL> col msgtxt format a10

SQL> SELECT mvname, capability_name, possible, SUBSTR(related_text,1,8) AS rel_text
  2  , SUBSTR(msgtxt,1,60) AS msgtxt
  3  FROM MV_CAPABILITIES_TABLE
  4  where MVNAME='DEPT_SAL'


DEPT_SAL PCT N
DEPT_SAL REFRESH_COMPLETE Y
DEPT_SAL REFRESH_FAST N
DEPT_SAL REWRITE Y
DEPT_SAL PCT_TABLE N EMP 관계는 분할된 테이블이 아님
DEPT_SAL PCT_TABLE N DEPT 관계는 분할된 테이블이 아님
DEPT_SAL REFRESH_FAST_AFTER_INSERT N SCOTT.EM 세부 정보 테이블에 구체화된 뷰 로그가 없음
DEPT_SAL REFRESH_FAST_AFTER_INSERT N SCOTT.DE 세부 정보 테이블에 구체화된 뷰 로그가 없음
DEPT_SAL REFRESH_FAST_AFTER_ONETAB_DML N SUM(A.SA COUNT(표현식) 없는 SUM(표현식)
DEPT_SAL REFRESH_FAST_AFTER_ONETAB_DML N REFRESH_FAST_AFTER_INSERT가 사용 안함으로 설정된 이유를 참조하십시오.
DEPT_SAL REFRESH_FAST_AFTER_ONETAB_DML N COUNT(*)가 선택 목록에 없음
DEPT_SAL REFRESH_FAST_AFTER_ONETAB_DML N COUNT(표현식) 없는 SUM(표현식)
DEPT_SAL REFRESH_FAST_AFTER_ANY_DML N REFRESH_FAST_AFTER_ONETAB_DML이 사용 안함으로 설정된 이유를 참조하십시오.
DEPT_SAL REFRESH_FAST_PCT N PCT가 구체화된 뷰의 모든 세부 정보 테이블에서 불가능함
DEPT_SAL REWRITE_FULL_TEXT_MATCH Y
DEPT_SAL REWRITE_PARTIAL_TEXT_MATCH Y
DEPT_SAL REWRITE_GENERAL Y
DEPT_SAL REWRITE_PCT N 세부 정보 테이블에서 일반적인 재작성 또는 PCT가 불가능함
DEPT_SAL PCT_TABLE_REWRITE N EMP 관계는 분할된 테이블이 아님
DEPT_SAL PCT_TABLE_REWRITE N DEPT 관계는 분할된 테이블이 아님



오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)

평일주간(9:30~18:20) 개강
(5/12)C#4.0,ADO.NET,Network 프로그래밍
(5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(5/12)안드로이드개발자과정
(5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/26)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(5/07)Spring3.X, MyBatis, Hibernate실무과정
(5/09)웹퍼블리싱 마스터
(5/09)JAVA&WEB프레임워크실무과정
(5/09)SQL초보에서실전전문가까지
(5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(5/16)C#,ASP.NET마스터
(5/19)안드로이드개발자과정
(5/20)개발자를위한PLSQL,SQL튜닝,힌트

주말(10:00~17:50) 개강
(5/03)안드로이드개발자과정
(5/03)C#,ASP.NET마스터
(5/03)JAVA&WEB프레임워크실무과정
(5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/10)닷넷실무자를위한WPF개발자과정
(5/10)SQL초보에서실전전문가까지
(5/10)Spring3.X, MyBatis, Hibernate실무과정
(5/11)웹퍼블리싱 마스터
(5/17)개발자를위한PLSQL,SQL튜닝,힌트

주말저녁(18:30~22:20) 개강
(5/17)자바&웹,jQUERY,스프링프레임워크
(5/17)SQL기초에서 Schema Object까지

[JAVA JCF,자료구조클래스]자바자료구조[Map,TreeMap, SortedMap], Map의 키정렬,자바강좌열심히,공부열심히...

[JAVA JCF,자료구조클래스]자바자료구조[Map,TreeMap, SortedMap], Map의 키정렬,자바강좌열심히,공부열심히...


Map은 key, value쌍으로 자료를 가지고 있는 자료구조 인터페이스이다. 
Map중 key값이 정렬된 것이 SortedMap 인터페이스인데 이를 구현한것이 TreeMap이다.

아래 예제를 보자.

package onj;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;

public class JCFTest {
public static void main(String[] args) {
SortedMap<Integer, String> sm = new TreeMap<Integer, String>();

sm.put(new Integer(3), "Three");
sm.put(new Integer(1), "One");
sm.put(new Integer(2), "Two");

//-----------------------------------------------------
Set s = sm.entrySet();
// Using iterator in SortedMap
Iterator i = s.iterator();

while (i.hasNext()) {
Map.Entry m = (Map.Entry) i.next();
int key = (Integer) m.getKey();
String value = (String) m.getValue();
System.out.println("Key :" + key + "  value :" + value);
}
//-----------------------------------------------------

System.out.println("=========================================");

for (Map.Entry<Integer, String> entry : sm.entrySet()) {
System.out.println("Key: " + entry.getKey() + "-"
+ entry.getValue());
}
}
}


[결과]

Key :1  value :One
Key :2  value :Two
Key :3  value :Three
=========================================
Key: 1-One
Key: 2-Two
Key: 3-Three



오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)

평일주간(9:30~18:20) 개강
(5/12)C#4.0,ADO.NET,Network 프로그래밍
(5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(5/12)안드로이드개발자과정
(5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/26)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(5/07)Spring3.X, MyBatis, Hibernate실무과정
(5/09)웹퍼블리싱 마스터
(5/09)JAVA&WEB프레임워크실무과정
(5/09)SQL초보에서실전전문가까지
(5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(5/16)C#,ASP.NET마스터
(5/19)안드로이드개발자과정
(5/20)개발자를위한PLSQL,SQL튜닝,힌트

주말(10:00~17:50) 개강
(5/03)안드로이드개발자과정
(5/03)C#,ASP.NET마스터
(5/03)JAVA&WEB프레임워크실무과정
(5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/10)닷넷실무자를위한WPF개발자과정
(5/10)SQL초보에서실전전문가까지
(5/10)Spring3.X, MyBatis, Hibernate실무과정
(5/11)웹퍼블리싱 마스터
(5/17)개발자를위한PLSQL,SQL튜닝,힌트

주말저녁(18:30~22:20) 개강
(5/17)자바&웹,jQUERY,스프링프레임워크
(5/17)SQL기초에서 Schema Object까지

C#에서 싱글톤만드는 방법잘보세요~[닷넷 싱글톤, C#강좌교육학원]C#에서 싱글톤(Singleton) 클래스 만들기예제 강좌, 닷넷강좌 아래 예제 참조 부탁 드립니다. using System; public class Singleton { private static Singleton instance; private Singleton() { } public static Singleton getInstance { get { if (instance == null) { instance = new Singleton(); } return instance; } } public String sayHello() { return "Hello"; } } class Test { static void Main() { Singleton s = Singleton.getInstance; Console.WriteLine(s.sayHello()); } } [출처] 오라클자바커뮤니티 - http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecCsharp&wr_id=174 오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr) 평일주간(9:30~18:20) 개강 (5/12)C#4.0,ADO.NET,Network 프로그래밍 (5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 (5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정 (5/12)안드로이드개발자과정 (5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING (5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정 (5/26)[기업100%환급]SQL기초에서 Schema Object까지 평일야간(19:00~21:50) 개강 (5/07)Spring3.X, MyBatis, Hibernate실무과정 (5/09)웹퍼블리싱 마스터 (5/09)JAVA&WEB프레임워크실무과정 (5/09)SQL초보에서실전전문가까지 (5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정 (5/16)C#,ASP.NET마스터 (5/19)안드로이드개발자과정 (5/20)개발자를위한PLSQL,SQL튜닝,힌트 주말(10:00~17:50) 개강 (5/03)안드로이드개발자과정 (5/03)C#,ASP.NET마스터 (5/03)JAVA&WEB프레임워크실무과정 (5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지 (5/10)닷넷실무자를위한WPF개발자과정 (5/10)SQL초보에서실전전문가까지 (5/10)Spring3.X, MyBatis, Hibernate실무과정 (5/11)웹퍼블리싱 마스터 (5/17)개발자를위한PLSQL,SQL튜닝,힌트 주말저녁(18:30~22:20) 개강 (5/17)자바&웹,jQUERY,스프링프레임워크 (5/17)SQL기초에서 Schema Object까지

C#에서 싱글톤만드는 방법잘보세요~[닷넷 싱글톤, C#강좌교육학원]C#에서 싱글톤(Singleton) 클래스 만들기예제 강좌, 닷넷강좌

아래 예제 참조 부탁 드립니다.

using System;
public class Singleton
{
    private static Singleton instance;
    private Singleton() { }
    public static Singleton getInstance
    {
        get
        {
            if (instance == null)
            {
                instance = new Singleton();
            }
            return instance;
        }
    }
    public String sayHello() 
    {
        return "Hello";
    }
}
class Test
{
    static void Main()
    {
        Singleton s = Singleton.getInstance;
        Console.WriteLine(s.sayHello());
    }
}

오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr) 평일주간(9:30~18:20) 개강 (5/12)C#4.0,ADO.NET,Network 프로그래밍 (5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 (5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정 (5/12)안드로이드개발자과정 (5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING (5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정 (5/26)[기업100%환급]SQL기초에서 Schema Object까지 평일야간(19:00~21:50) 개강 (5/07)Spring3.X, MyBatis, Hibernate실무과정 (5/09)웹퍼블리싱 마스터 (5/09)JAVA&WEB프레임워크실무과정 (5/09)SQL초보에서실전전문가까지 (5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정 (5/16)C#,ASP.NET마스터 (5/19)안드로이드개발자과정 (5/20)개발자를위한PLSQL,SQL튜닝,힌트 주말(10:00~17:50) 개강 (5/03)안드로이드개발자과정 (5/03)C#,ASP.NET마스터 (5/03)JAVA&WEB프레임워크실무과정 (5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지 (5/10)닷넷실무자를위한WPF개발자과정 (5/10)SQL초보에서실전전문가까지 (5/10)Spring3.X, MyBatis, Hibernate실무과정 (5/11)웹퍼블리싱 마스터 (5/17)개발자를위한PLSQL,SQL튜닝,힌트 주말저녁(18:30~22:20) 개강 (5/17)자바&웹,jQUERY,스프링프레임워크 (5/17)SQL기초에서 Schema Object까지

[닷넷 싱글톤, C#강좌교육학원]C#에서 싱글톤(Singleton) 클래스 만들기예제 강좌

[닷넷 싱글톤, C#강좌교육학원]C#에서 싱글톤(Singleton) 클래스 만들기예제 강좌

아래 예제 참조 부탁 드립니다.

using System;
public class Singleton
{
    private static Singleton instance;
    private Singleton() { }
    public static Singleton getInstance
    {
        get
        {
            if (instance == null)
            {
                instance = new Singleton();
            }
            return instance;
        }
    }
    public String sayHello() 
    {
        return "Hello";
    }
}
class Test
{
    static void Main()
    {
        Singleton s = Singleton.getInstance;
        Console.WriteLine(s.sayHello());
    }
}

오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr) 평일주간(9:30~18:20) 개강 (5/12)C#4.0,ADO.NET,Network 프로그래밍 (5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 (5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정 (5/12)안드로이드개발자과정 (5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING (5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정 (5/26)[기업100%환급]SQL기초에서 Schema Object까지 평일야간(19:00~21:50) 개강 (5/07)Spring3.X, MyBatis, Hibernate실무과정 (5/09)웹퍼블리싱 마스터 (5/09)JAVA&WEB프레임워크실무과정 (5/09)SQL초보에서실전전문가까지 (5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정 (5/16)C#,ASP.NET마스터 (5/19)안드로이드개발자과정 (5/20)개발자를위한PLSQL,SQL튜닝,힌트 주말(10:00~17:50) 개강 (5/03)안드로이드개발자과정 (5/03)C#,ASP.NET마스터 (5/03)JAVA&WEB프레임워크실무과정 (5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지 (5/10)닷넷실무자를위한WPF개발자과정 (5/10)SQL초보에서실전전문가까지 (5/10)Spring3.X, MyBatis, Hibernate실무과정 (5/11)웹퍼블리싱 마스터 (5/17)개발자를위한PLSQL,SQL튜닝,힌트 주말저녁(18:30~22:20) 개강 (5/17)자바&웹,jQUERY,스프링프레임워크 (5/17)SQL기초에서 Schema Object까지

[C#강좌교육,닷넷강좌]C# AND연산자 &, && 예제, 구로디지털단지 C#닷넷교육학원

[C#강좌교육,닷넷강좌]C# AND연산자 &, && 예제, 구로디지털단지 C#닷넷교육학원

using System;

class LogicalAnd
{
    static void Main()
    {
        //Method1이 false라도 Method2 실행
        Console.WriteLine("정상적인 AND:");
        if (Method1() & Method2())
            Console.WriteLine("Both methods returned true.");
        else
            Console.WriteLine("둘중 하나의 메소드는 fasle");

        //Method1이 false면 Method2는 실행 되지 않는다.
        Console.WriteLine("\n Short-circuit AND:");
        if (Method1() && Method2())
            Console.WriteLine("Both methods returned true.");
        else
            Console.WriteLine("둘중 하나의 메소드는 fasle");
    }

    static bool Method1()
    {
        Console.WriteLine("메소드1...");
        return false;
    }

    static bool Method2()
    {
        Console.WriteLine("메소드2...");
        return true;
    }
}
오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)

평일주간(9:30~18:20) 개강
(5/12)C#4.0,ADO.NET,Network 프로그래밍
(5/12)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/12)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(5/12)안드로이드개발자과정
(5/19)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(5/21)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/26)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(5/07)Spring3.X, MyBatis, Hibernate실무과정
(5/09)웹퍼블리싱 마스터
(5/09)JAVA&WEB프레임워크실무과정
(5/09)SQL초보에서실전전문가까지
(5/16)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(5/16)C#,ASP.NET마스터
(5/19)안드로이드개발자과정
(5/20)개발자를위한PLSQL,SQL튜닝,힌트

주말(10:00~17:50) 개강
(5/03)안드로이드개발자과정
(5/03)C#,ASP.NET마스터
(5/03)JAVA&WEB프레임워크실무과정
(5/10)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/10)닷넷실무자를위한WPF개발자과정
(5/10)SQL초보에서실전전문가까지
(5/10)Spring3.X, MyBatis, Hibernate실무과정
(5/11)웹퍼블리싱 마스터
(5/17)개발자를위한PLSQL,SQL튜닝,힌트

주말저녁(18:30~22:20) 개강
(5/17)자바&웹,jQUERY,스프링프레임워크
(5/17)SQL기초에서 Schema Object까지