5.이클립스에서 JSP를 구동하기 위한 환경설정
 1) Tomcat서버 등록.
1.환경설정 - Server-Installed RunTime란에
Tomca이 설치된 경로를 정확히 등록한다.

(비었으면 add로 추가.)

사용자 삽입 이미지
Apache 부분... Apache Tomcat 5.5 선택
사용자 삽입 이미지
설정후.. Browser 에서.. 설치된 경로 선택후. 완료.
사용자 삽입 이미지

2) 프로젝트 생성 Perspectivefmf J2EE로 된 상태에서 Web항목의
Dynamic Web Project를 만든다.
창 >

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

위 전체 설정없이 바로할때...
사용자 삽입 이미지


3)아래의 Server탭 메뉴에 현재의 포르젝트를 등로한다.
사용자 삽입 이미지
사용자 삽입 이미지


4)Server.xml의 편집 : 8080포트는 오라클에서 사용하므로..

Server.xml을 열어 사용포트를 변경한다.
실제위치.. ex)D:\study\java\Project\apache-tomcat-5.5.26\conf.. 이곳에서 설정시 불러오기만함.
ex...)D:\study\java\Project\jspspace\Servers\Tomcat v5.5 Server @ localhost-config.. 프로젝트별로 따로 보관함.
    <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8000" redirectPort="8443"/>

실제 서버모드일경우 ... ex)D:\study\java\Project\apache-tomcat-5.5.26\webapps... 요기에..



사용자 삽입 이미지

Posted by 말없제이
,

1.WinForm
(2단계 : 2티어시스템)

2.JSP(www) -- Java Enterprise Edition
(스트렉쳐? 스피링... ... 프레임으로 역활을 줄일뿐.. JavaBean 대용이 아님.)

Web Form(Enterprise Web Client Program)
(3단계 : 3티어시스템)

익스플로러 ---- 웹서버 ----- 데이터터베이스


3.Enterprise JavaBean
WinForm

Swing 어플리케이션 ---- EJB서버1 ----> DB
                                        EJB서버 여러개...

익스플로러 ---- 웹서버 ----- 데이터터베이스
                          (EJB서버 여러개)

2. 웹서버(웹어플리케이션서버 WAS)
Tomca ---->JSP/Servlet 컨테이너만 탑재된 웹어플리케이션 서버.
(웹로직, 로그스피어 : JSP/Servlet컨터에너 + EJB컨테이너도 탑재
 단점:무겁다, )
Resion(레진) : 윈도우전용.

3. Tomcat
 1)출처 : http://www.apache.org

 4. WTP :
 1)출처 : http://www.eclipse.org/downloads
 -> 이클립스버전에 맞는 플로그인을 꼭 구성해야 하며,
 최신 WTP3.0이상은 eclipse3.4이상으로 요구하며
 2.X버전은 eclipse 3.3대를 지원하며
 1.5버전은 eclipse 3.2를 지원한다.

Posted by 말없제이
,
이클립스의 경로가 오라클경로 보다 뒤쪽에 있어서,
앞쪽으로 이동시키면 해결됨.

"내 컴퓨터" 오른쪽마우스 속성 > "시스템 등록정보"내의 탭 "고급" > "환경변수"  클릭
환경변수 창.. 시스템변수 내의 path 선택후 편집..

Java\jdk1.6.0_06\bin;.. 을 앞쪽으로 붙여넣어 저장.
ex)
C:\Program Files\Java\jdk1.6.0_06\bin;D:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\ESTsoft\ALZip
사용자 삽입 이미지
Posted by 말없제이
,

package ch21;

import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.GridBagLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import java.awt.event.KeyEvent;
import java.awt.Dimension;
import javax.swing.BoxLayout;

public class Ch2102 extends JFrame {

 private static final long serialVersionUID = 1L;

 private JPanel jContentPane = null;

 private JPanel jPanel = null;

 private JButton jButton = null;

 private JButton jButton1 = null;

 private JButton jButton2 = null;

 /**
  * This is the default constructor
  */
 public Ch2102() {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setSize(490, 260);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane() {
  if (jContentPane == null) {
   jContentPane = new JPanel();
   jContentPane.setLayout(new BorderLayout());
   jContentPane.add(getJPanel(), BorderLayout.NORTH);
  }
  return jContentPane;
 }

 /**
  * This method initializes jPanel
  *  
  * @return javax.swing.JPanel
  */
 private JPanel getJPanel() {
  if (jPanel == null) {
   FlowLayout flowLayout = new FlowLayout();
   flowLayout.setAlignment(java.awt.FlowLayout.CENTER);
   jPanel = new JPanel();
   jPanel.setLayout(flowLayout);
   jPanel.add(getJButton(), null);
   jPanel.add(getJButton1(), null);
   jPanel.add(getJButton2(), null);
  }
  return jPanel;
 }

 /**
  * This method initializes jButton
  *  
  * @return javax.swing.JButton
  */
 private JButton getJButton() {
  if (jButton == null) {
   jButton = new JButton();
   jButton.setIcon(new ImageIcon(getClass().getResource("/ch21/button1.jpg")));
   jButton.setRolloverIcon(new ImageIcon(getClass().getResource("/ch21/button4.jpg")));
  }
  return jButton;
 }

 /**
  * This method initializes jButton1
  *  
  * @return javax.swing.JButton
  */
 private JButton getJButton1() {
  if (jButton1 == null) {
   jButton1 = new JButton();
   jButton1.setMnemonic(KeyEvent.VK_UNDEFINED);
   jButton1.setRolloverIcon(new ImageIcon(getClass().getResource("/ch21/button5.jpg")));
   jButton1.setIcon(new ImageIcon(getClass().getResource("/ch21/button2.jpg")));
  }
  return jButton1;
 }

 /**
  * This method initializes jButton2
  *  
  * @return javax.swing.JButton
  */
 private JButton getJButton2() {
  if (jButton2 == null) {
   jButton2 = new JButton();
   jButton2.setIcon(new ImageIcon(getClass().getResource("/ch21/button3.jpg")));
   jButton2.setRolloverIcon(new ImageIcon(getClass().getResource("/ch21/button6.jpg")));
   jButton2.setMnemonic(KeyEvent.VK_UNDEFINED);
  }
  return jButton2;
 }

}  //  @jve:decl-index=0:visual-constraint="10,10"

Posted by 말없제이
,

package ch21;

import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Color;
import java.awt.ComponentOrientation;
import javax.swing.JButton;
import java.awt.Rectangle;
import javax.swing.JLabel;
import javax.swing.border.BevelBorder;

public class Ch2101 extends JFrame {

 private static final long serialVersionUID = 1L;

 private JPanel jContentPane = null;

 private JButton jButton = null;

 private JLabel jLabel = null;

 /**
  * This is the default constructor
  */
 public Ch2101() {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setSize(300, 200);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
  this.setVisible(true);
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane() {
  if (jContentPane == null) {
   jLabel = new JLabel();
   jLabel.setBounds(new Rectangle(176, 46, 75, 38));
   jLabel.setText("JLabel");
   jLabel.setToolTipText("라벌도 적용");
   jLabel.setBorder(new BevelBorder(BevelBorder.RAISED));
   jContentPane = new JPanel();
   jContentPane.setLayout(null);
   jContentPane.setBackground(new Color(238, 129, 238));
   jContentPane.add(getJButton(), null);
   jContentPane.add(jLabel, null);

  }
  return jContentPane;
 }
 /**
  * This method initializes jButton
  *  
  * @return javax.swing.JButton
  */
 private JButton getJButton() {
  if (jButton == null) {
   jButton = new JButton();
   jButton.setBounds(new Rectangle(57, 40, 106, 47));
   jButton.setText("Button");
   jButton.setBorder(new BevelBorder(BevelBorder.RAISED));
   }
  return jButton;
 }

 public static void main(String[] args)
 {
  new Ch2101();
 }
}

Posted by 말없제이
,

Thread 예제 둘..

DevTool/Java 2009. 6. 17. 18:18

package ch15;

import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.GridBagLayout;
import java.awt.FlowLayout;
import javax.swing.JTextField;
import javax.swing.JButton;

public class Clock extends JFrame
{

 private static final long serialVersionUID = 1L;

 private JPanel jContentPane = null;

 private JPanel jPanel = null;

 private JTextField TextClock = null;

 private JButton jButton = null;

 /**
  * This is the default constructor
  */
 public Clock()
 {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize()
 {
  this.setSize(300, 200);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane()
 {
  if (jContentPane == null)
  {
   jContentPane = new JPanel();
   jContentPane.setLayout(new BorderLayout());
   jContentPane.add(getJPanel(), BorderLayout.NORTH);
  }
  return jContentPane;
 }

 /**
  * This method initializes jPanel
  *  
  * @return javax.swing.JPanel
  */
 private JPanel getJPanel()
 {
  if (jPanel == null)
  {
   jPanel = new JPanel();
   jPanel.setLayout(new FlowLayout());
   jPanel.add(getTextClock(), null);
   jPanel.add(getJButton(), null);
  }
  return jPanel;
 }

 /**
  * This method initializes TextClock
  *  
  * @return javax.swing.JTextField
  */
 private JTextField getTextClock()
 {
  if (TextClock == null)
  {
   TextClock = new JTextField();
   TextClock.setColumns(15);
  }
  return TextClock;
 }

 /**
  * This method initializes jButton
  *  
  * @return javax.swing.JButton
  */
 private JButton getJButton()
 {
  if (jButton == null)
  {
   jButton = new JButton();
   jButton.setText("시작");
  }
  return jButton;
 }

}

****** Clocka.java ********
package ch15;

import java.util.Calendar;

public class Clocka
{
 public Clocka()
 {
  // TODO 자동 생성된 생성자 스텁
 }
 
 class Treadmodel extends Thread
 {
  private int i=0;
  @Override
  public void run()
  {
   // TODO 자동 생성된 메소드 스텁
   //super.run();
   for(;;)
   {
    Calendar today = Calendar.getInstance();
    int hour = today.get(Calendar.HOUR);
    int min = today.get(Calendar.MINUTE);
    int sec = today.get(Calendar.SECOND);
    System.out.println(hour+":"+min+":"+sec);
   
    try
    {
 //    Thread클래스를 계승받은것이 아니라 sleep 정적호출
     Thread.sleep(5000);
    }
    catch (InterruptedException e)
    {
     // TODO 자동 생성된 catch 블록
     e.printStackTrace();
    }
   }
  }
 }
 
 public static void main(String[] args)
 {
  new Clocka();
 }
}

Posted by 말없제이
,

package ch15;

import java.util.Calendar;

public class Ch1502 implements Runnable
{
 public Ch1502()
 {
  // TODO 자동 생성된 생성자 스텁
  //Thread 개체변수를 만들고 생성자에 클래스 자기자신을 전달
  Thread t =new Thread(this);
  t.start();
 }
 public static void main(String[] args)
 {
  new Ch1502();
 }
 
 public void run()
 {
  // TODO 자동 생성된 메소드 스텁
  for(;;)
  {
   Calendar today = Calendar.getInstance();
   int hour = today.get(Calendar.HOUR);
   int min = today.get(Calendar.MINUTE);
   int sec = today.get(Calendar.SECOND);
   System.out.println(hour+":"+min+":"+sec);
   
   try
   {
//    Thread클래스를 계승받은것이 아니라 sleep 정적호출
    Thread.sleep(5000);
   } catch (InterruptedException e)
   {
    // TODO 자동 생성된 catch 블록
    e.printStackTrace();
   }
  }
 }

}

Posted by 말없제이
,

package ch15;

public class Ch1501
{
  public Ch1501()
 {
   //쓰레드를 실행해달라고 가상자바머신에 요청
   Treadmodel t = new Treadmodel();
   t.start();

 }
 
 //innerClass로 쓰레드....
 //Thread 클래스를 계승받는 클래스로 thread를 사용..(통신 ..)
  //장점 : 여러개의 쓰레드를 만들어 실행할 수 있는 장점
  //단점 : 멤버변수의 접근에 관한 프로그램처리.
 class Treadmodel extends Thread
 {
  private int i=0;
 
  @Override
  public void run()
  {
   // TODO 자동 생성된 메소드 스텁
   //super.run();
   //무한반복을 해야함.
   
   while(true)
   {
    i++;
    System.out.println("i : "+i);
    //쓰레드의 휴식시간을 시정
    try
    {
     sleep(1000);
    } catch (InterruptedException e)
    {
     // TODO 자동 생성된 catch 블록
     e.printStackTrace();
    }
   }
  }
 }
 
 public static void main(String[] args)
 {
  new Ch1501();
 }
}

Posted by 말없제이
,

package ch19;

import java.awt.BorderLayout;

import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import java.awt.GridBagLayout;
import javax.swing.JLabel;
import java.awt.GridBagConstraints;
import java.awt.FlowLayout;
import java.io.File;
import java.io.IOException;

import javax.swing.JTextField;
import javax.swing.JButton;

public class Ch1904 extends JFrame
{

 private static final long serialVersionUID = 1L;

 private JPanel jContentPane = null;

 private JPanel jPanel1 = null;

 private Ch1904Panel jPanel2 = null;

 private JLabel jLabel = null;

 private JTextField jTextField = null;

 private JButton jButton = null;

 /**
  * This is the default constructor
  */
 public Ch1904()
 {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize()
 {
  this.setSize(573, 341);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane()
 {
  if (jContentPane == null)
  {
   jContentPane = new JPanel();
   jContentPane.setLayout(new BorderLayout());
   jContentPane.add(getJPanel1(), BorderLayout.NORTH);
   jContentPane.add(getJPanel2(), BorderLayout.SOUTH);
  }
  return jContentPane;
 }

 /**
  * This method initializes jPanel1
  *  
  * @return javax.swing.JPanel
  */
 private JPanel getJPanel1()
 {
  if (jPanel1 == null)
  {
   jPanel1 = new JPanel();
   jLabel = new JLabel();
   jLabel.setText("JLabel");
   jPanel1.setLayout(new FlowLayout());
   jPanel1.add(jLabel, null);
   jPanel1.add(getJTextField(), null);
   jPanel1.add(getJButton(), null);
  }
  return jPanel1;
 }

 /**
  * This method initializes jPanel2
  *  
  * @return javax.swing.JPanel
  */
 private Ch1904Panel getJPanel2()
 {
  if (jPanel2 == null)
  {
   GridBagConstraints gridBagConstraints = new GridBagConstraints();
   gridBagConstraints.gridx = 0;
   gridBagConstraints.gridy = 0;

   jPanel2 = new Ch1904Panel();
   jPanel2.setLayout(new GridBagLayout());
   
   
  }
  return jPanel2;
 }

 /**
  * This method initializes jTextField
  *  
  * @return javax.swing.JTextField
  */
 private JTextField getJTextField()
 {
  if (jTextField == null)
  {
   jTextField = new JTextField();
   jTextField.setColumns(35);
  }
  return jTextField;
 }

 /**
  * This method initializes jButton
  *  
  * @return javax.swing.JButton
  */
 private JButton getJButton()
 {
  if (jButton == null)
  {
   jButton = new JButton();
   jButton.setText("열기");
   jButton.addActionListener(new java.awt.event.ActionListener()
   {
    public void actionPerformed(java.awt.event.ActionEvent e)
    {
     // TODO Auto-generated Event stub actionPerformed()
     JFileChooser j=new JFileChooser();
     //파일넣으면 0, 취소는 1;
     //int result = j.showDialog(null, "이미지화일열기");
     //System.out.println(result);
     
     j.showDialog(null, "이미지화일열기");
     
     File file = j.getSelectedFile();
     //파일이 null 일경우 에러남.
     //System.out.println(file.getName());
     if(file != null)
     {
      try
      {
       jPanel2.setImage(file);
      } catch (IOException e1)
      {
       // TODO 자동 생성된 catch 블록
       e1.printStackTrace();
      }
     }
     
    }
   });
   
   
  }
  return jButton;
 }

}  //  @jve:decl-index=0:visual-constraint="10,10"


********     Ch1904Panel.java    **********
package ch19;

import java.awt.Graphics;
import java.awt.GridBagLayout;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class Ch1904Panel extends JPanel
{
 private BufferedImage image;
 
 private static final long serialVersionUID = 1L;

 public void setImage(File file) throws IOException
 {
  image = ImageIO.read(file);
  repaint();
  ImageIO.write(image, "gif", new File("D:\\study\\java\\Project\\sample\\src\\ch19\\button2.jpg"));
 }
 
 @Override
 protected void paintComponent(Graphics g)
 {
  // TODO 자동 생성된 메소드 스텁
  //Swing에서는 기존 그래픽내용 소거하려면
  //상위 클래스의 paintConponent메서드를 재호출해야 한다.
  super.paintComponent(g);
 
  if(image != null)
  {
   g.drawImage(image, 0, 0, this);  
  }
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize()
 {
  this.setSize(300, 200);
  this.setLayout(new GridBagLayout());
 }

}

Posted by 말없제이
,

package ch19;

import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.BoxLayout;

public class Ch1902 extends JFrame
{

 private static final long serialVersionUID = 1L;

 private JPanel jContentPane = null;

 private Ch1902Test jTextArea = null;

 /**
  * This is the default constructor
  */
 public Ch1902()
 {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize()
 {
  this.setSize(300, 200);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane()
 {
  if (jContentPane == null)
  {
   jContentPane = new JPanel();
   jContentPane.setLayout(new BoxLayout(getJContentPane(), BoxLayout.X_AXIS));
   jContentPane.add(getJTextArea(), null);
  }
  return jContentPane;
 }

 /**
  * This method initializes jTextArea
  *  
  * @return javax.swing.JTextArea
  */
 private Ch1902Test getJTextArea()
 {
  if (jTextArea == null)
  {
   jTextArea = new Ch1902Test();
  }
  return jTextArea;
 }

}

*******  Ch1902Test.java      *******
package ch19;

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.*;

import javax.imageio.ImageIO;
import javax.swing.JTextArea;

public class Ch1902Test extends JTextArea
{
 private BufferedImage image;
 
 public Ch1902Test()
 {
  try
  {
   image = ImageIO.read(new File("D:\\study\\java\\Project\\sample\\src\\ch21\\button1.jpg"));
  } catch (IOException e)
  {
   // TODO 자동 생성된 catch 블록
   e.printStackTrace();
  }   
 }
 
 @Override
 protected void paintComponent(Graphics g)
 {
  // TODO 자동 생성된 메소드 스텁
  super.paintComponent(g);
  //g.drawRect(80, 80, 100, 100);
  g.drawImage(image, 0, 0, this);
 }
}

Posted by 말없제이
,