JAVA개념&실습

WEB : [0526] 간단한 기본 방명록 작성 실습

u_SZero 2023. 5. 28. 01:15

! 배워가고 있는 주인장이 쓴 글이니 정보의 정확성에 유의하시기 바랍니다 !


WebApp17


Guest.jsp

이름, 제목, 내용이 모두 입력되었을 때에만 작성할 수 있도록 script function sendIt() 구성

<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Guest.jsp</title>
<link rel="stylesheet" type="text/CSS" href="css/main.css">

<script type="text/javascript">

	function sendIt()
	{
		var f = document.forms[0]; 
		
		if(!f.userName.value)
		{
			alert("이름 입력 필요.");
			f.userName.focus();
			return;
		}
		
		if(!f.subject.value)
		{
			alert("제목 입력 필요.");
			f.subject.focus();
			return;
		}
		
		if(!f.content.value)
		{
			alert("내용 입력 필요.");
			f.content.focus();
			return;
		}
		
		f.submit();
	}

</script>
</head>
<body>

<div>
	<h1>간단한 기본 방명록 작성 실습</h1>
	<hr>
</div>

<div>
	<form action="Guest_ok.jsp" method="post">
		<table class="table">
			<tr>
				<th>이름</th>
				<td>
					<input type="text" name="userName" class="txt">
				</td>
			</tr>
			<tr>
				<th>제목</th>
				<td>
					<input type="text" name="subject" class="txt">
				</td>
			</tr>
			<tr>
				<th>내용</th>
				<td>
					<textarea rows="5" cols="32" name="content"></textarea>
				</td>
			</tr>
			<tr>
				<td colspan="2">
					<button type="button" onclick="sendIt()" class="btn"
					style="width: 100%">방명록 작성</button>
				</td>
			</tr>
		</table>
	</form>
</div>

</body>
</html>

 

 

 


 

GuestDTO.java

 

※ 여기서 사용하는 변수명(속성명)의 앞 두 글자는 소문자로 작성할 것~!!!
   단, 이 내용은 문법적 제한 사항은 아니다.
   numScore → getNumScore() / setNumScore()
   nScore   → getNScore / setNScore()
                      getnScroe / setnScore()
   와 같이 getter 나 setter 가 속성명을 불러오는 과정에서
   인식이 어긋나거나 하는 경우가 발생할 수 있기 때문에...

※ 여기서 사용하는 변수명(속성명)은
   HTML Document 의 form 태그에서 name 속성으로 지정하여 사용할 것.
   단, 이 내용 또한 문법적 제한 사항은 아니지만
   그렇게 해야 속성 데이터 수신 및 속성 매핑을
   액션 태그를 활용하여 자동으로 처리해줄 수 있기 때문에...

/*================
   GuestDTO.java
=================*/

package com.test;

public class GuestDTO
{
	//String name;
	//String title;
	//String str;
	//--name구성한 대로 선언해야 함
	
	private String userName;	//--작성자
	private String subject;		//--게시물 제목
	private String content;		//--게시물 내용

	
	// getter/setter 구성
	public String getUserName()
	{
		return userName;
	}
	public void setUserName(String userName)
	{
		this.userName = userName;
	}
	public String getSubject()
	{
		return subject;
	}
	public void setSubject(String subject)
	{
		this.subject = subject;
	}
	public String getContent()
	{
		return content;
	}
	public void setContent(String content)
	{
		this.content = content;
	}
	
}

 

■■■ JAVA Bean(자바 빈) ■■■

○ 개요
    - 자바로 작성된 컴포넌트(객체)들을 일반적으로 일컫는 말

○ 사용 목적
    - JSP 페이지에서 로직 부분을 분리하여 코드를 재사용함으로써
      프로그램의 구성 효율을 높이기 위함

○ JAVA Bean 만들기
    - 자바 빈은 클래스이므로 자바 클래스를 설계하는 것과 기본 규칙이 같다.
    - 자바 빈에서는 멤버 변수를 프로퍼티(Property)라고 부른다.
    - 클래스 선언은 『public』, 프로퍼티 선언은 『private』으로 한다.
    - 프로퍼티 당 하나의 getter 와 setter를 갖는다.
    - (매개변수가 없는) 기본 생성자를 포함한다.
    - 직렬화 할 수 있어야 한다.
    - POJO(Plain Old Java Object)


 

Guest_ok.jsp

 

<jsp:useBean ... ></jsp:useBean> 태그를 이용!!

 

<%@ page contentType="text/html; charset=UTF-8"%>
<% 
	request.setCharacterEncoding("UTF-8");
%>

<jsp:useBean id="dto" class="com.test.GuestDTO" scope="page"></jsp:useBean>
<%-- scope="page"는 안써도 설정되는 default --%>
<jsp:setProperty property="*" name="dto"/>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Guest_ok.jsp</title>
<link rel="stylesheet" type="text/CSS" href="css/main.css">
</head>
<body>

<div>
	<h1>간단한 기본 방명록 작성 실습</h1>
	<hr>
</div>

<div>
	<h2>작성된 내용 확인</h2>
	<!-- <h3>이름 : 홍길동</h3> -->
	<h3>이름 : <%=dto.getUserName() %></h3>
	<!-- <h3>제목 : 어쩌구 저쩌구</h3> -->
	<h3>제목 : <%=dto.getSubject() %></h3>
	<h3>내용 :</h3>
	<!-- <h4>궁시렁 궁시렁<br>이러쿵 저러쿵</h4> -->
	<h4><%=dto.getContent().replace("\n", "<br>") %></h4>
</div>

</body>
</html>

 


! 배워가고 있는 주인장이 쓴 글이니 정보의 정확성에 유의하시기 바랍니다 !