상세 컨텐츠

본문 제목

[세번째] JSP 란?

Java/JSP

by 탑~! 2012. 5. 17. 11:32

본문

*JSP에서 Bean사용

Beans는 일종의 특정한 일을 독립적으로 수행하는 컴포넌트.

GUI어플리케이션에 쉽게 접근할 수 있다. 그렇다고 상속이나 인터페이스를 구현하는 것은 X.

빈즈는 컴포넌트이기 때문에 다른 곳에서 수정하지 않고 재사용이 가능하다.

 

*빈을 사용하기 위한 규칙

- 빈클래스는 아규먼트가 없은 생성자 메서드를 반드시 가져야 한다.

 :인자가 없는 생성자메서드를 통해 초기화된다.

 

- 멤버변수는 public이어서는 안된다.

: 자바빈즈에서는 메서드를 통해서만 내부에 접근할 수 있다. public으로 선언하게 되면 외부에서 변경하게 되어 다른 객체들 또한 영향을 받게되는 문제발생

 

- 변수에 대한 접근은 setXxxx()메서드나 getXxxx()메서드를 통해서만 가능하다.

: 예외로 boolean형태의 리턴값을 갖는 메서드는 isXxxx()의 형태를 가진다,

 

- setXxxx()메서드나 getXxxx()메서드는 항상 public이어야 한다.

: jsp컨테이너가 public이 아닌 메서드는 인식을 하지 못한다.

 

 HelloWorld.java

package hello;  
public class HelloWorld {  
  
private String statement=""; 
  
public HelloWorld()  { 
    
this.statement = "No Statement"; 
  } 
  
public String getStatement()  { 
     
return statement; 
  } 
  
public void setStatement(String statement)  { 
    
this.statement = statement; 
  } 
}

 hellobean2.jsp

<html> 
<%@page 
import="Hello.*" %> 
<body><br> 
<% 
  String str=
""; 
  HelloWorld myhello = 
new HelloWorld(); 
  myhello.setStatement(
"Hello! JSP Bean!!"); 
  str = myhello.getStatement(); 
  out.println(str + 
"<br>");  

  myhello.setStatement(
"Hello again!!"); 
  str = myhello.getStatement(); 
  out.println(str); 
%> 
<br></body></html>

 

 

*jsp에서 jsp태그를 이용하여 빈 사용

jsp에서 객체를 만드는 방법은 두가지가 있다.

빈을 이용하는 방법과 new연산자를 사용하여 객체로 사용하는 방법.

 

jsp액션태그중 하나인 useBean 액션태그.

useBean태그는 새로운 객체를 생성하거나 이미 생성된 객체의 참조를 얻는데 사용된다.

사용방법>>

<jsp:useBean id="myhello" class="HelloWorld" scope="session"/>

 HelloWorld myhello = new HelloWorld();

 

 

 HelloBean3.java

package hello; 
public class HelloBean { 
  
private String name = "Hello World!!";    
  
public void setName(String name) { 
    
this.name = name; 
  } 
  
public String getName() { 
    
return name; 
  }   
}

hellobean3.jsp

<%@page contentType="text/html;charset=euc-kr" %> 
<jsp:useBean id=
"myHello" class="hello.HelloBean" scope="page"/> 
<html><head> 
<title>HelloBean</title></head> 
<body > 
<center><h3>JSP에서 Bean 사용하기</h3></center> 
<h2><%=myHello.getName() %></h2> 
</body> 
</html>

 

 id에는 객체인스턴스를 식별할 이름으로 객체를 선언한 것과 같다.

여기서는 myHello라는 객체 생성.

class에는 패키지 이름까지 모두 기술한 클래스의 이름을 넣고

cope는 빈이 존재할 범위를 정하는 것.

 

선언한 객체 myHello를 통해서 HelloBean클래스의 getName()메서드를 호출.

<%=myHello.getName()%>

 

 

*jps:setProperty액션태그: 변수를 변경시키는 역할 / jsp:getProperty액션태그:빈의 변수에 접근하기 위해서 사용

 NameBeam.java

 package Jsp; 
public class NameBean{ 
 
private String name; 
 
public String getName(){ 
 
return name;

} 
public void setName(String name){ 
 
this.name = name; 
}    

}

 NameBean.html

 <HTML> 
<HEAD><TITLE> NameBean</TITLE></HEAD> 
<BODY> 
<form action=
"name.jsp"> 
이름  : <input type=
"text" Name="name"> 
<input type=
"submit" value="전송"> 
<input type=
"submit" value="취소"> 
</BODY> 
</HTML>

Name.jsp

<%@ page contentType="text/html;charset=KSC5601"%> 
<jsp:useBean id=
"nameTest" class="Jsp.NameBean" /> 
<HTML> 
<HEAD><TITLE> NameBean Test </TITLE></HEAD> 
<BODY> 

<CENTER><h1>이름  Test</h1></center> 
<jsp:setProperty name=
"nameTest" property="name"  /> <br> 
<hr>이름  : 
<jsp:getProperty name=
"nameTest" property="name" /> <br> 
<hr> 
</BODY></HTML>

  

Name.jsp는 사용자 입력을 처리하는 jsp페이지.

jsp:useBean액션태그를 이용하여 NameBean클래스의 인스턴스를 만든다.

setProperty, getProperty를 사용하기 위해서는 useBean이 먼저 기술되야한다.

 

<jps:setProperty name="nameTest" property="name"/>  >> nameTest.netName();과 같은 의미

name값에는 useBean의 id속성으로 사용한 값을 써야하고 property에는

빈클래스의 setXxx메서드에 대응하기 위해 Xxx에 해당하는 이름을 넣어준다.

 

<jps:getProperty name="nameTest" property="name"/>  >> nameTest.getName();과 같은 의미

 

 

NameBean.html에서 Form의 name에 입력한 데이터는 Name.jsp에 전송이 되고

또 이 Name.jsp에서는 전달받은 데이터를 jsp:setProperty를 이용해 NameBean클래스에 저장을 한다.

그리고 이 저장된 데이터를 jsp:getProperty를 이용해 출력한다. 

 

[출처] JSP(3)|작성자 kkan

'Java > JSP' 카테고리의 다른 글

용어정의  (0) 2012.05.17
JSP 표현언어  (0) 2012.05.17
[네번째] JSP 란?  (0) 2012.05.17
[두번째] JSP 란 ?  (0) 2012.05.17
JSP 란?  (0) 2012.05.17

관련글 더보기