JSP

Java Bean 간단 회원가입 페이지 만들기

충 민 2022. 9. 21. 16:53

두가지 방법으로 실습을 해보았다. 

1.액션태그

2.자바 

 

우선 액션태그 부터 보자.

 

<jsp:useBean id="beanslogin" class="beanslogin.Beanslogin" scope="page"/>

===============================================================================

- <jsp:useBean> 액션태그는 JSP 페이지에서 사용할 자바빈 객체를 지정해주는 기능을 한다. 

   <jsp:useBean id="[이름]" class="[자바빈클래스이름]" scope="[범위]"/>

 

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

*는 모든 변수를 가져온다!

<jsp:getProperty property="age" name="beanslogin"/> 

<jsp:getProperty> <jsp:setProperty>

 

<jsp:useBean>으로 객체를 생성하면 겟셋 프로퍼티 액션태그를 사용할 수 있다.

 

<jsp:setProperty name="[자바빈]" property="이름" value="[값]" />

 

name - 프로퍼티의 값을 변경할 자바빈 객체의 이름. <jsp:useBean>액션 태그의 id속성에서 지정한 값을 사용한다.

property - 값을 지정할 프로퍼티의 이름

value - 프로퍼티의 값, 표현식을 사용할수 있다.

 

두번째 자바 방식으로는 

객체를 생성하여

Beanslogin bean = new Beanslogin();
bean.setId(request.getParameter("id"));

 

이런식으로 진행하여 

 

<%=bean.getId()%>

이렇게 출력해주었다

 

1.액션태그는 편하지만 체크박스를 구현하지 못한다 이유는 배열을 받지못한다.

2.는 불편하지만 배열이 가능하다!!

시연

코드를 보겠다.

주석부분은 액션태그이다

 

beanslogin.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
    
    <head></head>
        <title>내가 만든 html문서</title>
    <body>
      
        <form method="post" action="beanslogin2.jsp">
       
        <table border="1">
            
            <table border="1" border=skyblue" width="700" height="500" align="center">
                <tr bgcolor="skyblue" align="center">
                <p><td colspan="3"span style="color:rgb(0, 0, 0)">회원 기본 정보</td></p>
            </tr>
            <tr>
                <td bgcolor="lightgray" align="center">아이디:</td>
                <td><input type="text" name="id"> 4~12자의 영문 대소문자와 숫자로만 입력
                </td>
            </tr>
            <tr>
                <td bgcolor="lightgray" align="center">나이:</td>
                <td><input type="text" name="age"> 
                </td>
            </tr>
            <tr>
                <td bgcolor="lightgray" align="center">비밀번호:</td>
                <td><input type="password" name="pw"> 4~12자의 영문 대소문자와 숫자로만 입력
                </td>
            </tr>
           
            <tr>
                <td bgcolor="lightgray" align="center">메일주소:</td>
                <td><input type="text" size="40" name="email"> <!-- 예) id@domain.com -->
                </td>
            </tr>
            <tr>
                <td bgcolor="lightgray" align="center">이름:</td>
                <td><input type="text" size="40" name="name">
                </td>
            </tr>
            
            <tr align ="center" bgcolor="skyblue">
      <td colspan = "3"><b>개인 신상 정보</b></td>
    </tr>
    <tr>
      <td align ="center" bgcolor="Silver">생일:</td>
      <td>
        <input type="text" name="year" minlength="4" maxlength="4"><select name="month">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
          <option value="9">9</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
        </select><select name="day">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
          <option value="9">9</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
          <option value="13">13</option>
          <option value="14">14</option>
          <option value="15">15</option>
          <option value="16">16</option>
          <option value="17">17</option>
          <option value="18">18</option>
          <option value="19">19</option>
          <option value="20">20</option>
          <option value="21">21</option>
          <option value="22">22</option>
          <option value="23">23</option>
          <option value="24">24</option>
          <option value="25">25</option>
          <option value="26">26</option>
          <option value="27">27</option>
          <option value="28">28</option>
          <option value="29">29</option>
          <option value="30">30</option>
          <option value="31">31</option>
        </select></td>
    </tr>
    <tr>
      <td align ="center" bgcolor="Silver">관심분야:</td>
      <td>
        <input type="checkbox" name="fav" value="컴퓨터">컴퓨터
        <input type="checkbox" name="fav" value="인터넷">인터넷
        <input type="checkbox" name="fav" value="여행">여행
        <input type="checkbox" name="fav" value="영화감상">영화감상
        <input type="checkbox" name="fav" value="음악감상">음악감상
      </td>
    </tr>
    <tr>
      <td align ="center" bgcolor="Silver">자기소개:</td>
      <td><textarea name="my" id="area" cols="60" rows="7"></textarea></td>
    </tr>
            <tr>
            <td colspan="3" align="center"> <button type="submit" >가입정보 확인</button></td>
            </tr>
           
            </table><br><br>
          
           
                
            </form>
    
    </body>
    </head>
</html>

beanslogin2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- <jsp:useBean id="beanslogin" class="beanslogin.Beanslogin" scope="page"/>

<jsp:setProperty name="beanslogin" property="*"/> --%>
  <%request.setCharacterEncoding("UTF-8");%>
<%@ page import="beanslogin.Beanslogin" %>
<%
Beanslogin bean = new Beanslogin();
bean.setId(request.getParameter("id"));
bean.setName(request.getParameter("name"));
bean.setPw(request.getParameter("pw"));
bean.setAge(Integer.parseInt(request.getParameter("age")));
bean.setSex(request.getParameter("sex"));
bean.setEmail(request.getParameter("email"));
bean.setYear(request.getParameter("year"));
bean.setMonth(request.getParameter("month"));
bean.setDay(request.getParameter("day"));
bean.setMy(request.getParameter("my"));
bean.setFav(request.getParameterValues("fav"));
/* private String year;
private String month;
private String day;
private String[] fav; */
%>
<!DOCTYPE html>
<html>

    <head></head>
        <title>내가 만든 html문서</title>
    <body>
        <div class="background">
        
       
        <table border="1">
            
            <table border="1" border=skyblue" width="700" height="500" align="center">
                <tr bgcolor="skyblue" align="center">
                <p><td colspan="3"span style="color:rgb(0, 0, 0)">회원 기본 정보</td></p>
            </tr>
            <tr>
                <td bgcolor="lightgray" align="center">아이디:</td>
                <td><%-- <jsp:getProperty property="id" name="beanslogin"/> --%>
                <%=bean.getId()%> 4~12자의 영문 대소문자와 숫자로만 입력
                </td>
            </tr>
            <tr>
                <td bgcolor="lightgray" align="center">나이:</td>
                <td><%-- <jsp:getProperty property="age" name="beanslogin"/> --%>
                <%=bean.getAge()%>
                </td>
            </tr>
            <tr>
                <td bgcolor="lightgray" align="center">비밀번호:</td>
                <td><%-- <jsp:getProperty property="pw" name="beanslogin"/>  --%>
                <%=bean.getPw()%>4~12자의 영문 대소문자와 숫자로만 입력
                </td>
            </tr>
           
            <tr>
                <td bgcolor="lightgray" align="center">메일주소:</td>
                <td><%-- <jsp:getProperty property="email" name="beanslogin"/> --%> 
                <%=bean.getEmail()%><!-- 예) id@domain.com -->
                </td>
            </tr>
            <tr>
                <td bgcolor="lightgray" align="center">이름:</td>
                <td><%-- <jsp:getProperty property="name" name="beanslogin"/> --%>
                <%=bean.getName()%>
                </td>
            </tr>
            <tr>
            <td>생일</td>
            <td>
              <%--   <jsp:getProperty name="beanslogin" property="year"/><jsp:getProperty name="beanslogin" property="month"/><jsp:getProperty name="beanslogin" property="day"/>일 --%>
                 <%=bean.getYear()%>
                  <%=bean.getMonth()%>
                   <%=bean.getDay()%>
            </td>
        	</tr>
        	<tr>
            <td>관심분야</td>
            <td>
                <%
                    String[] arr = bean.getFav();
                    for(String s : arr){
                        out.write(s + "  ");
                    }
                %>
            </td>
        </tr>
        <tr>
            <td>자기소개</td>
            <td><%--  <jsp:getProperty name="beanslogin" property="my"/> --%>
            <%=bean.getMy()%>
            </td> 
        </tr>
            </table>
       
        </div>
    </body>
    </head>
</html>

Beanslogin.java

package beanslogin;

public class Beanslogin {
	private String id;
	private String pw;
	private String name;
	private String sex;
	private int age;
	private String email;
    private String year;
    private String month;
    private String day;
    private String[] fav;
    private String my;
	public String getMy() {
		return my;
	}
	public void setMy(String my) {
		this.my = my;
	}
	public String getYear() {
		return year;
	}
	public void setYear(String year) {
		this.year = year;
	}
	public String getMonth() {
		return month;
	}
	public void setMonth(String month) {
		this.month = month;
	}
	public String getDay() {
		return day;
	}
	public void setDay(String day) {
		this.day = day;
	}
	public String[] getFav() {
		return fav;
	}
	public void setFav(String[] fav) {
		this.fav = fav;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPw() {
		return pw;
	}
	public void setPw(String pw) {
		this.pw = pw;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
}

출처: https://pjh3749.tistory.com/75 [JayTech의 기술 블로그:티스토리]