04 JSP 액션

프로그래밍/Web 2007. 11. 27. 15:13 Posted by galad

★ jsp:useBean... 등에 관하여



<!--
/******************************************************************************
*   파일      : contact2.html
*   용도      : jsp:bean 사용 예제 html
*   작성자   : 성홍제
*   작성일   : 2006. 08. 31
*   Version : 1.0
******************************************************************************/
 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
    <title>Insert title here</title>
</head>
<body>
<h3>연락처</h3>
<form method=post action=contact2.jsp>
  이름<input type=text name=name><br>  <!-- name 속성의 값이 contact2.java의 메소드 -->
  메일<input type=text name=mail><br><!--input 태그를 닫아버리면 null 값이 전송된다.-->
    <p>
    <input type=submit value="전송">
    <input type=reset value="취소">
</form>
</body>
</html>


이 html에서 contact2.jsp에 정보를 넘겨서, contact2.jsp에서 contact2 클래스를 사용하여

개체를 생성, 정보를 저장, 불러오는 예제.


<%--
/******************************************************************************
*   파일      : contact2.jsp
*   용도      : contact2 클래스를 사용해 jsp:bean으로 활용해보는 page
*   작성자   : 성홍제
*   작성일   : 2006. 08. 31
*   Version : 1.0
******************************************************************************/
--%>

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("euc-kr"); %>
   
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
    <title>Insert title here</title>
</head>
<body>
<%
    String name = request.getParameter("name");
    String mail = request.getParameter("mail");
%>
<%-- 선언, 생성 Contact2 contact = new Contact2() 와 같다. --%>
<jsp:useBean id="contact" class="contact.contact2" scope="page"/>


<jsp:setProperty name="contact" property="*"/>

<%-- contact 개체에 값을 넣어준다. - 위의 "*" 대신 이렇게 써도 된다.
<jsp:setProperty name="contact" property="name"/>
<jsp:setProperty name="contact" property="mail"/>
 --%>
<%-- 출력해본다. --%>
이름은 : <%= contact.getName() %>
<br>
메일주소는 : <%= contact.getMail() %>

</body>
</html>




/******************************************************************************
*   파일      : contact2.java
*   용도      : contact2.html 에서 넘겨주는 정보를 위한 클래스
*   작성자   : 성홍제
*   작성일   : 2006. 08. 31
*   Version : 1.0
******************************************************************************/

package contact;

public class contact2
{
    // Fields
    private String name;
    private String mail;
   
    // Constructor
    public contact2()
    {}
   
    // Methods
    public void setName(String name)    // contact2.html 의 폼 내의 <input>의 이름과 같아야함
    {                                                  // 밑의 메소드들도 모두 마찬가지. get, set 뒤에 붙는
        this.name = name;                      // 이름이 같아야한다. 첫글자는 html에서는 소문자.
    }
   
    public String getName()
    {
        return this.name;
    }
   
    public void setMail(String mail)
    {
        this.mail = mail;
    }
   
    public String getMail()
    {
        return this.mail;
    }
   
    // Main
}


★ html에서 체크박스이 데이터를 jsp:bean으로 받을 경우

html.....


<input type=checkbox name=sw value="jdk1.5">JDK1.5 <br>
<input type=checkbox name=sw value="JBuilder">JBuilder <br>
<input type=checkbox name=sw value="Eclipse">Eclipse<br>
<input type=checkbox name=sw value="Visual age">Visual age <br>
<input type=checkbox name=sw value="NetBean">NetBean<br><br>


jsp.....


<jsp:setProperty name="data" property="sw"/>  // 받을 때


<%  // 사용하는 경우 - 스트링 배열로 사용한다.
    String[] sw = data.getSw();

    if(sw != null)
    {
        for(int i = 0; i < sw.length; i++)
        {
            out.print(sw[i] + " ");
        }
    }
    else
    {
        out.println("선택한 것이 없습니다.");
    }
%>


데이터를 저장하는 class....


private String[] sw = null;


public void setSw(String[] sw)
{
    this.sw = sw;
}
   
public String[] getSw()
{
    return sw;
}


// sw는 바로 html에서의 체크박스의 이름

'프로그래밍 > Web' 카테고리의 다른 글

에러 페이지 처리  (0) 2007.11.27
열혈강의 6장 실습하기  (0) 2007.11.27
03 JSP 시작  (0) 2007.11.27
02 HelloWorld!!!  (0) 2007.11.27
01 시작~  (0) 2007.11.27